Adjunto un script que encontré, este hace un backup Full de la base de datos.
Este respaldo corresponde a respaldar los Datafile, Archivelogs y Control file, este script crea un Backup.txt que contiene los comandos para hacer un hot backup de la base de datos. Es muy importante que también estén enterados de como utilizar estos respaldos. Es muy sencillo y lo publicaré en el siguiente post.
Recomendación, no se queden solo con el script, si tienen una base de datos de prueba, respalden y prueben la recuperación, y de ser posible documenten todo el proceso.
mucha suerte.
-- -----------------------------------------------------------------------------------
-- File Name : http://www.oracle-base.com/dba/script_creation/backup.sql
-- Author : DR Timothy S Hall
-- Description : Creates a very basic hot-backup script. A useful starting point.
-- Call Syntax : @backup
-- Last Modified: 28/01/2001
-- -----------------------------------------------------------------------------------
SET SERVEROUTPUT ON
SET FEEDBACK OFF
SPOOL Backup.txt
DECLARE
CURSOR c_tablespace IS
SELECT a.tablespace_name
FROM dba_tablespaces a
ORDER BY 1;
CURSOR c_datafiles (in_ts_name IN VARCHAR2) IS
SELECT a.file_name
FROM dba_data_files a
WHERE a.tablespace_name = in_ts_name
ORDER BY 1;
CURSOR c_archive_redo IS
SELECT a.value
FROM v$parameter a
WHERE a.name = 'log_archive_dest';
v_sid VARCHAR2(100) := 'ORCL';
v_backup_com VARCHAR2(100) := '!ocopy ';
v_remove_com VARCHAR2(100) := '!rm';
v_dest_loc VARCHAR2(100) := '/opt/oracleddds/dbs1/oradata/ddds/';
BEGIN
DBMS_Output.Disable;
DBMS_Output.Enable(1000000);
DBMS_Output.Put_Line('svrmgrl');
DBMS_Output.Put_Line('connect internal');
DBMS_Output.Put_Line(' ');
DBMS_Output.Put_Line('-- ----------------------');
DBMS_Output.Put_Line('-- Backup all tablespaces');
DBMS_Output.Put_Line('-- ----------------------');
FOR cur_ts IN c_tablespace LOOP
DBMS_Output.Put_Line(' ');
DBMS_Output.Put_Line('ALTER TABLESPACE ' || cur_ts.tablespace_name || ' BEGIN BACKUP;');
FOR cur_df IN c_datafiles (in_ts_name => cur_ts.tablespace_name) LOOP
DBMS_Output.Put_Line(v_backup_com || ' ' || cur_df.file_name);
END LOOP;
DBMS_Output.Put_Line('ALTER TABLESPACE ' || cur_ts.tablespace_name || ' END BACKUP;');
END LOOP;
DBMS_Output.Put_Line(' ');
DBMS_Output.Put_Line('-- -----------------------------');
DBMS_Output.Put_Line('-- Backup the archived redo logs');
DBMS_Output.Put_Line('-- -----------------------------');
FOR cur_ar IN c_archive_redo LOOP
DBMS_Output.Put_Line(v_backup_com || ' ' || cur_ar.value || '/*');
END LOOP;
DBMS_Output.Put_Line(' ');
DBMS_Output.Put_Line('-- ----------------------');
DBMS_Output.Put_Line('-- Backup the controlfile');
DBMS_Output.Put_Line('-- ----------------------');
DBMS_Output.Put_Line('ALTER DATABASE BACKUP CONTROLFILE TO ''' || v_dest_loc || v_sid || 'Controlfile.backup'';');
DBMS_Output.Put_Line(v_backup_com || ' ' || v_dest_loc || v_sid || 'Controlfile.backup');
DBMS_Output.Put_Line(v_remove_com || ' ' || v_dest_loc || v_sid || 'Controlfile.backup');
DBMS_Output.Put_Line(' ');
DBMS_Output.Put_Line('EXIT');
END;
/
PROMPT
SPOOL OFF
SET FEEDBACK ON
2 comentarios:
I seldom leave comments on blog, but I have been to this post which was recommended by my friend, lots of valuable details, thanks again.
stanovanjsko varcevanje [url=http://www.altainvest.info]altainvest[/url]
Publicar un comentario