Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Oracle: Copia de seguridad de una Base de datos Oracle con RMAN en una ubicación
Bases de Datos


Artículo que muestra cómo realizar una copia de seguridad en caliente (sin necesidad de cerrar la base de datos) de una base de datos Oracle mediante RMAN. También os mostramos cómo poder especificar el destino de los ficheros de copia de seguridad.

Relizar copia de seguridad de una Base de datos Oracle mediante RMAN en una ubicación especificada

Este artículo muestra cómo realizar una copia de seguridad en caliente (sin necesidad de cerrar la base de datos) de una base de datos Oracle mediante RMAN. También os mostramos cómo poder especificar el destino de los ficheros de copia de seguridad.

En primer lugar hay que decir que para poder realizar una copia de seguridad en caliente mediante RMAN la base de datos debe estar en modo ARCHIVELOG (archive log automático). Si aún no lo está deberá cambiarla a este modo, puede ver un manual de cómo hacerlo pulsando aquí.

Iniciaremos RMAN desde una ventana de MS-DOS, para ello pulsaremos en "Inicio" -"Ejecutar" y escribiremos "cmd", pulsaremos INTRO, nos aparecerá la ventana de consola de MS-DOS, escribiremos

rman

Para conectarnos a la base de datos de la que queramos hacer copia de seguridad introduciremos el comando:

connect target nombre_usuario/contraseña@Nombre_Base_Datos;

El resultado del comando será:

conectado a la base de datos destino: XE (DBID=2475292301)

A continuación ejecutaremos el siguiente script, tal y como os explicamos:

Introducimos la siguiente línea y pulsamos INTRO:

run {

Introduciremos la siguiente línea y pulsaremos INTRO:

allocate channel C1 device type DISK format 'c:/temp/csbd_%d_%u_%t.bak';

donde

  • "C:/temp" será la carpeta de destino de la copia (debe existir previamente).
  • %d: le indicamos con este parámetro que nos incluya en el nombre del fichero el nombre de la base de datos.
  • %u: le indicamos que incluya el identificador de la base de datos.
  • %t: le indicamos que incluya la fecha y hora de creación del fichero.

Introduciremos la siguiente línea y pulsaremos INTRO:

backup database include current controlfile plus archivelog delete all input;

Introduciremos la siguiente línea y pulsaremos INTRO, tras hacerlo se iniciará la copia de seguridad:

}

El script completo quedará de la siguiente forma:

run {
2> allocate channel C1 device type DISK format 'c:/temp/csbd_%d_%u_%t.bak';
3> backup database include current controlfile plus archivelog delete all input;

4> }

El resultado del comando en Oracle 9.2:

using target database controlfile instead of recovery catalog
allocated channel: C1
channel C1: sid=17 devtype=DISK

Starting backup at 14-JUL-06
current log archived
channel C1: starting archive log backupset
channel C1: specifying archive log(s) in backup set
input archive log thread=1 sequence=395 recid=1 stamp=595773970
channel C1: starting piece 1 at 14-JUL-06
channel C1: finished piece 1 at 14-JUL-06
piece handle=C:/TEMP/CSBD_BDLOCAL_03HO5IGJ_595773971.BAK comment=NONE
channel C1: backup set complete, elapsed time: 00:00:02
channel C1: deleting archive log(s)
archive log filename=C:/ORACLE/ORA92/RDBMS/ARC00395.001 recid=1 stamp=595773970
Finished backup at 14-JUL-06

