Sprechen Sie uns einfach an!

Oracle Ed Ctr wht

 

 

Ab 3 Teilnehmer organisieren wir für Sie ein eigenes Wunsch-Seminar.

Wenn Sie alleine sind, machen wir das gewünschte Seminarthema öffentlich und versuchen mit unseren Partner deutschlandweit für Sie Ihren Wunsch schnellstmöglichst zu organisieren.

 

"Nur sprechenden Menschen kann geholfen werden" :-)

Liebe Grüße

Jessica

Tel. erreichbar von 8-16 Uhr: 0231- 58 69 95 22

 

 

 

In diesem Workshop zu Backup- und Recovery-Verfahren in Oracle Database 12c lernen Sie, wie Sie Ihre eigenen Recovery-Anforderungen bewerten. Sie entwickeln geeignete Strategien für Backup-, Restore- und Recovery-Verfahren aus den bereitgestellten Szenarios.

  OAEC1oracle ptnr clr rgb

Learn Oracle from Oracle - Original Oracle University Seminar

Das Kommandozeilenwerkzeug ocrconfig wird zur Konfiguration und Verwaltung der Oracle Cluster Registry verwendet.

Wird aber beispielsweise ein weiterer Spiegel der OCR hinzugefügt, während einige Knoten des Clusters heruntergefahren sind, so müssen diese Spiegel nachträglich dem Knoten bekannt gemacht werden. Dieses erfolgt über die repair-Option von ocrcheck.

Hierzu ein simuliertes Beispiel:

Cluster Services werden auf Knoten RAC2 heruntergefahren.


[root@rac1 bin]# ./crsctl stop cluster -n rac2
CRS-2673: Versuch, "ora.crsd" auf "rac2" zu stoppen
CRS-2790: Herunterfahren der von Cluster Ready Services verwalteten Ressourcen auf 'rac2' wird gestartet
CRS-2673: Versuch, "ora.orcl.db" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.LISTENER.lsnr" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.rac2.vip" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.LISTENER_SCAN1.lsnr" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.rac2.vip" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.LISTENER.lsnr" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.rac1.vip" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.LISTENER_SCAN1.lsnr" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.scan1.vip" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.rac1.vip" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.scan1.vip" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.orcl.db" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.eons" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.ons" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.ons" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.net1.network" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.net1.network" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.eons" auf "rac2" erfolgreich
CRS-2792: Herunterfahren der von Cluster Ready Services verwalteten Ressourcen auf 'rac2' ist abgeschlossen
CRS-2677: Stoppen von "ora.crsd" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.cssdmonitor" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.ctssd" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.evmd" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.cssdmonitor" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.evmd" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.ctssd" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.cssd" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.cssd" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.diskmon" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.diskmon" auf "rac2" erfolgreich

 

Der OCR wird ein weiterer Spiegel hinzugefügt:


