Oracle Duplicate Database: differenze tra le versioni

Da Emigar.
Jump to navigation Jump to search
Nessun oggetto della modifica
 
(4 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
* 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


[[Categoria:Database]]
[[Categoria:Database]]

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

Conversione a 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