Copiare e rinominare un database Oracle senza import ed export |
Per poter duplicare in modo veloce un database oracle oltre al metodo import ed export esiste
la copia fisica dei datafiles. Questo metodo viene utilizzato quando il database è molto grande
e per evitare le lunghe attese dell'export ed import del Database. |
fasi da seguire: |
Collegarsi al database origine |
In questa fase bisogna essere sicuri che l'istanza da duplicare sia quella giusta.
Verificare che la variabile d'ambiente ORACLE_SID sia settata a ORIG; sia tramite comando
unix e sia tramite collegamento a sqlplus. (su unix echo $ORACLE_SID)
sqlplus /nolog SQL*Plus: Release 10.2.0.4.0 - Production on Tue March 20 11:26:23 2008 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. SQL> connect sys/sys as sysdba SQL> select name from v$database; NAME --------------------------------------- ORIG |
Individuare i datafiles da copiare |
Eseguire una query sul database origine per conoscere i datafiles da duplicare.
SQL> select name from v$datafile; NAME --------------------------------------- /filesystem01/ORIG/system01.dbf /filesystem01/ORIG/rbs01.dbf /filesystem01/ORIG/temp01.dbf /filesystem01/ORIG/user_01.dbf /filesystem01/ORIG/user_02.dbfMemorizzare queste allocazioni ed eseguire un shutdown dell'istanza ORIG. |
Copiare i datafiles nella nuova allocazione |
||||||||||||
|
Creare le directory della nuova struttura dell'istanza
Duplicare il files initORIG.ora in initDEST.ora. Cambiare il valore della variabile"db_name"
da ORIG in DEST (Attenzione: se esistono ulteriori variabili con ORIG sostituire con DEST).
|
Generazione script per la creazione controlfiles della nuova istanza Collegarsi all'istanza ORIG e creare lo script dei controlfiles nel modo seguente: Il file verrà creato nella directory del setup di oracle, variabile USER_DUMP_DEST. Copia il file cr_control.sql nella directory USER_DUMP_DEST dell'istanza DEST:
Creare i controlfiles sulla nuova istanza
Settare la variabile ORACLE_SID a DEST. (Es. (sh, ksh) : export ORACLE_SID=DEST). Start della nuova istanza
Prima di attivare il database DEST, devi eseguire una recover database e dopo puoi aprire il database con l'opzione resetlogs:SQL> alter database recover database until cancel using backup controlfile; SQL> alter database recover cancel; Statement processed. SQL> alter database open resetlogs; Statement processed. SQL>Verifica che sei connesso all'istanza database DEST eseguendo la seguente query:SQL> select name from v$database; NAME --------- DEST 1 row selected. SQL> |