Sidebar

DBASupport quiere compartir con ustedes, un artículo donde les explicamos cómo realizar un respaldo de una base de datos Oracle y cómo programarlo, para que se ejecute de manera diaria. 

Ahora te mostraremos lo básico para generar un esquema de respaldos, mediante Oracle RMAN CLI (Command Line Interface)

Nota: Recuerda que tu BD deberá estar configurada en Archivelog mode.

1. Ve al punto 2 si ya tienes configuradas tus políticas de RMAN, pero si no las tienes, con esto podrás configurar lo básico:

Nota: Recuerda que muchas de las opciones, ya están previamente configuradas por default y las puedes revisar con el comando "show all;"

/* Para comprimir los respaldos a disco por default */
configure device type disk backup type to compressed backupset;

/* Para especificar la ruta destino, por default, de tus respaldos a disco */
configure channel device type disk format 'C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\DBA\db_%d_%T.BAK'

/* Para una base de datos en Standby */
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;


Nota: Podrás configurar muchas otras opciones, como paralelismo para N "channels", polítcas de retención, autobackup de tu controlfile, etc

2. una vez declaradas las variables de entorno (oracle_home, oracle_sid, etc) de tu bd a respaldar, ejecuta lo siguiente:

Nota: A partir de ahora, tu BD será respaldada. El tiempo que tome, depende del tamaño de tu base de datos y de los data types utilizados en la misma.

Recuerda que el respaldo que estamos haciendo es un "baseline" para tus siguientes respaldos incrementales; ya sean cumulativos o diferenciales. Después podrás realizar este mismo procedimiento para hacer un respaldo cumulativo nivel 1, entre semana y dejar este nivel 0 para los fines de semana.

rman target rman_user/rman_user@tu_base_de_datos_target

allocate channel c1 type disk;
backup incremental level 0 database format 'C:\oracle\product\10.2.0\flash_recovery_area\DBA\BACKUPSET\Level_0\db_%d_Level_0_%U_%T.BAK';
# Cumulativos:
# backup incremental level 1 cumulative database format 'C:\oracle\product\10.2.0\flash_recovery_area\DBA\BACKUPSET\Level_1_Cum\db_%d_Level_1_Cumulative_%U_%T.BAK';
backup format 'log_t%t_s%s_p%p'
(archivelog all);
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup of database;
delete noprompt expired archivelog all;
# report obsolete;
delete noprompt obsolete;

Y listo, con esto tu base de datos será respaldada y los archivos obsoletos o expirados serán borrados.

Si deseas conocer mas comandos relacionados con RMAN o conocer más el significado de los ya vistos, te recomendamos visitar el manual en línea de Oracle:
http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96565/rcmsynta.htm


4. Si quieres dejar esto en un script que se ejecute diario:

NotA: Desde un archivo ".bat" (tarea calendarizada de Windows) o desde un cron que lo mande a ejecutar.
--------------------------------------------------

# Recuerda cargar tu profile en caso de Unix y en caso de Windows, definir las variables de ambiente desde las propiedades de sistema (pestaña avanzado):
cd /home/oracle
. ./.profile

rman target rman_user/rman_user@tu_base_de_datos@C:\oracle\product\10.2.0\DBA\scripts\rman_backup_level_0.rcv log=C:\oracle\product\10.2.0\DBA\scripts\rman_backup_level_0.log

Script rman_backup_level_0.rcv:

run {
backup incremental level 0 database format 'C:\oracle\product\10.2.0\flash_recovery_area\DBA\BACKUPSET\Level_0\db_%d_Level_0_%U_%T.BAK';
backup format 'log_DBA_t%t_s%s_p%p'
(archivelog all);
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup of database;
delete noprompt obsolete;
}
EXIT

--------------------------------------------------

Para darle otro formato diferente a tus backups, revisa la siguiente tabla:

Option -->  Description

%a  -->  Specifies the activation ID of the database
%c  -->  Specifies the copy number of the backup piece within a set of duplexed backup pieces
%d  -->  Specifies the name of the database
%D  -->  Specifies the current day of the month from the Gregorian calendar
%e  -->  Specifies the archived log sequence number
%f  -->  Specifies the absolute file number
%F  -->  Combines the database ID (DBID), day, month, year, and sequence into a unique and repeatable generated name
%h  -->  Specifies the archived redo log thread number
%I  -->  Specifies the DBID
%M  -->  Specifies the month in the Gregorian calendar in MM format
%N  -->  Specifies the tablespace name
%n  -->  Specifies the name of the database, padded on the right with n characters to a total length of eight characters
%p  -->  Specifies the piece number within the backup set
%s  -->  Specifies the backup set number
%t  -->  Specifies the backup set timestamp
%T  -->  Specifies the year, month, and day in the Gregorian calendar
%u  -->  Specifies an eight-character name constituted by compressed representations of the backup set or image copy number
%U  -->  Specifies a system-generated unique filename (this is the default setting)


Saludos

{mosimage}

Carlos Contreras
Oracle Certified DBA

 

 


Tips BD