Anmeldung

Benutzername: Passwort:
Haben Sie Ihre Zugangsdaten vergessen?


IT and more

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