Manual de referencia rápida de recuperación incompleta de RMAN

Resumen: Escenario: el servidor A es un entorno de producción normal y es necesario implementar un conjunto del mismo entorno en el servidor B para realizar pruebas. El artículo presenta todo el proceso de utilizar RMAN para restaurar la base de datos de forma incompleta a un determinado SCN y ABRIR en una máquina diferente. Se recomienda guardarlo para realizar una copia de seguridad.

 

Escenario de aplicación : el servidor A es un entorno de producción normal y es necesario implementar un conjunto del mismo entorno en el servidor B para realizar pruebas.
Entorno de base de datos : RHEL6.4 + Oracle 11.2.0.4.7

1. El servidor A realiza una copia de seguridad de la base de datos

1.1 Copia de seguridad en línea (la base de datos se ejecuta en modo de archivo)

nohup /bin/bash backup_all.sh &

Después de la copia de seguridad, transfiera todos los medios de copia de seguridad al servidor B (si las dos máquinas están conectadas a la red, considere combinar el servicio NFS para realizar una copia de seguridad en el servidor B desde el principio).

1.2 Contenido del script de respaldo

#!/bin/bash
#ScriptName:backup_all.sh
#Usage: backup all files in oracle user environment.
#ex: nohup /bin/bash backup_all.sh > backup.log & 
#Author: Alfred Zhao
#Creation: 2015-09-11
#Version: 1.0.0

#Define variable <You may need to change the value of basedir.>
basedir=/u01/orabak
date=`date +%Y%m%d`

#Create pfile
sqlplus / as sysdba <<EOF
create pfile='$basedir/pfile$date.ora' from spfile;
EOF

#RMAN BACKUP
rman target / log=$basedir/backup_all_$date.log <<EOF
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup database filesperset 4 format '$basedir/full_%d_%T_%s_%p';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup archivelog all format '$basedir/arch_%d_%T_%s_%p' delete input;
backup current controlfile format '$basedir/ctl_%d_%T_%s_%p';
release channel c1;
release channel c2;
}
EOF

2. El servidor B restaura la base de datos

2.1 Software de base de datos de instalación del servidor B

Consulte el documento de Motian Wheel para instalar el software de la base de datos y las configuraciones anteriores relacionadas.
Luego crea un archivo de contraseña:

orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle force=y entries=5

2.2 Inicie la instancia en el estado nomount (especifique el archivo pfile)

Copie el $basedir/pfile$date.oraarchivo $ORACLE_HOME/dbs/init$ORACLE_SID.oray modifíquelo de acuerdo con la situación real del servidor B. Luego, inicie la instancia en el estado nomount (especifique el archivo pfile).

startup nomount pfile='$ORACLE_HOME/dbs/init$ORACLE_SID.ora'

2.3 RMAN restaura el archivo de control para determinar la validez del conjunto de respaldo

2.3.1 RMAN restaura el archivo de control, inicia la base de datos para montar el estado y determina la validez del conjunto de respaldo

backupControlFile=/u01/orabak/backup/ctl_JINGYU_20150911_46_1
rman target / > crosscheck.log <<EOF
restore controlfile from '$backupControlFile';
alter database mount;
crosscheck backupset;
EOF

2.3.2 Si el conjunto de respaldo no es válido, elimínelo y regístrelo manualmente.

Generalmente, los directorios de respaldo de los dos hosts son diferentes. La ruta del conjunto de respaldo registrada en el archivo de control no puede encontrar el conjunto de respaldo correspondiente y el estado es "EXPIRED". En este momento, debe eliminar estos conjuntos de respaldo vencidos, catalogar el nuevo conjunto de respaldo y confirmar nuevamente. La validez del conjunto de respaldo.

rman target / > catalog.log <<EOF
catalog backuppiece '/u01/orabak/backup/full_JINGYU_20150911_39_1';
catalog backuppiece '/u01/orabak/backup/full_JINGYU_20150911_40_1';
catalog backuppiece '/u01/orabak/backup/full_JINGYU_20150911_41_1';
catalog backuppiece '/u01/orabak/backup/full_JINGYU_20150911_42_1';
catalog backuppiece '/u01/orabak/backup/arch_JINGYU_20150911_43_1';
catalog backuppiece '/u01/orabak/backup/arch_JINGYU_20150911_44_1';
catalog backuppiece '/u01/orabak/backup/arch_JINGYU_20150911_45_1';
crosscheck backupset;
delete noprompt expired backupset;
EOF

