Oracle Duplicate Database: differenze tra le versioni
Jump to navigation
Jump to search
| (3 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 2: | Riga 2: | ||
=Duplicate via rman= |
=Duplicate via rman= |
||
Si può partire con un spfile creato opportunamente. O si può restorare l'spfile del db originale e modificarlo tramite duplicate (dalla 11 in poi) (preferibile se si duplica su un server diverso) |
|||
===10gR2=== |
|||
Creato spfile dell'istanza AUXILIARY, e creato passwordfile, modificata entry nel <code>listener.ora</code> e <code>tnsnames.ora</code> |
|||
per consentire connessione via listener alla AUXILIARY. |
|||
ORACLE_SID=TEMP |
|||
export ORACLE_SID |
|||
rm -f ${ORACLE_HOME}/dbs/orapwTEMP |
|||
orapwd file=${ORACLE_HOME}/dbs/orapwTEMP password=temppassword |
|||
sqlplus '/ as sysdba' << EOF |
|||
shutdown abort; |
|||
create spfile from pfile='/home/oracle/pfileTEMP.ora'; |
|||
startup nomount; |
|||
EOF |
|||
impostato con <code>. oraenv</code> la connessione al target (database da duplicare). Il database duplicato verrà generato nell'istanza AUXILIARY. |
|||
ORACLE_SID=DBNAME |
|||
export ORACLE_SID |
|||
rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log << EOF |
|||
run |
|||
{ |
|||
allocate auxiliary channel dd0 type sbt; |
|||
allocate auxiliary channel dd1 type sbt; |
|||
DUPLICATE TARGET DATABASE TO TEMP |
|||
DB_FILE_NAME_CONVERT ('/oradata/DBNAME/','/oradata2/TEMP/') |
|||
UNTIL LOGSEQ 1011237 THREAD 1 |
|||
LOGFILE |
|||
'/oradata2/TEMP/onlinelog/log01.dbf' size 512M, |
|||
'/oradata2/TEMP/onlinelog/log02.dbf' size 512M, |
|||
'/oradata2/TEMP/onlinelog/log03.dbf' size 512M |
|||
; |
|||
} |
|||
EOF |
|||
=Duplicate PDB= |
=Duplicate PDB= |
||
[[Oracle_Conversione_a_PDB|Conversione a pdb]] |
|||
* creare utente con privilegio |
* creare utente con privilegio |
||
* aprire il database sorgente in read only |
* aprire il database sorgente in read only |
||
Versione attuale delle 12:05, 19 mag 2026
Duplicate via rman
Si può partire con un spfile creato opportunamente. O si può restorare l'spfile del db originale e modificarlo tramite duplicate (dalla 11 in poi) (preferibile se si duplica su un server diverso)
10gR2
Creato spfile dell'istanza AUXILIARY, e creato passwordfile, modificata entry nel listener.ora e tnsnames.ora
per consentire connessione via listener alla AUXILIARY.
ORACLE_SID=TEMP
export ORACLE_SID
rm -f ${ORACLE_HOME}/dbs/orapwTEMP
orapwd file=${ORACLE_HOME}/dbs/orapwTEMP password=temppassword
sqlplus '/ as sysdba' << EOF
shutdown abort;
create spfile from pfile='/home/oracle/pfileTEMP.ora';
startup nomount;
EOF
impostato con . oraenv la connessione al target (database da duplicare). Il database duplicato verrà generato nell'istanza AUXILIARY.
ORACLE_SID=DBNAME
export ORACLE_SID
rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log << EOF
run
{
allocate auxiliary channel dd0 type sbt;
allocate auxiliary channel dd1 type sbt;
DUPLICATE TARGET DATABASE TO TEMP
DB_FILE_NAME_CONVERT ('/oradata/DBNAME/','/oradata2/TEMP/')
UNTIL LOGSEQ 1011237 THREAD 1
LOGFILE
'/oradata2/TEMP/onlinelog/log01.dbf' size 512M,
'/oradata2/TEMP/onlinelog/log02.dbf' size 512M,
'/oradata2/TEMP/onlinelog/log03.dbf' size 512M
;
}
EOF
Duplicate PDB
- creare utente con privilegio
- aprire il database sorgente in read only
- creare dblink nel cdb$root del container di destinazione verso DB sorgente
- comando di copia
- se di versione precedente, aggiornare catalogo
- se il sorgente è non CDB/PDB, convertire in PDB