Willkommen auf der IT Seite.
Hier möchte ich einige Howtos, Anleitungen und andere IT-Relevante Dinge zum Download bereitstellen.
Bitte beim Download zur weiteren Verwendung aber auf das Copyright achten!
Bei weiteren Fragen könnt ihr mir auch eine Mail zukommen lassen.
Oracle: Online-Backup Oracle 10: Script |
|
Posted by Benjamin Wagner (benjamin) on Feb 16 2019 |
Das unten aufgeführte Script sichert jeden Tablespace in einen zuvor definierten Ordner. Dabei wird der jeweilige Tablespace in den Backup-Mode geschalten, es sollte also zwingend der Archive-LOG aktiviert sein. Ausserdem werden die Controlfiles gesichert. Als Speicherort wird /oracle/backup/online verwendet.
Bei diesem Script wird die zuvor erstellte Sicherung überschrieben, wer will, kann das Script ja noch um Parameter ergänzen, damit pro Tag ein eigener Ordner verwendet wird.
---
set feedback off
set echo off
set serveroutput on
SPOOL backup_online_script.SQL
DECLARE
l_sicherungsbefehl VARCHAR2(1024) := ' cp ';
l_sicherungsziel VARCHAR2(1024) := ' /oracle/backup/online';
l_controlfile gv$controlfile.name%TYPE;
CURSOR ts_cur IS
SELECT tablespace_name
FROM dba_tablespaces
WHERE contents = 'PERMANENT' AND status = 'ONLINE';
CURSOR temp_ts_cur IS
SELECT tablespace_name
FROM dba_tablespaces
WHERE contents != 'PERMAMENT';
CURSOR file_Cur (i_ts_name dba_tablespaces.tablespace_name%TYPE) IS
SELECT FILE_NAME
FROM DBA_DATA_FILES
WHERE tablespace_name = i_ts_name;
CURSOR control_cur IS
SELECT substr(name, instr(name, '/', -1) + 1) name
FROM gv$controlfile;
BEGIN
DBMS_OUTPUT.ENABLE(200000000000);
DBMS_OUTPUT.PUT_LINE('SPOOL online_sicherung.LOG');
DBMS_OUTPUT.PUT_LINE(' ------------------------------------------------------')
;
DBMS_OUTPUT.PUT_LINE(' --');
DBMS_OUTPUT.PUT_LINE(' -- Dynamisches Sicherungsscript');
DBMS_OUTPUT.PUT_LINE(' -- Erstellt: ' || TO_CHAR(SYSDATE, 'dd.mm.rrrr hh24:mm:s
s'));
DBMS_OUTPUT.PUT_LINE(' --');
DBMS_OUTPUT.PUT_LINE(' ------------------------------------------------------')
;
DBMS_OUTPUT.PUT_LINE(' -- Backup Controlfiles');
DBMS_OUTPUT.PUT_LINE('ALTER DATABASE BACKUP CONTROLFILE TO TRACE;');
FOR control_rec IN control_cur LOOP
DBMS_OUTPUT.PUT_LINE('ALTER DATABASE BACKUP CONTROLFILE TO ''' || trim(l_siche
rungsziel) || '/' || control_rec.name || '''' || 'REUSE ;');
END LOOP;
DBMS_OUTPUT.PUT_LINE(' -- Backup Tablespaces');
FOR ts_rec IN ts_cur LOOP
DBMS_OUTPUT.PUT_LINE('ALTER TABLESPACE ' || ts_rec.tablespace_name || ' BEGIN B
ACKUP;');
FOR file_rec IN file_cur (ts_rec.tablespace_name) LOOP
DBMS_OUTPUT.PUT_LINE('! ' || l_sicherungsbefehl || file_rec.file_name || l_sich
erungsziel);
END LOOP;
DBMS_OUTPUT.PUT_LINE('ALTER TABLESPACE ' || ts_rec.tablespace_name || ' END BAC
KUP;');
DBMS_OUTPUT.PUT_LINE('------------------ Naechstes Backup ---------------------
-');
END LOOP;
DBMS_OUTPUT.PUT_LINE('SPOOL off');
END;
/
SPOOL off
set feedback on
set echo on
@backup_online_script.SQL
Last changed: Feb 16 2019 at 01:09
Back