Als PDF Downloaden!

Werbung
Tipps & Tricks: November 2012
Bereich:
RAC, B&R
Erstellung:
11/2012 RAM
Versionsinfo:
11.2
Letzte Überarbeitung:
11/2012 RAM
Disasterfall: Daten Diskgroup verloren
Wir kennen es wahrscheinlich alle und hoffen, dass es nie passieren wird: der Disasterfall - der Datenträger mit
den Datendateien der Datenbank geht unwideruflich verloren.
Vorweg die Rahmenbedingungen des Szenarios:
In diesem Beispiel handelt es sich um eine Oracle Datenbank 11.2 in einem 2 Knoten Real Application Cluster
11.2 unter der Verwendung von ASM. Die Oracle Datenbank benutzt zwei Diskgroups, FRA und DATA.
Auf der DATA Diskgroup befinden sich die Datendateien, das SPFile, ein Control-File und jeweils das erste
Member der Redolog-Gruppen.
Auf der FRA Diskgroup befindet sich die FRA der Datenbank (und somit alle Backups und Archivelogs), ein
zweites Control-File und die zweiten Member der Redolog-Gruppen.
Desweitern ist ein regelmäßiges Full- und Archivelog Backup mit aktivem Autobackup eingerichtet. (Ohne
vollständig funktionierendes Backup ist es nicht möglich, diesen Disasterfall heil zu überstehen).
Disasterfall:
Die Diskgroup DATA fällt aus (inklusive aller Redundancen auf ASM und/oder SAN Ebene) und ist unwiderruflich
verloren.
1. Neue DATA Diskgroup erstellen
Als erstes müssen Sie neue Datenspeicher für die DATA Diskgroup zur Verfügung stellen. Diese müssen Sie
dann mit dem Befehl oracleasm createdisk ASM_DISK1 /dev/sdc1 für ASM bereitstellen. In diesem
Monatstipp sind dies die Partitionen /dev/sdc1, /dev/sdd1, /dev/sdh1 und /dev/sdi1. Vorher prüfen, ob nicht
bereits die Disks als ASM-Disks markiert wurden: oracleasm querydisk /dev/sdc1
[[email protected] ~]# oracleasm createdisk ASM_DISK1 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[[email protected] ~]# oracleasm createdisk ASM_DISK2 /dev/sdd1
Writing disk header: done
Instantiating disk: done
[[email protected] ~]# oracleasm createdisk ASM_DISK5 /dev/sdh1
Writing disk header: done
Instantiating disk: done
[[email protected] ~]# oracleasm createdisk ASM_DISK6 /dev/sdi1
Writing disk header: done
Instantiating disk: done
Danach sollten Sie auf dem zweiten Knoten noch den Befehl oracleasm scandisks absetzen, damit dieser
Knoten die ASM Disks "bemerkt".
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 1 von 6
[[email protected] ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "ASM_DISK1"
Instantiating disk "ASM_DISK2"
Instantiating disk "ASM_DISK5"
Instantiating disk "ASM_DISK6"
Zur Kontrolle kann auf beiden Knoten oracleasm listdisks ausgeführt werden.
Im Anschluss legen wir über SQL*Plus die Diskgroup 'DATA' wieder an.
Wenn möglich, Informationen zur Diskgroup (Grösse, FG, Kompatibilität) aus dem regelmäßigem Backup der
ASM-Metadaten holen (mit asmcmd md_backup) oder aus dem alert.log.
[email protected]+ASM1> CREATE DISKGROUP DATA NORMAL REDUNDANCY
FAILGROUP FG1_DATA DISK
'ORCL:ASM_DISK1',
'ORCL:ASM_DISK5'
FAILGROUP FG2_DATA DISK
'ORCL:ASM_DISK2',
'ORCL:ASM_DISK6'
ATTRIBUTE
'compatible.asm' = '11.2',
'compatible.rdbms' = '11.2';
Diskgroup created.
Da die DATA Diskgroup wieder vorhanden ist, können wir zum nächsten Schritt übergehen und die
entsprechende Dateien, die für die Datenbank nötig sind, restoren und recovern.
2. Datenbank Dateien restoren
Als erstes muss das SPfile der Datenbank restored werden, damit die Datenbank wenigstens im Nomount-Modus
gestartet werden kann. Dazu muss man sich per RMAN connecten und eine "DUMMY" Instanz starten, sonst
funktioniert RMAN nicht.
[[email protected]:~]>rman target /
Recovery Manager: Release 11.2.0.2.0 - Production on Fri Aug 10 18:23:00 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
RMAN> startup nomount
startup failed: ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/racdb/spfileracdb.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/racdb/spfileracdb.ora
ORA-15056: additional error message
ORA-17503: ksfdopn:2 Failed to open file +DATA/racdb/spfileracdb.ora
ORA-15173: entry 'racdb' does not exist in directory '/'
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 2 von 6
ORA-06512: at line 4
starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
158662656 bytes
2224584 bytes
104861240 bytes
46137344 bytes
5439488 bytes
Danach muss das SPfile aus dem Autobackup wiederhergestellt werden.
RMAN> restore spfile from autobackup db_recovery_file_dest='+FRA' db_name='racdb';
Starting restore at 10.08.2012 18:33:58
using channel ORA_DISK_1
recovery area destination: +FRA
database name (or database unique name) used for search: RACDB
channel ORA_DISK_1: AUTOBACKUP
+fra/RACDB/AUTOBACKUP/2012_08_10/s_790966236.318.790966239 found in the recovery
area
AUTOBACKUP search with format "%F" not attempted because DBID was not set
channel ORA_DISK_1: restoring spfile from AUTOBACKUP
+fra/RACDB/AUTOBACKUP/2012_08_10/s_790966236.318.790966239
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 10.08.2012 18:34:00
Nun können wir die Instanz herunterfahren und wieder normal in den nomount Modus starten und die weiteren
Dateien wiederherstellen.
RMAN> shutdown immediate
Oracle instance shut down
RMAN> startup nomount
connected to target database (not started)
Oracle instance started
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
1043886080 bytes
2233088 bytes
763366656 bytes
272629760 bytes
5656576 bytes
Bevor wir uns um die eigentlichen Datendateien der Datenbank kümmern, stellen wir erstmal das fehlende
Control-File, in Diskgroup DATA, wieder her. In unserem Fall einfach das noch vorhandene Control-File
"kopieren".
RMAN> restore controlfile to '+DATA' from
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 3 von 6
RMAN> restore controlfile to '+DATA' from
'+FRA/RACDB/CONTROLFILE/Current.256.788964485';
Starting restore at 10.08.2012 18:55:15
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=142 instance=racdb1 device type=DISK
channel ORA_DISK_1: copied control file copy
Finished restore at 10.08.2012 18:55:19
Nachdem das Control-File per OMF benannt wurde, muss man sich den Namen des neuen Control-Files für die
entsprechenden Änderungen am control_file Parameter im SPFile notieren.
[email protected]> ALTER SYSTEM SET
control_files='+DATA/racdb/controlfile/current.257.790973717',
'+FRA/racdb/controlfile/current.256.788964485' SCOPE=SPFILE;
System altered.
Danach kann man die Instanz herunterfahren und bis in die Mount-Phase wieder starten.
[email protected]> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
[email protected]> startup mount
ORACLE instance started.
Total System Global Area 1043886080 bytes
Fixed Size
2233088 bytes
Variable Size
763366656 bytes
Database Buffers
272629760 bytes
Redo Buffers
5656576 bytes
Database mounted.
[email protected]>
Im Anschluss können jetzt im RMAN die eigentlichen Datendateien wiederhergestellt ...
RMAN> restore database;
Starting restore at 10.08.2012 19:02:24
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=17 instance=racdb1 device type=DISK
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to
+DATA/racdb/datafile/system.259.790962489
channel ORA_DISK_1: restoring datafile 00002 to
+DATA/racdb/datafile/sysaux.258.790962487
channel ORA_DISK_1: restoring datafile 00003 to
+DATA/racdb/datafile/undotbs1.260.790962491
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 4 von 6
channel ORA_DISK_1: restoring datafile 00004 to
+DATA/racdb/datafile/undotbs2.261.790962491
channel ORA_DISK_1: restoring datafile 00005 to
+DATA/racdb/datafile/users.262.790962493
channel ORA_DISK_1: reading from backup piece
+FRA/racdb/backupset/2012_08_10/nnndf0_tag20120810t164721_0.330.790966043
channel ORA_DISK_1: piece
handle=+FRA/racdb/backupset/2012_08_10/nnndf0_tag20120810t164721_0.330.790966043
tag=TAG20120810T164721
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:46
Finished restore at 10.08.2012 19:04:12
... und recovered werden.
RMAN> recover database;
Starting recover at 10.08.2012 19:04:26
using channel ORA_DISK_1
starting media recovery
archived log for thread 1 with sequence 10 is already on disk as file
+FRA/racdb/archivelog/2012_08_10/thread_1_seq_10.282.790966107
archived log for thread 1 with sequence 11 is already on disk as file
+FRA/racdb/archivelog/2012_08_10/thread_1_seq_11.303.790966211
archived log for thread 1 with sequence 12 is already on disk as file
+FRA/racdb/archivelog/2012_08_10/thread_1_seq_12.272.790966215
archived log for thread 1 with sequence 13 is already on disk as file
+FRA/racdb/archivelog/2012_08_10/thread_1_seq_13.302.790966215
archived log for thread 1 with sequence 14 is already on disk as file
+FRA/racdb/archivelog/2012_08_10/thread_1_seq_14.281.790966233
archived log file
name=+FRA/racdb/archivelog/2012_08_10/thread_1_seq_10.282.790966107 thread=1
sequence=10
archived log file
name=+FRA/racdb/archivelog/2012_08_10/thread_1_seq_11.303.790966211 thread=1
sequence=11
archived log file
name=+FRA/racdb/archivelog/2012_08_10/thread_1_seq_12.272.790966215 thread=1
sequence=12
archived log file
name=+FRA/racdb/archivelog/2012_08_10/thread_1_seq_13.302.790966215 thread=1
sequence=13
media recovery complete, elapsed time: 00:00:02
Finished recover at 10.08.2012 19:04:33
Wenn alle Archivelogs und Redologs vorhanden und für RMAN zu finden waren, sollte sich die Datenbank mit
einem einfach alter database open; in SQL*Plus öffnen lassen.
SQL*Plus: Release 11.2.0.2.0 Production on Fri Aug 10 19:04:49 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 5 von 6
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters and Automatic Storage Management
options
[email protected]> alter database open;
Database altered.
Weitere wertvolle Tipps und Informationen erhalten Sie in unseren Backup & Recovery- und RAC-Schulungen.
Auch unser Consulting Team hilft Ihnen gerne persönlich weiter.
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 6 von 6
Herunterladen