Als PDF Downloaden!

Werbung
Tipps & Tricks: August 2014
Bereich:
DBA, RMAN
Erstellung:
08/2014 RZ
Versionsinfo:
11.2.x, 12.1.x
Letzte Überarbeitung:
08/2014 RZ
Prozedur zum Klonen einer Oracle Datenbank
Seit Oracle 11g kann ein Datenbank-Klon aus einer laufenden Produktionsumgebung erzeugt werden. Die
nachfolgende, schrittweise Prozedur gibt Ihnen eine Hilfestellung, um eine Datenbank erfolgreich zu duplizieren.
Zunächst müssen Sie jedoch etwas Vorarbeit leisten und ein paar Grundvoraussetzungen schaffen bzw. diese
überprüfen.
Die nachfolgende Liste soll Ihnen dabei als Checkliste dienen. Im Anschluss werden Sie dann Schritt für Schritt
durch die Prozedur geführt.
Grundvoraussetzungen:
Quell- und Zieldatenbank müssen das gleiche Patchlevel aufweisen.
Auf dem Zielserver sollte dieselbe Dateienstruktur vorhanden sein,
ansonsten müssen weitere Pfadänderungen vorgenommen werden.
Die "neue" Datenbank muss sich in der NOMOUNT-Phase befinden.
Die Passwortdatei muss auf beiden Datenbanken IDENTISCH sein.
Es müssen grundlegende Vorbereitung bzgl. Struktur gemacht worden sein,
Verzeichnisse für ...
Controldateien
Archivelogs
Redologs
Datendateien
TEMP-Dateien
....müssen entweder erstellt oder angepasst werden.
Parameterdatei (PFILE) manuell auf Zieldatenbank kopieren und anpassen
Instanz und zugehörigen Dienst erstellen
Im ersten Schritt wird die Instanz und der zugehörige Dienst erstellt. Dazu wird die Umgebungsvariable auf die
Zieldatenbank umgesetzt:
DOS>
SET ORACLE_SID=<neue_SID>
DOS>
SET ORACLE_SID=DBKLONE
(Windows)
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
$>
export ORACLE_SID=DBKLONE
(Linux)
Unter Windows wird der Dienst für die Zieldatenbank über folgenden Aufruf erstellt:
DOS>
ORADIM -new -sid <DB_Klonname>
DOS>
ORADIM -new -sid DBKLONE
Das erfolgreiche Erstellen der Instanz wird durch "Instanz erstellt." quittiert.
Netzwerk Dateien vorbereiten
Im zweiten Schritt muss auf der Zielseite der Listener erzeugt und die LISTENER.ORA-Datei angepasst werden.
Existiert bereits ein Listener, muss dieser neu gestartet werden. Des Weiteren muss auf der Quellseite ein Eintrag
in der TNSNAMES.ORA-Datei für die Klon-DB (Ziel-DB) vorgenommen werden.
Default Verzeichnis:
%ORACLE_HOME%\NETWORK\ADMIN
$ORACLE_HOME/network/admin
(Windows)
(Linux)
DBKLONE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = wickie)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBKLONE)
)
)
Passen Sie zusätzlich unter Windows (!) auf beiden Seiten die SQLNET.ORA an und setzen den Wert von NTS
um auf NONE:
SQLNET.AUTHENTICATION_SERVICES = (NONE)
Ansonsten kommt es während der Installation zum Abbruch:
RMAN-04005: Fehler aus Zieldatenbank:
ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt
Hinweis: Nach der Installation kann der Parameter wieder auf NTS zurückgesetzt werden.
Fehlende Verzeichnisse anlegen
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
Erzeugen Sie manuell die Verzeichnisse mit dem neuen Instanznamen auf Betriebssystemebene:
>>>
>>>
>>>
'%ORACLE_BASE%\oradata\DBKLONE' ,
'%ORACLE_BASE%\admin\DBKLONE\adump' ,
'%ORACLE_BASE%\fast_recovery_area\DBKLONE'
Passwortdatei 1:1 aus der Ursprungsdatenbank kopieren
Im nachfolgenden Schritt, kopieren Sie die Passwortdatei von der Ursprungsdatenbank zur Zieldatenbank und
passen den Namen entsprechend an.
Die Passwortdatei befindet sich im ORA-Home\database bzw. dbs Verzeichnis:
Default Verzeichnis:
%ORACLE_HOME%\database
$ORACLE_HOME/dbs
(Windows)
(Linux)
Bsp: E:\oracle\product\11.2.0\dbhome_1\database\PWD<SID>.ORA
/u01/oracle/product/11.2.0/dbhome_1/dbs/orapw<SID>
PWD<SID>.ora
(Windows)
orapw<SID>
(Linux)
Parameterdatei aus der Ursprungsdatenbank kopieren
In diesem Schritt wird die Parameterdatei (SPFILE) von der Ursprungsdatenbank in eine ASCII-Datei (PFILE)
umgewandelt und angepasst. Setzen Sie die alte SID um auf die neue SID und kopieren diese anschließend auf
die Zieldatenbank .
Ändern Sie gegebenenfalls auch den Laufwerksbuchstaben und die Pfade.
SPFILE
Default Verzeichnis:
%ORACLE_HOME%\database
$ORACLE_HOME/dbs
(Windows)
(Linux)
Bsp: E:\oracle\product\11.2.0\dbhome_1\database\SPFILE<SID>.ORA
/u01/oracle/product/11.2.0/dbhome_1/dbs/spfile<SID>.ora
Erzeugen der ASCII-Datei:
SQL> CREATE PFILE FROM SPFILE;
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
Nehmen Sie folgende Anpassungen vor (alte SID umsetzen auf neue SID):
*.audit_file_dest='%ORACLE_BASE%\admin\DBKLONE\adump'
*.control_files='%ORACLE_BASE%\oradata\DBKLONE\control01.ctl',
'%ORACLE_BASE%\fast_recovery_area\DBKLONE\control02.ctl'
*.db_name=DBKLONE
*.db_recovery_file_dest='%ORACLE_BASE%\fast_recovery_area'
*.db_file_name_convert='%ORACLE_BASE%\oradata\<quelle1>','%ORACLE_BASE%\oradata\<ziel1>'
[,'%ORACLE_BASE%\oradata\<quelle2>','%ORACLE_BASE%\oradata\<ziel2>', ...]
*.log_file_name_convert='%ORACLE_BASE%\oradata\<quelle1>','%ORACLE_BASE%\oradata\<ziel1>'
[,'%ORACLE_BASE%\oradata\<quelle2>','%ORACLE_BASE%\oradata\<ziel2>', ...]
Achtung: Falls die Daten- oder Redologdateien auf verschiedene Verzeichnisse verteilt sind, muss für jeden
Quell-Pfad ein Ziel-Pfad angegeben werden.
Klonen
Nach Abschluss dieser grundlegenden Vorbereitungen widmen wir uns nun dem eigentlichen Klonen. Melden Sie
sich dazu an der Zieldatenbank als Benutzer SYS an und erzeugen Sie ein SPFILE, sofern dies nicht schon
vorher geschehen ist.
SQL> CONN sys/<pwd> as sysdba
SQL> CREATE SPFILE FROM PFILE;
Anschließend bringen Sie die Instanz in die NOMOUNT Phase:
SQL> STARTUP NOMOUNT
Beenden Sie SQL Plus wieder mit EXIT, da - je nach Oracle-Version - der DUPLICATE-Befehl sonst hängen
bleiben könnte:
SQL> EXIT
Auf der Quellseite starten Sie nun den RMAN auf Kommandozeilenebene (evtl. ORACLE_SID erneut setzen):
DOS> SET ORACLE_SID=o11g
$>
export ORACLE_SID=o11g
(Windows)
(Linux)
Melden Sie sich nun an der Quell-DB (target) und der Klon-DB (auxiliary) an. Der nachfolgende Aufruf gilt für
Windows und Linux gleichermaßen:
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
DOS/Linux> rman target sys/<pwd> auxiliary sys/<pwd>@<tns_alias>
Seit Oracle 11g steht Ihnen eine einfache Variante des Klonens einer Datenbank zur Verfügung, rufen Sie dazu
folgenden Befehl auf:
RMAN> DUPLICATE TARGET DATABASE TO <SID> FROM ACTIVE DATABASE
NOFILENAMECHECK;
RMAN> DUPLICATE TARGET DATABASE TO dbklone FROM ACTIVE DATABASE
NOFILENAMECHECK;
... und das Klonen kann beginnen.
Mögliche Fehler
Kommt es während des Klonvorgangs zu einem Abbruch, dann werden diese Fehler unter Angabe des jeweiligen
Hintergrundprozesses im Alertlog dokumentiert.
Beispiel:
Wed Jun 11 13:55:50 2014
Errors in file D:\ORACLE\diag\rdbms\o11g\o11g\trace\o11g_ora_4112.trc:
ORA-17627: ORA-01031: insufficient privileges
Anmeldung bei Remote-Datenbank-Server nicht möglich
Workaround: Passwort-Datei erneut kopieren --> [manuell]
RMAN.EXE Absturz unter Windows
Kommt es während der Installation zu einem Absturz der RMAN.EXE dann liegt das meist an Fehlern im SPFILE
/ PFILE. Überprüfen Sie, ob dort alle Einträge korrekt sind (Hochkommas, Pfade, etc.)
Überprüfen Sie ebenso, ob der Parameter db_name auf die Ursprungsdatenbank zurückgesetzt wurde. Wenn
dem so ist, ändern Sie ihn wieder erneut auf die Zieldatenbank.
Anmerkung:
Kommt es während der Installation zu einer Fehlermeldung mit Abbruch:
RMAN-04005: Fehler aus Zieldatenbank:
ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt
dann ändern Sie den Parameter in der SQLNET.ORA Datei von NTS:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
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
auf NONE:
SQLNET.AUTHENTICATION_SERVICES = (NONE)
Diese Datei befindet sich per Default im Verzeichnis:
Default Verzeichnis:
dbhome_1\NETWORK\ADMIN
Diesen und weitere Tipps rund um den RMAN erhalten Sie in unseren RMAN- oder DBA-Kursen. Schauen Sie
doch einfach mal vorbei.
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