[root@rac1 bin]# touch /u01/racdisk/ocr_disk/storage/ocr4
[root@rac1 bin]# ./ocrconfig -add /u01/racdisk/ocr_disk/storage/ocr4
[root@rac1 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
Version                  :          3
Total space (kbytes)     :     262120
Used space (kbytes)      :       2656
Available space (kbytes) :     259464
ID                       : 1448550249
Device/File Name         : /u01/racdisk/ocr_disk/storage/ocr
Device/File integrity check succeeded
Device/File Name         : /u01/racdisk/ocr_disk/storage/ocr2
Device/File integrity check succeeded
Device/File Name         : /u01/racdisk/ocr_disk/storage/ocr3
Device/File integrity check succeeded
Device/File Name         : /u01/racdisk/ocr_disk/storage/ocr4
Device/File integrity check succeeded

Device/File not configured

Cluster registry integrity check succeeded

Logical corruption check succeeded

Auf Knoten RAC2 werden die Cluster Services wieder gestartet:


[root@rac1 bin]# ./crsctl start cluster -n rac2
CRS-2672: Versuch, "ora.cssdmonitor" auf "rac2" zu starten
CRS-2676: Starten von "ora.cssdmonitor" auf "rac2" erfolgreich
CRS-2672: Versuch, "ora.cssd" auf "rac2" zu starten
CRS-2672: Versuch, "ora.diskmon" auf "rac2" zu starten
CRS-2676: Starten von "ora.diskmon" auf "rac2" erfolgreich
CRS-2676: Starten von "ora.cssd" auf "rac2" erfolgreich
CRS-2672: Versuch, "ora.ctssd" auf "rac2" zu starten
CRS-2676: Starten von "ora.ctssd" auf "rac2" erfolgreich
CRS-2672: Versuch, "ora.evmd" auf "rac2" zu starten
CRS-2672: Versuch, "ora.crsd" auf "rac2" zu starten
CRS-2676: Starten von "ora.evmd" auf "rac2" erfolgreich
CRS-2676: Starten von "ora.crsd" auf "rac2" erfolgreich

Wird auf Konten RAC2 nun eine Überprüfung der OCR durchgeführt, wird ein Fehler ausgegeben:

[root@rac2 bin]# ./ocrcheck
PROT-602: Failed to retrieve data from the cluster registry
PROC-26: Error while accessing the physical storage

Da während der Erstellung des zusätzlichen Spiegels der Knoten RAC2 nicht gestartet war, muss nun eine Reparatur mit ocrcheck mit der Option repair gestartet werden.

[root@rac2 bin]# ./ocrconfig -repair -add /u01/racdisk/ocr_disk/storage/ocr4

 

Nach der Reparatur liefert ocrcheck das gewünschte Ergebnis.

[root@rac2 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
Version                  :          3
Total space (kbytes)     :     262120
Used space (kbytes)      :       2656
Available space (kbytes) :     259464
ID                       : 1448550249
Device/File Name         : /u01/racdisk/ocr_disk/storage/ocr
Device/File integrity check succeeded
Device/File Name         : /u01/racdisk/ocr_disk/storage/ocr2
Device/File integrity check succeeded
Device/File Name         : /u01/racdisk/ocr_disk/storage/ocr3
Device/File integrity check succeeded
Device/File Name         : /u01/racdisk/ocr_disk/storage/ocr4
Device/File integrity check succeeded

Device/File not configured

Cluster registry integrity check succeeded

Logical corruption check succeeded

 

Ist die Flashback-Database aktiviert, so kann bei versehentlichem Löschen eines gesamten Schemas dieses komplett wiederhergestellt werden, ohne die gesamte Datenbank zurückzusetzen zu müssen. Hierfür wird die Datenbank mit Flashback zu dem Zeitpunkt vor dem Löschvorgang zurückgesetzt und diese dann im Read-Only Modus geöffnet. Nach dem Öffnen kann das Schema mit seinen Objekten über das "alte" Export-Utility EXP exportiert werden. Die Datapump kann hierfür nicht verwendet werden, da diese Schreiboperationen auf eine interne Master-Tabelle ausführt. Nachdem das Schema exportiert wurde, kann die Datenbankinstanz wieder heruntergefahren, gemountet und wieder auf den aktuellen Stand recovert werden. Zum Schluss wird dann der Export der Schemaobjekte in die Datenbank eingespielt.

 Aktivieren der Flashback-Database auf Basis eines garantierten Restore-Points:

SQL> create restore point rpt_before_upgrade guarantee flashback database;

Restore-Punkt erstellt.

SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
RESTORE POINT ONLY

Versehentliches Löschen eines Schemas ;-):

SQL> drop user hr cascade;

Benutzer wurde geloscht.

Durchführen des Flashbacks der Datenbank:

SQL> shutdown immediate
Datenbank geschlossen.
Datenbank dismounted.
ORACLE-Instanz heruntergefahren.
SQL> startup mount
ORACLE-Instanz hochgefahren.

Total System Global Area 472887296 bytes
Fixed Size 1337296 bytes
Variable Size 385878064 bytes
Database Buffers 79691776 bytes
Redo Buffers 5980160 bytes
Datenbank mounted.
SQL> flashback database to restore point rpt_before_upgrade;

Flashback abgeschlossen.

Öffen der Datenbank im Read-Only-Modus:

SQL> alter database open read only;

Datenbank wurde geandert.

SQL> select table_name from dba_tables where owner='HR';

TABLE_NAME
------------------------------
REGIONS
DEPARTMENTS
COUNTRIES
SYS_TEMP_FBT
EMPLOYEES
LOCATIONS
JOB_HISTORY
JOBS

8 Zeilen ausgewahlt.

SQL> exit

Verbindung zu Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options beendet

Export des Schemas:

[oracle@pc ~]$ exp userid=system/oracle_4U file=/u01/app/oracle/hr.dmp owner=hr

Export: Release 11.2.0.1.0 - Production on Wed Jun 5 17:48:23 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Export done in US7ASCII character set and AL16UTF16 NCHAR character set
server uses AL32UTF8 character set (possible charset conversion)

About to export specified users ...
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user HR
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user HR
About to export HR's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export HR's tables via Conventional Path ...
. . exporting table COUNTRIES 25 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
. . exporting table DEPARTMENTS 27 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
. . exporting table EMPLOYEES 107 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
. . exporting table JOB_HISTORY 10 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
. . exporting table JOBS 19 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
. . exporting table LOCATIONS 23 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
. . exporting table REGIONS 4 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
. . exporting table SYS_TEMP_FBT
. exporting synonyms
. exporting views
. exporting stored procedures
. exporting operators
. exporting referential integrity constraints
. exporting triggers
. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully with warnings.

Recovern der Datanbank auf den ursprünglichen Zustand:

[oracle@pc ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Jun 5 17:49:01 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.


Verbunden mit:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> shutdown immediate
Datenbank geschlossen.
Datenbank dismounted.
ORACLE-Instanz heruntergefahren.
SQL> startup mount
ORACLE-Instanz hochgefahren.

Total System Global Area 472887296 bytes
Fixed Size 1337296 bytes
Variable Size 385878064 bytes
Database Buffers 79691776 bytes
Redo Buffers 5980160 bytes
Datenbank mounted.
SQL> recover database;
Media Recovery abgeschlossen.
SQL> alter database open;

Datenbank wurde geandert.

Anlegen des Schemas:

SQL> create user hr identified by hr default tablespace example;

Benutzer wurde erstellt.

SQL> grant unlimited tablespace, create view to hr;

Benutzerzugriff (Grant) wurde erteilt.

SQL> grant resource to hr;

Benutzerzugriff (Grant) wurde erteilt.

SQL> grant connect to hr;

Benutzerzugriff (Grant) wurde erteilt.

SQL> exit
Verbindung zu Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options beendet

Import der Schema-Objekte:

[oracle@pc ~]$ imp userid=system/oracle_4U file=/u01/app/oracle/hr.dmp fromuser=hr touser=hr

Import: Release 11.2.0.1.0 - Production on Wed Jun 5 17:51:22 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

Export file created by EXPORT:V11.02.00 via conventional path
import done in US7ASCII character set and AL16UTF16 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)
. importing HR's objects into HR
. . importing table "COUNTRIES" 25 rows imported
. . importing table "DEPARTMENTS" 27 rows imported
. . importing table "EMPLOYEES" 107 rows imported
. . importing table "JOB_HISTORY" 10 rows imported
. . importing table "JOBS" 19 rows imported
. . importing table "LOCATIONS" 23 rows imported
. . importing table "REGIONS" 4 rows imported
About to enable constraints...
Import terminated successfully without warnings.

Überprüfung der Schemaobjekte:

[oracle@pc ~]$ sqlplus hr/hr

SQL*Plus: Release 11.2.0.1.0 Production on Wed Jun 5 17:53:55 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.


Verbunden mit:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> select * from tab;

TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COUNTRIES TABLE
DEPARTMENTS TABLE
EMPLOYEES TABLE
EMP_DETAILS_VIEW VIEW
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
REGIONS TABLE
SYS_TEMP_FBT TABLE

9 Zeilen ausgewahlt.

In RAC kann eine parallelisierte Sicherung mit dem Recovery Manager über mehrere Instanzen durchgeführt werden. Dieses kannn zum einen durch direkte Allokierung mehrere Kanäle auf die einzelnen Instanzen erfolgen:

RMAN>  run

2> {
3> allocate channel c1 device type disk connect 'sys/oracle@rac1:1521/orcl.localdomain';
4> allocate channel c2 device type disk connect 'sys/oracle@rac2:1521/orcl.localdomain';
5> backup as compressed backupset database;
6> }

allocated channel: c1
channel c1: SID=55 instance=orcl1 device type=DISK

allocated channel: c2
channel c2: SID=57 instance=orcl2 device type=DISK

Starting backup at 12-APR-12
channel c1: starting compressed full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/racdisk/oradata/orcl/system01.dbf
input datafile file number=00004 name=/u01/racdisk/oradata/orcl/users01.dbf
input datafile file number=00003 name=/u01/racdisk/oradata/orcl/undotbs01.dbf
channel c1: starting piece 1 at 12-APR-12
channel c2: starting compressed full datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00002 name=/u01/racdisk/oradata/orcl/sysaux01.dbf
input datafile file number=00005 name=/u01/racdisk/oradata/orcl/example01.dbf
input datafile file number=00006 name=/u01/racdisk/oradata/orcl/undotbs02.dbf
channel c2: starting piece 1 at 12-APR-12
channel c2: finished piece 1 at 12-APR-12
piece handle=/u01/racdisk/flash_recovery_area/ORCL/backupset/2012_04_12/o1_mf_nnndf_TAG20120412T135356__2eb69bd.bkp tag=TAG20120412T135356 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:57
channel c1: finished piece 1 at 12-APR-12
piece handle=/u01/racdisk/flash_recovery_area/ORCL/backupset/2012_04_12/o1_mf_nnndf_TAG20120412T135356__2c7ced0.bkp tag=TAG20120412T135356 comment=NONE
channel c1: backup set complete, elapsed time: 00:01:08
Finished backup at 12-APR-12

Starting Control File and SPFILE Autobackup at 12-APR-12
piece handle=/u01/racdisk/flash_recovery_area/ORCL/autobackup/2012_04_12/o1_mf_s_780414904__6d69a88.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 12-APR-12
released channel: c1
released channel: c2

Durch Abfrage der View gv$session_longops werden die einzelnen Prozesse des Sicherungsvorgangs angezeigt. Das unten ausgegebene Beispiel zeigt die Ausführung über die Instanz 1 und 2.

SQL> SELECT INST_ID, TOTALWORK, SOFAR, OPNAME

2 FROM GV$SESSION_LONGOPS
3 WHERE OPNAME LIKE 'RMAN: full datafile%' AND SOFAR<>TOTALWORK;

INST_ID  TOTALWORK      SOFAR OPNAME
---------- ---------- ---------- ------------------------------
2      88960      69630 RMAN: full datafile backup
2          0      51108 RMAN: full datafile backup
1      94720      66814 RMAN: full datafile backup
1          0      51836 RMAN: full datafile backup

Werden nicht mehrere Kanäle erstellt, so wird die Sicherung nur auf dem Knoten gestartet, mit dem der Recovery Manager verbunden ist.

RMAN> show all;

RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/racdisk/flash_recovery_area/controlfilesnap/snapcf_orcl1.f';

 

RMAN> backup as compressed backupset database;

Starting backup at 12-APR-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=43 instance=orcl1 device type=DISK
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/racdisk/oradata/orcl/system01.dbf
input datafile file number=00002 name=/u01/racdisk/oradata/orcl/sysaux01.dbf
input datafile file number=00005 name=/u01/racdisk/oradata/orcl/example01.dbf
input datafile file number=00003 name=/u01/racdisk/oradata/orcl/undotbs01.dbf
input datafile file number=00006 name=/u01/racdisk/oradata/orcl/undotbs02.dbf
input datafile file number=00004 name=/u01/racdisk/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 12-APR-12
channel ORA_DISK_1: finished piece 1 at 12-APR-12
piece handle=/u01/racdisk/flash_recovery_area/ORCL/backupset/2012_04_12/o1_mf_nnndf_TAG20120412T135717__ee7ae45.bkp tag=TAG20120412T135717 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15
Finished backup at 12-APR-12

Starting Control File and SPFILE Autobackup at 12-APR-12
piece handle=/u01/racdisk/flash_recovery_area/ORCL/autobackup/2012_04_12/o1_mf_s_780415114__1357f283.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 12-APR-12

 

Die Abfrage der View gv$session_longops zeigt die Verwendung nur einer Instanz.

SQL> SELECT INST_ID, TOTALWORK, SOFAR, OPNAME

2 FROM GV$SESSION_LONGOPS
3 WHERE OPNAME LIKE 'RMAN: full datafile%' AND SOFAR<>TOTALWORK;

INST_ID  TOTALWORK      SOFAR OPNAME
---------- ---------- ---------- ------------------------------
1     183680      34298 RMAN: full datafile backup
1          0      17126 RMAN: full datafile backup

Um eine manuelle Allokierung der Kanäle bei einer parallelen Sicherung über mehrere Instanzen überflüssig zu machen, können diese Kanäle direkt vorkonfiguriert werden.

RMAN> configure channel 1 device type disk connect 'sys/oracle@rac1:1521/orcl.localdomain';

new RMAN configuration parameters:
CONFIGURE CHANNEL 1 DEVICE TYPE DISK CONNECT '*';
new RMAN configuration parameters are successfully stored

RMAN> configure channel 2 device type disk connect 'sys/oracle@rac2:1521/orcl.localdomain';

new RMAN configuration parameters:
CONFIGURE CHANNEL 2 DEVICE TYPE DISK CONNECT '*';
new RMAN configuration parameters are successfully stored

Zusätzlich muss der standardisierte Parallelisierungsgrad entsprechend angepasst werden.

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;

old RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored

Bei der Durchführung der Sicherung müssen die Kanäle nun nicht mehr erstellt werden, dieses erfolgt automatisch:

RMAN> backup as compressed backupset database;

Starting backup at 12-APR-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=55 instance=orcl1 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=57 instance=orcl2 device type=DISK
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/racdisk/oradata/orcl/system01.dbf
input datafile file number=00004 name=/u01/racdisk/oradata/orcl/users01.dbf
input datafile file number=00003 name=/u01/racdisk/oradata/orcl/undotbs01.dbf
channel ORA_DISK_1: starting piece 1 at 12-APR-12
channel ORA_DISK_2: starting compressed full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00002 name=/u01/racdisk/oradata/orcl/sysaux01.dbf
input datafile file number=00005 name=/u01/racdisk/oradata/orcl/example01.dbf
input datafile file number=00006 name=/u01/racdisk/oradata/orcl/undotbs02.dbf
channel ORA_DISK_2: starting piece 1 at 12-APR-12
channel ORA_DISK_2: finished piece 1 at 12-APR-12
piece handle=/u01/racdisk/flash_recovery_area/ORCL/backupset/2012_04_12/o1_mf_nnndf_TAG20120412T140721__330dca63.bkp tag=TAG20120412T140721 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:59
channel ORA_DISK_1: finished piece 1 at 12-APR-12
piece handle=/u01/racdisk/flash_recovery_area/ORCL/backupset/2012_04_12/o1_mf_nnndf_TAG20120412T140721__32de0c3b.bkp tag=TAG20120412T140721 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:10
Finished backup at 12-APR-12

Starting Control File and SPFILE Autobackup at 12-APR-12
piece handle=/u01/racdisk/flash_recovery_area/ORCL/autobackup/2012_04_12/o1_mf_s_780415712__36ffefe1.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 12-APR-12

Die View gv$session_longops zeigt nun wieder die Verwendung mehrere Instanzen für die Durchführung der Sicherung.

SQL> SELECT INST_ID, TOTALWORK, SOFAR, OPNAME

2 FROM GV$SESSION_LONGOPS
3 WHERE OPNAME LIKE 'RMAN: full datafile%' AND SOFAR<>TOTALWORK;

INST_ID  TOTALWORK      SOFAR OPNAME
---------- ---------- ---------- ------------------------------
1      94720      32638 RMAN: full datafile backup
1          0      19247 RMAN: full datafile backup
2      88960      19324 RMAN: full datafile backup
2          0      12858 RMAN: full datafile backup

Multi Section Backups mit RMAN.

RMAN verwendet zur Durchführung von Sicherungen das nicht dokumentierte Package DBMS_BACKUP_RESTORE. Hierzu ein kleines Beispiel. RMAN verwendet zur Durchführung von Sicherungen das nicht dokumentierte Package DBMS_BACKUP_RESTORE. Hierzu ein Beispiel für eine komprimierte Sicherung der gesamten Datenbank in die Flashrecovery Area. Diese Art der Sicherung wird von Oracle nicht unterstützt und dient nur zu Demonstrationszwecken. 


declare
   v_device varchar(4000);
   v_set_stamp number;
   v_set_count number;
   v_pieceno  binary_integer;
   v_done     boolean;
   v_handle   varchar2(4000);
   v_comment  varchar2(4000);
   v_media    varchar2(4000);
   v_concur   boolean:=FALSE;
   v_archlog_failover boolean:=false;
   v_deffmt binary_integer:=1; --Flash Recovery Area
   v_recid number;
   v_stamp number;
   v_tag varchar2(100);
   v_docompress boolean:=true;
   v_counter number:=0;
   cursor c_datafiles is select file# from v$datafile;
begin
   sys.dbms_backup_restore.backupSetDataFile(set_stamp=>v_set_stamp,set_count=>v_set_count);
   v_device:=sys.dbms_backup_restore.deviceAllocate;
   for rec_datafiles in c_datafiles loop
           sys.dbms_backup_restore.backupDataFile(rec_datafiles.file#);
   end loop;

   sys.dbms_backup_restore.backupPieceCreate( fname=>' ',
            pieceno=>v_pieceno,
            done=>v_done,
            handle=>v_handle,
            comment=>v_comment,
            media=>v_media,
            concur=>v_concur,
            archlog_failover=>v_archlog_failover,
            deffmt=>v_deffmt,
            recid=>v_recid,
            stamp=>v_stamp,
            tag=>v_tag,
            docompress=>v_docompress
            );
   sys.dbms_backup_restore.deviceDeallocate();
   sys.dbms_backup_restore.backupCancel;
end;
/

 

Online Backups einer Oracle-Datenbank können auch ohne RMAN durchgeführt werden. Dieses empfiehlt sich dann, wenn die Datenbank nicht allzu groß ist. Dennoch sollte man nicht über Vorteile einer Sicherung durch RMAN hinweg sehen (Überprüfung von Blöcken, Kompression usw.)

Das folgende Skript führt eine Online-Sicherung einer Oracle-Datenbank aus. Voraussetzung von Online-Sicherungen ist die Aktivierung des Archivelog-Modus der Datenbank.

Das Skript muss in eine Textdatei kopiert werden und kann dann aus SQLPLUS mit

  • SQLPLUS>@Skriptname

ausgeführt werden.

In diesem Beispiel wird davon ausgegangen, dass es einen Ordner c:\Backup gibt.


SET LINESIZE 500

SET COLSEP ';'
SET FEEDBACK OFF
SET HEADING OFF
SET PAGESIZE 400
SET VERIFY OFF
SET SERVEROUTPUT ON
SPOOL C:\MAKEBACKUP.SQL
DECLARE
 CURSOR C_GETTBS IS     
  SELECT DISTINCT TABLESPACE_NAME
  FROM DBA_DATA_FILES
  ORDER BY TABLESPACE_NAME;

 CURSOR C_GETFILES(P_TBS VARCHAR2) IS  
  SELECT FILE_NAME,FILE_ID
  FROM DBA_DATA_FILES
  WHERE TABLESPACE_NAME=P_TBS;
 V_PATH VARCHAR2(300):='C:\BACKUP\' || TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') || '\';
BEGIN
 DBMS_OUTPUT.PUT_LINE('HOST MKDIR ' || V_PATH);
 FOR R_GETTBS IN C_GETTBS LOOP
  DBMS_OUTPUT.PUT_LINE('ALTER TABLESPACE ' || R_GETTBS.TABLESPACE_NAME || ' BEGIN BACKUP;');
  FOR R_GETFILES IN C_GETFILES(R_GETTBS.TABLESPACE_NAME) LOOP
   DBMS_OUTPUT.PUT_LINE('HOST COPY ' || R_GETFILES.FILE_NAME || ' ' || V_PATH || 'FILE_' || R_GETFILES.FILE_ID || '.BAK');
  END LOOP;
  DBMS_OUTPUT.PUT_LINE('ALTER TABLESPACE ' || R_GETTBS.TABLESPACE_NAME || ' END BACKUP;');
 END LOOP;
END;
/
SPOOL OFF
SET VERIFY ON
SET LINESIZE 200
SET COLSEP ' '
SET FEEDBACK ON
SET HEADING ON
SET PAGESIZE 80
@C:\MAKEBACKUP.SQL
HOST DEL C:\MAKEBACKUP.SQL