Para duplicar una base de datos Oracle con las copias de seguridad que has realizado con RMAN hay varias formas de hacerlo.
Asegúrese de tener una copia de seguridad completa de la base de datos de origen.
Las copias de seguridad se encuentran en: /home/oracle/backup
El primer método que te mostraré es con un pfile mínimo, sólo el db_name.
El segundo método será con más información en el pfile.
Para ambos casos, supongamos que el ORACLE_SID es oradb2 y el db_unique_name es oradb21, cámbielos en consecuencia.
Asegúrese de que existen las carpetas DB_CREATE_FILE_DEST, DB_RECOVERY_FILE_DEST y AUDIT_FILE_DEST.
Si utiliza ASM, sustitúyalo en consecuencia.
Índice
1. Base de datos duplicada RMAN con pfile mínimo
En el fichero p sólo se añade el nombre_db.
cat $ORACLE_HOME/dbs/initoradb2.ora
*.db_name='ORADB2'
Iniciar la base de datos en modo nomount
sqlplus / as sysdba
startup nomount
Se conecta a RMAN con
rman auxiliary /
Este comando se ejecuta dentro de un bloque RMAN
run
{
duplicate database to oradb2
spfile
set db_unique_name 'oradb21'
set control_files '/u01/app/oracle/oradata/ORADB21/datafile/control1.ctl'
set db_create_file_dest '/u01/app/oracle/oradata'
set db_recovery_file_dest '/u01/app/oracle/fra/'
set db_recovery_file_dest_size '22g'
set audit_file_dest '/u01/app/oracle/audit'
set pga_aggregate_target '210m'
set sga_target '900m'
backup location '/home/oracle/backup';
}
2. Base de datos duplicada de RMAN con más información en el archivo p
La segunda opción es con más información dentro del pfile
cat $ORACLE_HOME/dbs/initoradb2.ora
*.audit_file_dest='/u01/app/oracle/audit'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/ORADB21/datafile/control1.ctl'
*.db_block_size=8192
*.db_create_file_dest='/u01/app/oracle/oradata'
*.db_domain='localdomain'
*.db_name='ORADB2'
*.db_unique_name='ORADB21'
*.db_recovery_file_dest='/u01/app/oracle/fra'
*.db_recovery_file_dest_size=22G
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oradbXDB)'
*.enable_pluggable_database=true
*.local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=srv2.localdomain)(PORT=1521))'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=200M
*.processes=500
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=900M
*.undo_tablespace='UNDOTBS1'
Tienes que iniciar la base de datos en nomount
sqlplus / as sysdba
startup nomount
Ahora conéctese a RMAN
rman auxiliary /
A continuación, ejecute el comando duplicado.
run
{
duplicate datavase to oradb2
backup location '/home/oracle/backup';
}
Espero que te haya sido útil.