Documento de referencia de configuración de copia de seguridad de Oracle_rman en Linux

Hoy publiqué un documento de configuración de copia de seguridad rman de la base de datos de Oracle en Linux como referencia. En la actualidad, en muchos entornos, utilizo este documento como copia de seguridad. Si hay algo mal, corríjame. Haré correcciones en el entorno de producción.

1. Configuración de directorio

1.1. Instrucciones de respaldo de Rman

 Descripción del nivel de copia de seguridad
1. La copia de seguridad completa de nivel 0 es la base de cada copia de seguridad incremental;
2. La copia de seguridad incremental se divide en dos situaciones, incremental y acumulativa. La primera copia de seguridad al mismo nivel o más bajo que usted, la segunda solo realiza copias de seguridad inferior a su nivel;
3, con la copia de seguridad incremental Descripción: un cambio en la copia de seguridad de nivel1 desde el nivel1 o el nivel0, una vez que el nivel2 o el nivel1 cambia la copia de seguridad de nivel2 o desde el nivel0;
4, instrucciones de copia de seguridad acumulativa: un cambio en la copia de seguridad de nivel1 desde el nivel0 , Level2 respalda los cambios desde el último nivel1 o nivel0.
 Notas relevantes:
1. Cuando la cantidad de datos es relativamente pequeña o el rendimiento del servidor de la base de datos es muy fuerte, puede realizar una copia de seguridad completa una vez al día;
2. Si necesita almacenar el archivo de copia de seguridad en el almacenamiento OSS de Alibaba Cloud después de la copia de seguridad, debido al almacenamiento OSS Hay un límite de tamaño de 4 GB, debe modificar las siguientes tres configuraciones de rman para limitar el tamaño de la pieza de respaldo de RMAN

1、level0_backup.rman文件
allocate channel C2 type disk ;                        --修改前
allocate channel C2 type disk maxpiecesize = 3500M ;  --修改后
2、level1_backup.rman文件
allocate channel C3 type disk ;                        --修改前
allocate channel C3 type disk maxpiecesize = 3500M ;  --修改后
3、level2_backup.rman文件
allocate channel C4 type disk ;                        --修改前
allocate channel C4 type disk maxpiecesize = 3500M ;  --修改后

3. Configure las tareas de temporización de crontab, evite las horas de trabajo ocupadas.
4. Utilice usuarios de Oracle para configurar las tareas de temporización. Si necesita utilizar usuarios raíz para configurar las tareas de temporización, preste atención a modificar las variables de entorno y ejecutar scripts en la sección de scripts de las tareas programadas. La ruta tiene permisos de ejecución de lectura y escritura.

1.2. Descripción del directorio

Ruta del script de copia de seguridad de la biblioteca de demonios: / backup / rman / scripts /
Copia de seguridad del archivo de almacenamiento por fecha: / copia de seguridad / arch / fecha +% Y% m% d
Copia de seguridad del archivo de control: / copia de seguridad / rman / controlfile
Copia de seguridad del archivo de base de datos por fecha: / copia de seguridad / rman / data / date +% Y% m% d
Generar registros de respaldo por fecha: / backup / rman / logs / date +% Y% m% d
Script de respaldo RMAN: / backup / rman / scripts
Complete todos los directorios anteriores Copia de seguridad remota.

2. copia de seguridad rman

2.1. Estrategia de respaldo

 Conserve los últimos 5 datos de copia de seguridad:
 Elimine las copias de seguridad redundantes y no válidas a las 04:45 a.m. todos los días;
 Haga
una copia de seguridad de los registros de archivo a las 12 y 20 en punto todos los días ;  Realice una copia de seguridad completa de nivel 0 de la base de datos a las 03:20 todos los días;

2.2. Plan de respaldo

El equipo diario que se utiliza aquí se puede agregar según las necesidades reales, de lunes a sábado, y completamente preparado el domingo.
Hora Lunes a domingo
12:00 Copia de seguridad del registro
20:00 Copia de seguridad del registro
03:20 Copia de seguridad completa
Agregue el script al crontab del usuario de Oracle, deje que se ejecute automáticamente de acuerdo con la estrategia y ajuste las tareas programadas según las necesidades reales.

$ crontab -e
20 03 * * * /backup/rman/scripts/level0_backup.sh
45 04 * * * /backup/rman/scripts/delobsolete.sh
00 12 * * * /backup/rman/scripts/arch.sh
00 20 * * * /backup/rman/scripts/arch.sh

2.3. Preparación

Coloque la base de datos de Oracle en el "módulo de instalación" para habilitar el modo de archivo de registros, y los registros archivados se almacenan en el área de recuperación rápida.