Starting backup at 14-JUL-06
channel C1: starting full datafile backupset
channel C1: specifying datafile(s) in backupset
including current SPFILE in backupset
including current controlfile in backupset
input datafile fno=00001 name=F:/BDORACLE/BDLOCAL/SYSTEM01.DBF
input datafile fno=00002 name=F:/BDORACLE/BDLOCAL/UNDOTBS01.DBF
input datafile fno=00005 name=F:/BDORACLE/BDLOCAL/EXAMPLE01.DBF
input datafile fno=00010 name=F:/BDORACLE/BDLOCAL/XDB01.DBF
input datafile fno=00006 name=F:/BDORACLE/BDLOCAL/INDX01.DBF
input datafile fno=00009 name=F:/BDORACLE/BDLOCAL/USERS01.DBF
input datafile fno=00003 name=F:/BDORACLE/BDLOCAL/CWMLITE01.DBF
input datafile fno=00004 name=F:/BDORACLE/BDLOCAL/DRSYS01.DBF
input datafile fno=00007 name=F:/BDORACLE/BDLOCAL/ODM01.DBF
input datafile fno=00008 name=F:/BDORACLE/BDLOCAL/TOOLS01.DBF
channel C1: starting piece 1 at 14-JUL-06
channel C1: finished piece 1 at 14-JUL-06
piece handle=C:/TEMP/CSBD_BDLOCAL_04HO5IGM_595773974.BAK comment=NONE
channel C1: backup set complete, elapsed time: 00:07:26
Finished backup at 14-JUL-06

Starting backup at 14-JUL-06
current log archived
channel C1: starting archive log backupset
channel C1: specifying archive log(s) in backup set
input archive log thread=1 sequence=396 recid=2 stamp=595774421
channel C1: starting piece 1 at 14-JUL-06
channel C1: finished piece 1 at 14-JUL-06
piece handle=C:/TEMP/CSBD_BDLOCAL_05HO5IUL_595774421.BAK comment=NONE
channel C1: backup set complete, elapsed time: 00:00:02
channel C1: deleting archive log(s)
archive log filename=C:/ORACLE/ORA92/RDBMS/ARC00396.001 recid=2 stamp=595774421
Finished backup at 14-JUL-06
released channel: C1

El resultado del comando en Oracle XE:

se utiliza el archivo de control de la base de datos destino en lugar del catálogo de recuperación
canal asignado: C1
canal C1: sid=22 devtype=DISK
Iniciando backup en 23/07/06
log actual archivado
canal C1: iniciando juego de copias de seguridad de archive log
canal C1: especificando archive log(s) en el juego de copias de seguridad
thread de archive log de entrada=1 secuencia=22 recid=1 marca=596579800
canal C1: iniciando parte 1 en 23/07/06
canal C1: parte terminada 1 en 23/07/06
manejador de parte=C:/TEMP/CSBD_XE_01HOU5EV_596579807.BAK etiqueta=TAG20060723T2
03641 comentario=NONE
canal C1: juego de copias de seguridad terminado, tiempo transcurrido: 00:00:08
canal C1: suprimiendo archive log(s)
archive log nombre=C:/ORACLEXE/APP/ORACLE/FLASH_RECOVERY_AREA/XE/ARCHIVELOG2006
_07_23O1_MF_1_22_2D7JFNX9_.ARC recid=1 marca=596579800
backup terminado en 23/07/06

