En un blog anterior vimos cómo generar un backup full de la base de datos con rman, sin embargo, es muy útil añadirle a estos backups los de archive, con el fin de poder restaurar la base de datos en un punto en el tiempo.
Primero configura el full de la base de datos
Posterior continuamos con la creacion del script para el de archive
Entraremos a la ruta de los scripts de backup que tenemos previamente configurada
[oracle@soyundba bckps]$ vi rman_archive.sh
#########################################################
# Soy un DBA #
# Nombre del script: rman_archive.sh #
# Descripcion: Generar backup archive de la BD soyundba #
# Fecha creacion: Mayo 24 2022 #
# Creado por: Julian David Ortiz Idrobo #
# Fecha modificacion: #
# Modificado por: #
#########################################################
######################
# SETEO DE VARIABLES #
######################
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=$1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export fecha=`date +%d%b%Y_%H%M`
export ruta=/backup/soyundba/rman
export logarch=$ruta'/RmanArch_'${ORACLE_SID}'_'${fecha}'.log'
export nas=/nas/backup/soyundba/rman
#############
# EJECUCION #
#############
$ORACLE_HOME/bin/rman target / msglog $logarch append << EOF
run
{
allocate channel ch1 type disk maxpiecesize 10G;
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '$ruta/RmanArch_%d_%T_%s_%p.bck' tag BckpArch;
delete noprompt archivelog all backed up 1 times to device type disk;
backup current controlfile format '$ruta/RmanCtrl_%d_%T_%s_%p.bck' tag BckpCtrlFile;
release channel ch1;
}
exit
EOF
#########################
# PASAR BACKUP A LA NAS #
#########################
cp $ruta/RmanArch_* $nas
cp $ruta/RmanCtrl_* $nas
Otorgamos los permisos necesarios, para que el usuario Oracle pueda ejecutar la tarea automáticamente desde el crontab
[oracle@soyundba bckps]$ chmod 755 rman_archive.sh
Asi mismo modificamos nuestro contab para dejar nuestra tarea programada a una hora especifica. Tal como en el ejemplo, nuestro backup se ejecuta todos los días a las 6:00 am, 12:00 pm y 10:00 pm.
[oracle@soyundba bckps]$ crontab -e
# BACKUP RMAN ARCHIVE DIARIO 6 AM, 12 PM Y 10 PM
00 06,12,10 * * * /home/oracle/scripts/bckps/rman_archive.sh csoyundba
Finalmente, podremos realizar la prueba del script, ejecutando este de manera manual
[oracle@soyundba rman]$ sh /home/oracle/scripts/bckps/rman_archive.sh csoyundba
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> RMAN>
Podemos listar nuestros archivos físicos
[oracle@soyundba rman]$ ls -l
total 18432
-rw-r-----. 1 oracle oinstall 57856 Aug 13 13:24 RmanArch_CSOYUNDB_20220813_73_1.bck
-rw-r--r--. 1 oracle oinstall 2190 Aug 13 13:24 RmanArch_csoyundba_13Aug2022_1324.log
-rw-r-----. 1 oracle oinstall 18808832 Aug 13 13:24 RmanCtrl_CSOYUNDB_20220813_74_1.bck
Con esto, ya tendremos nuestras bases de datos protegidas ante contingencias y así podremos restaurarnos en un punto en el tiempo
Tambien puedes ver aquí la configuración con datapump
Te invito a seguir consultando más articulos relacionados a backups en Oracle dando clic aquí.