TIPS

  • ESTIMATEONLY
    Antes de ejecutar un DBCC asegúrate que tienes suficiente espacio en TEMPDB. Puedes usar la...

Quién está en linea

Tenemos 28 invitados conectado(s)

Acceso

Iniciar sesión

Buscar Foro

Palabras Clave

Buscar

Cómo respaldar una base de datos mediante RMAN PDF Imprimir Correo
Oracle - RMAN
Sábado, 02 de Febrero de 2008 05:09

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

 

 

Última actualización en Miércoles, 13 de Enero de 2010 16:00
 

Sólo usuarios registrados podrán añadir comentarios.
Favor de registrarse.

Foro

Otros Temas »