mkdir -p /backup/arch
mkdir -p /backup/rman/controlfile
mkdir /backup/rman/data
mkdir /backup/rman/logs
mkdir /backup/rman/scripts
chown -R oracle:oinstall /backup

Establezca el SID de conexión antes de la siguiente conexión de base de datos

$ export ORACLE_SID=daemon
$ sqlplus / as sysdba
SQL> SELECT log_mode from v$database;


El resultado de salida es ARCHIVELOG, lo que significa que el archivo se ha activado. El
resultado de salida es NOARCHIVELOG, lo que significa que el archivo no está activado.

(1) La operación abre el registro de archivo.

$ sqlplus / as sysdba
SQL> shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

(2) Habilite la función de seguimiento de cambios para registrar la ubicación de los bloques de datos que han cambiado desde la última copia de seguridad para mejorar el rendimiento de las copias de seguridad incrementales. El archivo de seguimiento de cambios se guarda en el área de recuperación rápida de forma predeterminada (el seguimiento de cambios de bloque se activa cuando se utiliza la copia de seguridad incremental de RMAN para acortar el tiempo de la copia de seguridad de RMAN).

$ sqlplus / as sysdba
SQL> shutdown immediate;
startup mount
alter system set db_create_file_dest='/u01/oracle/fast_recovery_area';
alter database enable block change tracking;
alter database open;

(3) Ver y modificar el tamaño del área de flashback (el tamaño se modifica según la situación real)

SQL> show parameter db_recovery_file_dest;
alter system set db_recovery_file_dest_size=40G scope=both;
shutdown immediate;
startup;

2.4. Configuración rman

$ rman target /
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;

Las dos oraciones anteriores solo pueden usar una condición, guardar 5 copias o 5 días de ventana de recuperación (recomendación para usar la ventana de recuperación), ajuste según sea necesario

CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman/controlfile/%F';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/backup/rman/controlfile/snapcf_daemon.f';

2.5. Secuencia de comandos rman

1) delobsolete.rman

cd /backup/rman/scripts
$ vi delobsolete.rman
run {
  crosscheck backup;
  delete noprompt obsolete;
  delete noprompt expired backup;
}
exit

2) arch.rman

$ vi arch.rman
sql 'alter system archive log current' ;
run {
allocate channel C1 type disk FORMAT '/backup/arch/' ;
backup 
skip inaccessible
tag arch_daemon
filesperset 10 format '/backup/arch/%T/arch_%T_%d_%t_%s_%p' archivelog all delete input;
release channel C1;
}
exit

3) level0_backup.rman

$ vi level0_backup.rman
sql 'PURGE DBA_RECYCLEBIN';
sql 'alter system archive log current' ;
run {
allocate channel C2 type disk ;
backup 
incremental level 0 
skip inaccessible 
tag full0_daemon
DATABASE 
filesperset 5 format '/backup/rman/data/%T/db_0_%T_%d_%t_%s_%p';
release channel C2;
}
exit

4) level1_backup.rman

$ vi level1_backup.rman
sql 'PURGE RECYCLEBIN';
sql 'alter system archive log current' ;
run {
allocate channel C3 type disk ;
backup 
incremental level 1
skip inaccessible 
tag level1_daemon
DATABASE 
filesperset 5 format '/backup/rman/data/%T/db_1_%T_%d_%t_%s_%p_inc' ;
release channel C3;
}
exit

5) level2_backup.rman

$ vi level2_backup.rman
sql 'PURGE RECYCLEBIN';
sql 'alter system archive log current' ;
run {
allocate channel C4 type disk ;
backup 
incremental level 2
skip inaccessible 
tag level2_daemon
DATABASE 
filesperset 5 format '/backup/rman/data/%T/db_2_%T_%d_%t_%s_%p_inc' ;
release channel C4;
}
exit

2.6. Script de tareas programadas

1) delobsolete.sh

$ vi delobsolete.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/delobsolete.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_obsolete.log`
exit

2) arch.sh

$ vi arch.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/arch/`date +%Y%m%d`
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/arch.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_arch.log`
exit

3) level0_backup.sh

$ vi level0_backup.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/rman/data/`date +%Y%m%d`
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/level0_backup.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_0.log`
exit

4) level1_backup.sh

$ vi level1_backup.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/rman/data/`date +%Y%m%d`
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/level1_backup.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_1.log`
exit

5) level2_backup.sh

$ vi level2_backup.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/rman/data/`date +%Y%m%d`
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/level2_backup.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_2.log`
exit

3. Fin

Supongo que te gusta

Origin blog.51cto.com/8355320/2590393
Recomendado
Clasificación