Iniciando backup en 23/07/06
canal C1: iniciando juego de copias de seguridad de archivo de datos completo
canal C1: especificando archivo(s) de datos en el juego de copias de seguridad
archivo de datos de entrada fno=00001 nombre=C:/ORACLEXE/ORADATA/XE/SYSTEM.DBF
archivo de datos de entrada fno=00003 nombre=C:/ORACLEXE/ORADATA/XE/SYSAUX.DBF
archivo de datos de entrada fno=00002 nombre=C:/ORACLEXE/ORADATA/XE/UNDO.DBF
archivo de datos de entrada fno=00004 nombre=C:/ORACLEXE/ORADATA/XE/USERS.DBF
canal C1: iniciando parte 1 en 23/07/06
canal C1: parte terminada 1 en 23/07/06
manejador de parte=C:TEMPCSBD_XE_02HOU5FA_596579818.BAK etiqueta=TAG20060723T2
03657 comentario=NONE
canal C1: juego de copias de seguridad terminado, tiempo transcurrido: 00:00:55
canal C1: iniciando juego de copias de seguridad de archivo de datos completo
canal C1: especificando archivo(s) de datos en el juego de copias de seguridad
incluyendo el archivo de control actual en el juego de copias de seguridad
incluyendo SPFILE actual en el juego de copias de seguridad
canal C1: iniciando parte 1 en 23/07/06
canal C1: parte terminada 1 en 23/07/06
manejador de parte=C:/TEMP/CSBD_XE_03HOU5H1_596579873.BAK etiqueta=TAG20060723T2
03657 comentario=NONE
canal C1: juego de copias de seguridad terminado, tiempo transcurrido: 00:00:03
backup terminado en 23/07/06
Iniciando backup en 23/07/06
log actual archivado
canal C1: iniciando juego de copias de seguridad de archive log
canal C1: especificando archive log(s) en el juego de copias de seguridad
thread de archive log de entrada=1 secuencia=23 recid=2 marca=596579877
canal C1: iniciando parte 1 en 23/07/06
canal C1: parte terminada 1 en 23/07/06
manejador de parte=C:/TEMP/CSBD_XE_04HOU5H6_596579878.BAK etiqueta=TAG20060723T2
03758 comentario=NONE
canal C1: juego de copias de seguridad terminado, tiempo transcurrido: 00:00:02
canal C1: suprimiendo archive log(s)
archive log nombre=C:/ORACLEXE/APP/ORACLEFLASH_RECOVERY_AREAXEARCHIVELOG2006
_07_23O1_MF_1_23_2D7JJ5H4_.ARC recid=2 marca=596579877
backup terminado en 23/07/06
canal liberado: C1

Podremos comprobar que habrá creado los ficheros correspondientes a la copia de seguridad en la carpeta especificada:

El contenido completo de la ventana de MS-DOS para Oracle XE:


C:>rman

Recovery Manager : Release 10.2.0.1.0 - Production on Dom Jul 23 20:21:50 2006

Copyright (c) 1982, 2005, Oracle. All rights reserved.

RMAN> connect target /@XE;

conectado a la base de datos destino: XE (DBID=2475292301)

RMAN> run {
2> allocate channel C1 device type DISK format 'c:tempcsbd_%d_%u_%t.bak';
3> backup database include current controlfile plus archivelog delete all input;

4> }

se utiliza el archivo de control de la base de datos destino en lugar del catßlo
go de recuperaci¾n
canal asignado: C1
canal C1: sid=22 devtype=DISK

Iniciando backup en 23/07/06
log actual archivado
canal C1: iniciando juego de copias de seguridad de archive log
canal C1: especificando archive log(s) en el juego de copias de seguridad
thread de archive log de entrada=1 secuencia=22 recid=1 marca=596579800
canal C1: iniciando parte 1 en 23/07/06
canal C1: parte terminada 1 en 23/07/06
manejador de parte=C:/TEMP/CSBD_XE_01HOU5EV_596579807.BAK etiqueta=TAG20060723T2
03641 comentario=NONE
canal C1: juego de copias de seguridad terminado, tiempo transcurrido: 00:00:08
canal C1: suprimiendo archive log(s)
archive log nombre=C:/ORACLEXE/APP/ORACLEFLASH_RECOVERY_AREAXEARCHIVELOG2006
_07_23O1_MF_1_22_2D7JFNX9_.ARC recid=1 marca=596579800
backup terminado en 23/07/06

