Oracle Duplicate Database: differenze tra le versioni

Da Emigar.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
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