Zu Oracle

Bereich:
Versionsinfo:
DBA
8.1.7, 9.2.0.4, 10.2.04, 11.1.0.6
Erstellung:
Letzte Überarbeitung:
05/2002 MP
05/2009 MM
 Als PDF Downloaden!

Klonen einer Datenbank

Sie wollen eine Kopie Ihrer Datenbank erstellen? Ganz einfach:

Erstellen Sie zuerst ein SQL-Skript zur Erzeugung des Controlfile-Skripts:

ALTER DATABASE BACKUP CONTROLFILE TO TRACE;                 

Das Skript wird im udump-Verzeichnis als Trace-Datei abgelegt. Löschen Sie in diesem Skript alles vor -- Set #2. RESETLOGS case sowie alle Zeilen nach CHARACTER SET … Entfernen Sie die Leerzeile vor der DATAFILE-Klausel und modifizieren Sie den CREATE CONTROLFILE-Befehl folgendermaßen:

CREATE CONTROLFILE SET DATABASE "NEW_SID" RESETLOGS ARCHIVELOG ... 

Stoßen Sie die Archivierung des aktuellen Redo-Log-Files an:

ALTER SYSTEM SWITCH LOGFILE;    

Fahren Sie nun die Datenbank konsistent herunter

SHUTDOWN IMMEDIATE;

und kopieren Sie sämtliche Datenfiles und Redo-Log-Files sowie die Initialisierungsdatei in die entsprechenden neuen Verzeichnisse:

copy <old_filename> to <new_filename>;                 

Tipp:

Sie können hierfür natürlich auch ein bereits bestehendes Backup Ihrer Datenbank verwenden.

Haben Sie Ihre Datenbank nach der OFA-Struktur aufgebaut, so müssen Sie auch noch die neuen Verzeichnisse für $ORACLE_BASE/admin/<NEW_SID>/... anlegen (bdump, cdump, create, pfile, udump). Tragen Sie nun im oben erstellten und bereits geänderten Controlfile-Script die neuen Dateinamen ein. Die neue Initialisierungsdatei muss den Namen der neuen Instanz haben. In dieser ändern Sie nun die Einträge für die Controlfiles und den Namen der Datenbank (DB_NAME, INSTANCE_NAME) sowie alle anderen Einträge, die sich auf die alten Verzeichnisse beziehen, entsprechend ab.

Um unter Windows eine neue Datenbank zu erstellen, müssen Sie zuerst noch mittels ORADIM einen neuen Dienst erzeugen:

REM Erstellen der Instanz TEST und eines Windows-Dienstes
%ORACLE_HOME%\bin\oradim -new -sid TEST -intpwd sys -startmode auto                  

Das weitere Vorgehen ist unter Unix und Windows fast identisch. Setzen Sie in ihrer Shell oder MS-DOS Eingabeaufforderung zuerst die korrekten Umgebungsvariablen.

Beispiel unter Unix (ksh):

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/ora92
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=TEST                  

Starten Sie nun in sqlplus als SYSDBA das geänderte Controlfile-Script:

$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 -
Production on Sun May 5 04:07:35 2002

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

SHUTDOWN IMMEDIATE
@control_file_script
ORACLE instance started.

Total System Global Area   33656992 bytes
Fixed Size                    73888 bytes
Variable Size              29315072 bytes
Database Buffers            4096000 bytes
Redo Buffers                 172032 bytes

Control file created.
…               

Danach müssen Sie die Datenbank zuerst wiederherstellen und anschließend mit der Option RESETLOGS öffnen.

RECOVER DATABASE USING BACKUP CONTROLFILE;

Nun werden Sie vermutlich nach einer archivierten Redo-Log-Datei gefragt, die Sie noch gar nicht haben. Hier übergeben Sie die Kopie der zuletzt verwendeten Redo-Log-Datei Ihrer alten Datenbank.

ALTER DATABASE OPEN RESETLOGS;

Fertig - wenn Sie jetzt noch die Dateien listener.ora und tnsnames.ora um den neuen Eintrag erweitern und dem temporären Tablespace eine neue Datendatei hinzufügen, ist die Sache perfekt.

ALTER TABLESPACE temp ADD TEMPFILE …

Hinweis:

Bereits ab der Version 8.1.6 steht Ihnen über den RMAN das DUPLICATE-Kommando zur Verfügung, mit dem Sie noch komfortabler eine Datenbank klonen können. Genaueres dazu erfahren Sie in unserem RMAN-Kurs.

Suche

Kontakt

Telefon:
  089 6228 6789-0

Telefon (gültig bis Ende 2010):
  089 679090-40

E-Mail Verteiler Monatstipps

Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.