2.4 Base de datos de recuperación de RMAN

2.4.1 Restaurar archivo de datos

Si se ha cambiado el directorio de almacenamiento de archivos de datos, es necesario cambiarle el nombre y restaurarlo.

rman target / log=restore.log <<EOF
run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
set newname for datafile 1 to '/u01/oradata02/o1_mf_system_01.dbf';
set newname for datafile 2 to '/u01/oradata02/o1_mf_sysaux_01.dbf';
set newname for datafile 3 to '/u01/oradata02/o1_mf_undotbs1_01.dbf';
set newname for datafile 4 to '/u01/oradata02/o1_mf_users_01.dbf';
set newname for datafile 5 to '/u01/oradata02/o1_mf_dbs_d_ji_01.dbf';
set newname for datafile 6 to '/u01/oradata02/o1_mf_dbs_d_lu_01.dbf';
set newname for datafile 7 to '/u01/oradata02/o1_mf_dbs_d_xx_01.dbf';
set newname for datafile 8 to '/u01/oradata02/o1_mf_dbs_i_xx_01.dbf';
restore database;   
switch datafile all;
release channel c1;
release channel c2;
}
EOF

2.4.2 recuperar archivo de datos

2.4.2.1 recuperar la base de datos;

rman target / log=recover.log <<EOF 
recover database;
EOF

2.4.2.2 recuperar la base de datos hasta scn xxxxxxx;

scn=1463689
rman target / log=recover$scn.log <<EOF
recover database until scn $scn;
EOF

Este scn se obtiene de acuerdo con la información de registro del paso anterior.

2.4.3 Modificar la ruta del archivo de registro

new_dest=/usr3/oradata/sysdata/redo_file
sqlplus / as sysdba > logfile.log<<EOF
set linesize 180 pagesize 100
select 'alter database rename file '''||member||''' to ''$new_dest/redoXXX.log'';' from v\$logfile;
EOF

Nota: Puede utilizar el modo de edición de columnas UE para procesar rápidamente el nuevo nombre del archivo de rehacer (es decir, redoXXX.log se cambia al valor real correspondiente).

2.4.4 Modificar la ruta del archivo temporal

new_dest=/usr3/oradata/sysdata
sqlplus / as sysdba > tempfile.log<<EOF
set linesize 180 pagesize 100
select 'alter database rename file '''||name||''' to ''$new_dest/tempXXX.dbf'';' from v\$tempfile;
EOF

 

Nota: El nuevo nombre del archivo temporal también se procesa (es decir, tempXXX.dbf se cambia al valor real correspondiente).

2.4.5 Abrir la base de datos (resetlogs)

sqlplus / as sysdba > dbopen.log<<EOF
alter database open resetlogs;
EOF

 

Los archivos de rehacer y los archivos temporales se crean automáticamente durante el proceso de inicio.

2.5 Operaciones después de la recuperación

2.5.1 Ver información básica de la base de datos

Vea el estado de las instancias y bibliotecas de bases de datos, archivos de datos, archivos temporales, archivos de registro, archivos de control, información de la ruta del archivo de parámetros.

sqlplus / as sysdba > dbstatus.log <<EOF
select instance_name, status from v\$instance;
select dbid, open_mode from v\$database;
select file_name from dba_data_files;
select file_name from dba_temp_files;
select member from v\$logfile;
show parameter control
show parameter pfile
EOF

 

2.5.2 Crear archivo spfile, reiniciar la base de datos

Crear archivo spfile

sqlplus / as sysdba > createSpfile.log <<EOF
create spfile from pfile;
EOF

 

Cerrar la base de datos

sqlplus / as sysdba > shutdownDB.log <<EOF
shutdown immediate
EOF

 

Iniciar la base de datos

sqlplus / as sysdba > startDB.log <<EOF
startup
EOF

 

2.5.3 Configuración de monitoreo

Modifique el archivo de configuración de escucha: $ ORACLE_HOME / network / admin / listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = JY-DB02)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

 

ADR_BASE_LISTENER = / u01 / app / oracle
corresponde a 3 modificaciones relacionadas con el nombre de host del servidor:

1. hostname显示正确主机名 2. /etc/sysconfig/network中HOSTNAME配置 3. /etc/hosts中IP地址和主机名的对应关系

Comience a monitorear y vea el estado de monitoreo:

lsnrctl start
lsnrctl status

 

Supongo que te gusta

Origin blog.csdn.net/weixin_41086692/article/details/103392151
Recomendado
Clasificación