Iniciando backup en 23/07/06
canal C1: iniciando juego de copias de seguridad de archivo de datos completo
canal C1: especificando archivo(s) de datos en el juego de copias de seguridad
archivo de datos de entrada fno=00001 nombre=C:/ORACLEXE/ORADATA/XESYSTEM.DBF
archivo de datos de entrada fno=00003 nombre=C:/ORACLEXE/ORADATA/XESYSAUX.DBF
archivo de datos de entrada fno=00002 nombre=C:/ORACLEXE/ORADATA/XEUNDO.DBF
archivo de datos de entrada fno=00004 nombre=C:/ORACLEXE/ORADATA/XEUSERS.DBF
canal C1: iniciando parte 1 en 23/07/06
canal C1: parte terminada 1 en 23/07/06
manejador de parte=C:/TEMP/CSBD_XE_02HOU5FA_596579818.BAK etiqueta=TAG20060723T2
03657 comentario=NONE
canal C1: juego de copias de seguridad terminado, tiempo transcurrido: 00:00:55
canal C1: iniciando juego de copias de seguridad de archivo de datos completo
canal C1: especificando archivo(s) de datos en el juego de copias de seguridad
incluyendo el archivo de control actual en el juego de copias de seguridad
incluyendo SPFILE actual en el juego de copias de seguridad
canal C1: iniciando parte 1 en 23/07/06
canal C1: parte terminada 1 en 23/07/06
manejador de parte=C:/TEMP/CSBD_XE_03HOU5H1_596579873.BAK etiqueta=TAG20060723T2
03657 comentario=NONE
canal C1: juego de copias de seguridad terminado, tiempo transcurrido: 00:00:03
backup terminado en 23/07/06

Iniciando backup en 23/07/06
log actual archivado
canal C1: iniciando juego de copias de seguridad de archive log
canal C1: especificando archive log(s) en el juego de copias de seguridad
thread de archive log de entrada=1 secuencia=23 recid=2 marca=596579877
canal C1: iniciando parte 1 en 23/07/06
canal C1: parte terminada 1 en 23/07/06
manejador de parte=C:/TEMP/CSBD_XE_04HOU5H6_596579878.BAK etiqueta=TAG20060723T2
03758 comentario=NONE
canal C1: juego de copias de seguridad terminado, tiempo transcurrido: 00:00:02
canal C1: suprimiendo archive log(s)
archive log nombre=C:/ORACLEXE/APP/ORACLEFLASH_RECOVERY_AREAXEARCHIVELOG2006
_07_23O1_MF_1_23_2D7JJ5H4_.ARC recid=2 marca=596579877
backup terminado en 23/07/06
canal liberado: C1

RMAN>

Si se produce el siguiente error al intentar hacer la copia de seguridad:

RMAN-03002: failure of backup command at 07/14/2006 12:11:43 ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

using target database controlfile instead of recovery catalog
allocated channel: C1
channel C1: sid=10 devtype=DISK
Starting backup at 14-JUL-06
error occurred in source file: krmk.pc, line: 7519
text of failing SQL statement: alter system archive log current
ORACLE error from target database:
ORA-00258: manual archiving in NOARCHIVELOG mode must identify log

specification does not match any archive log in the recovery catalog
Finished backup at 14-JUL-06

Starting backup at 14-JUL-06
channel C1: starting full datafile backupset
channel C1: specifying datafile(s) in backupset
including current SPFILE in backupset
including current controlfile in backupset
released channel: C1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ==================
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 07/14/2006 12:11:43
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

nos está indicando que la base de datos no está en modo ARCHIVELOG, para ponerla en este modo podéis utilizar las instrucciones de este manual.

Otros comandos interesantes de rman:

  • report obsolete: muestra un listado con los juegos de copias marcadas como obsoletas, como caducadas, como no válidas.
  • delete obsolete: elimina todos los juegos de copias de seguridad marcadas como obsoletas. El número de juegos de copias dependerá del parámetro retention policy.
  • show all: muestra todos los parámetros de configuración de retención actual.

Para realizar este manual hemos utilizado:
* Oracle Enterprise 9.2.
* Oracle Database 10g Express Edition (XE).
* Windows XP.



Nota: Revisado por AjpdSoft el 13-12-2006.
Anuncios


Enviado el Domingo, 23 julio a las 14:56:03 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A