ADMINISTRACIÓN DE ORACLE 11G
Backups de la base de datos
1
Carmen Soler Chorro - http://www.linkedin.com/in/casoch
INTRODUCCIÓN
 Hay 3 Maneras de hacer un Backup:
 Backup Offline u Online.
 Que sea entero o parcial
 De toda la base de datos o de una parte
 Completo o incremental
 De todos los datos o sólo de los que cambiaron desde el
último backup.
 Cuando hacemos un backup podemos escoger
entre estas tres opciones, dependiendo del
modo de funcionamiento de la base de datos.
2Carmen Soler Chorro - http://www.linkedin.com/in/casoch
INTRODUCCIÓN
 Si estamos trabajando en modo
noarchivelog, podemos escoger entre:
 Offline – entero – completo
 Offline – entero – incremental
 Si nuestra base de datos no funciona en modo
noarchivelog no podemos hacer backups online ni
parciales.
 Para poder hacer un backup offline, tenemos que
haber cerrado la base de datos de forma consistente:
shutdown normal, immediate o transactional.
 Los backups pueden hacerse desde la herramienta
RMAN (Recovery Manager)
3Carmen Soler Chorro - http://www.linkedin.com/in/casoch
BACKUPS OFFLINE GESTIONADOS POR EL
USUARIO
 Podemos hacer backups desde línea de
comandos siguiendo estos pasos:
 Copiar los ficheros de control
 Copiar los datafiles
 Copiar los online redo log files
 Aunque no se considera parte de la base de
datos, también es conveniente tener una copia
del fichero de parámetros.
4Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 1
Generar un .bat que haga un backup.
5Carmen Soler Chorro - http://www.linkedin.com/in/casoch
BACKUPS OFFLINE GESTIONADOS POR EL
SERVIDOR
 Se hacen utilizando la herramienta RMAN.
 Sólo pueden hacerse si la base de datos está en mount.
 Porque RMAN necesita leer el archivo controlfile para localizar
los datafiles.
 Ejemplo de backup offline entero y completo desde
RMAN:
6Carmen Soler Chorro - http://www.linkedin.com/in/casoch
BACKUPS OFFLINE GESTIONADOS POR EL
SERVIDOR
 Las 2 primeras líneas, nos llevan a estado
mount.
 Luego indicamos que el backup se hará en
disco(podría ser SBT_TAPE para cinta).
 La siguiente instrucción es la de backup:
BACKUPSET es una estructura propietaria de
RMAN.
 Esta estructura combina todos los ficheros en uno
sólo y además podría comprimir el espacio que
ocupan los datos(no en este ejemplo).
 La palabra database indica que el backup ha de
ser de toda la base de datos.
 Con format indicamos el fichero al que irá a
parar el backup.
 Finalmente abrimos la base de datos.
7Carmen Soler Chorro - http://www.linkedin.com/in/casoch
BACKUPS OFFLINE GESTIONADOS POR EL
SERVIDOR
 Con el script anterior, podemos generar un fichero
que se llame offline_full_whole.rman y lanzarlo desde
línea de comandos de la siguiente forma:
 RMAN TARGET SYS/Pa$$w0rd
@OFFLINE_FULL_WHOLE.RMAN
 Desde RMAN pueden hacerse 3 tipos de backups:
 BACKUP SET: Formato propietario formado por un
conjunto de ficheros que no incluye los bloques vacíos.
 COMPRESSED BACKUP: Parecido al anterior, pero
además aplica un algoritmo de compresión.
 IMAGE COPY: crea una imagen idéntica a los ficheros
que tiene que copiar. Se pueden sustituir los originales
sin problemas des de la copia.
8Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 2
Backups offline gestionados por usuario y servidor.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 9
BACKUPS ONLINE GESTIONADOS POR EL
USUARIO
 Pasos a seguir:
 Backup del controlfile  Se puede hacer con:
 ALTER DATABASE BACKUP CONTROLFILE TO „fichero‟
 Crea una copia binaria del controlfile
 ALTER DATABASE BACKUP CONTROLFILE TO TRACE
AS „fichero‟;
 Crea un script que sirve para regenerar el controlfile en un
fichero de texto.
 Este script se puede ejecutar cuando la base de datos está en
nomount.
 Copiar los ficheros de datos
 Archivar los online redo log files
10Carmen Soler Chorro - http://www.linkedin.com/in/casoch
BACKUPS ONLINE GESTIONADOS POR EL
USUARIO
 Pasos a seguir:
 Backup del controlfile
 Copiar los ficheros de datos
 Antes de hacer la copia, debemos poner los tablespaces
de esos datafiles en modo backup:
 ALTER TABLESPACE nombre_tablespace BEGIN BACKUP;
 Pasar a modo backup fuerza que todo lo que está en memoria
se copia a disco (fuerza un checkpoint)
 Guardar los archived redo log files
 También deberíamos hacerles un backup, para tener todos
los cambios que se han ido haciendo en la base de datos.
11Carmen Soler Chorro - http://www.linkedin.com/in/casoch
BACKUPS ONLINE GESTIONADOS POR EL
SERVIDOR
 Puede hacerse con este comando desde
RMAN:
 BACKUP DATABASE;
 También podemos ajustarlo un poco más como
en este script ejecutado también desde RMAN:
12Carmen Soler Chorro - http://www.linkedin.com/in/casoch
BACKUPS ONLINE GESTIONADOS POR EL
SERVIDOR
 Explicación del script:
 Damos de alta 2 unidades de cinta en las que poner los
backups.
 Al utilizar dos canales, tenemos la posibilidad de paralelizar las
operaciones de backup.
 El primer comando de backup, hace un backup de toda
la base de datos:
 Divide la base de datos en 4 partes y hace el backup set en 4
ficheros diferentes.
 Esto también permitirá recuperar el backup más rápido después.
 El segundo comando de backup, hace un backup de los
archive log files, eliminándolos también de disco.
 Cuando hacemos el backup desde RMAN, no es
necesario poner los tablespaces en modo BACKUP.
13Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 3
Backups online gestionados por usuario y servidor.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 14
BACKUPS INCREMENTALES
 Sólo pueden hacerse con backups de servidor.
 Se debe a que el sistema operativo no puede “fisgonear” dentro de
los datafiles para extraer cada parte.
 El sistema operativo no sabe interpretar los datafiles, sólo Oracle.
 Parten de una versión 0 que contiene todos los datos (incremental
level 0 backup) y, a partir de aquí, se van haciendo los
incrementales, añadiendo sólo los bloques que han sufrido
cambios.
 Desde RMAN podemos hacer un backup de nivel 0 con:
 BACKUP AS BACKUP SET INCREMENTAL LEVEL 0 DATABASE;
 Esto se podría hacer, por ejemplo, una vez a la semana.
 Para hacer un incremental de nivel 1:
 BACKUP AS BACKUP SET INCREMENTAL LEVEL 1 DATABASE;
 Esto se puede ejecutar diariamente para tener los bloques que han
cambiado, desde el primer 0 o desde el último nivel 1.
 Hay otros niveles además del 1, pero hacen lo mismo. Se mantienen por
compatibilidad.
15Carmen Soler Chorro - http://www.linkedin.com/in/casoch
BACKUPS INCREMENTALES
16Carmen Soler Chorro - http://www.linkedin.com/in/casoch
BACKUPS INCREMENTALES
 Esta otra instrucción extrae los bloques que han cambiado desde
el último nivel 0, independientemente de si hubo un nivel 1 o no:
 BACKUP AS BACKUPSET CUMULATIVE DATABASE;
17Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 4
Hacer backups incrementales.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 18
AUTOMATIZAR BACKUPS
 No se gestionan desde el sistema
operativo, sino desde la herramienta Enterprise
Manager.
 Puede llevar a cabo cualquier tipo de backup:
 Online, offline
 Entero, parcial
 Completo, incremental.
 Siempre debe ser gestionado por el
servidor, utilizando RMAN.
19Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 5
Automatizar un backup
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 20
RMAN REPOSITORY
 RMAN tiene un repositorio en el que se
guardan los detalles de todas las
operaciones de backup que se han llevado a
cabo.
 Por ejemplo, desde este repositorio se puede
saber las fechas en las que se hicieron backup y
recuperar el que nos interese.
21Carmen Soler Chorro - http://www.linkedin.com/in/casoch
INFORMES SOBRE BACKUPS
 Podemos:
 Ver los backups que existen.
 Ver cuáles de ellos son necesarios para tener una versión actualizada
de la base de datos y cuáles han quedado obsoletos.
 Para ver todos los backups guardados en el repositorio:
 LIST BACKUP OF DATABASE;
 Listar todos los backups hechos de los archived redo log files:
 LIST BACKUP OF ARCHIVELOG ALL;
 Backups necesarios para hacer un backup de la última versión:
 REPORT NEED BACKUP;
 Backups que ya no son necesarios:
 REPORT OBSOLETE;
 Esta misma información también puede consultarse desde el
Database Control Tool.
22Carmen Soler Chorro - http://www.linkedin.com/in/casoch
GESTIONAR BACKUPS
 Generalmente, los backups se guardan en cintas, que
tienen una política de retención.
 Se eliminan los ficheros que ya tienen un cierto tiempo.
 RMAN debe estar al corriente de lo que va haciendo el
DBA, ya que sino borra él las copias más antiguas, el
RMAN lo hará automáticamente.
 Para que RMAN pueda contrastar la información que él
tiene con la que hay en realidad, tenemos 4 comandos:
 CROSSCHECK
 DELETE EXPIRED
 DELETE OBSOLETE
 CATALOG
23Carmen Soler Chorro - http://www.linkedin.com/in/casoch
GESTIONAR BACKUPS
 CROSSCHECK
 Hace que RMAN compare su repositorio con lo que hay en realidad.
 Comprueba que todos los backups que él ha hecho existan.
 Lo que no encuentra, lo marca como EXPIRED.
 DELETE EXPIRED
 Elimina del repositorio todos los backups marcados como EXPIRED.
 DELETE OBSOLETE
 Fuerza que se aplique la política de retención y se eliminan los
backups que ya no se consideran necesarios.
 CATALOG
 Permite informar a RMAN de backups que haya hecho el DBA
manualmente para que los incluya en su repository.
 También podemos informar de si hay backups en otros directorios.
 Estas operaciones también pueden hacerse desde el Database
Control Tool.
24Carmen Soler Chorro - http://www.linkedin.com/in/casoch
MONITORIZAR LA FLASH RECOVERY AREA
 La Flash Recovery Area es donde se almacenan los
datos de recuperación.
 Es importante monitorizar cuánto espacio nos queda
disponible en esta zona.
 Con el parámetro DB_RECOVERY_FILE_DEST
sabemos el directorio donde está.
 También podemos extraerlo de la vista
v$recovery_file_dest.
 Con DB_RECOVERY_FILE_DEST_SIZE, sabemos
el espacio que tenemos disponible.
 También podemos extraerlo de la vista
v$flash_recovery_area_usage.
25Carmen Soler Chorro - http://www.linkedin.com/in/casoch
TALLER 6
Gestionar los backups de RMAN.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 26

Backups en Oracle

  • 1.
    ADMINISTRACIÓN DE ORACLE11G Backups de la base de datos 1 Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 2.
    INTRODUCCIÓN  Hay 3Maneras de hacer un Backup:  Backup Offline u Online.  Que sea entero o parcial  De toda la base de datos o de una parte  Completo o incremental  De todos los datos o sólo de los que cambiaron desde el último backup.  Cuando hacemos un backup podemos escoger entre estas tres opciones, dependiendo del modo de funcionamiento de la base de datos. 2Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 3.
    INTRODUCCIÓN  Si estamostrabajando en modo noarchivelog, podemos escoger entre:  Offline – entero – completo  Offline – entero – incremental  Si nuestra base de datos no funciona en modo noarchivelog no podemos hacer backups online ni parciales.  Para poder hacer un backup offline, tenemos que haber cerrado la base de datos de forma consistente: shutdown normal, immediate o transactional.  Los backups pueden hacerse desde la herramienta RMAN (Recovery Manager) 3Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 4.
    BACKUPS OFFLINE GESTIONADOSPOR EL USUARIO  Podemos hacer backups desde línea de comandos siguiendo estos pasos:  Copiar los ficheros de control  Copiar los datafiles  Copiar los online redo log files  Aunque no se considera parte de la base de datos, también es conveniente tener una copia del fichero de parámetros. 4Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 5.
    TALLER 1 Generar un.bat que haga un backup. 5Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 6.
    BACKUPS OFFLINE GESTIONADOSPOR EL SERVIDOR  Se hacen utilizando la herramienta RMAN.  Sólo pueden hacerse si la base de datos está en mount.  Porque RMAN necesita leer el archivo controlfile para localizar los datafiles.  Ejemplo de backup offline entero y completo desde RMAN: 6Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 7.
    BACKUPS OFFLINE GESTIONADOSPOR EL SERVIDOR  Las 2 primeras líneas, nos llevan a estado mount.  Luego indicamos que el backup se hará en disco(podría ser SBT_TAPE para cinta).  La siguiente instrucción es la de backup: BACKUPSET es una estructura propietaria de RMAN.  Esta estructura combina todos los ficheros en uno sólo y además podría comprimir el espacio que ocupan los datos(no en este ejemplo).  La palabra database indica que el backup ha de ser de toda la base de datos.  Con format indicamos el fichero al que irá a parar el backup.  Finalmente abrimos la base de datos. 7Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 8.
    BACKUPS OFFLINE GESTIONADOSPOR EL SERVIDOR  Con el script anterior, podemos generar un fichero que se llame offline_full_whole.rman y lanzarlo desde línea de comandos de la siguiente forma:  RMAN TARGET SYS/Pa$$w0rd @OFFLINE_FULL_WHOLE.RMAN  Desde RMAN pueden hacerse 3 tipos de backups:  BACKUP SET: Formato propietario formado por un conjunto de ficheros que no incluye los bloques vacíos.  COMPRESSED BACKUP: Parecido al anterior, pero además aplica un algoritmo de compresión.  IMAGE COPY: crea una imagen idéntica a los ficheros que tiene que copiar. Se pueden sustituir los originales sin problemas des de la copia. 8Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 9.
    TALLER 2 Backups offlinegestionados por usuario y servidor. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 9
  • 10.
    BACKUPS ONLINE GESTIONADOSPOR EL USUARIO  Pasos a seguir:  Backup del controlfile  Se puede hacer con:  ALTER DATABASE BACKUP CONTROLFILE TO „fichero‟  Crea una copia binaria del controlfile  ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS „fichero‟;  Crea un script que sirve para regenerar el controlfile en un fichero de texto.  Este script se puede ejecutar cuando la base de datos está en nomount.  Copiar los ficheros de datos  Archivar los online redo log files 10Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 11.
    BACKUPS ONLINE GESTIONADOSPOR EL USUARIO  Pasos a seguir:  Backup del controlfile  Copiar los ficheros de datos  Antes de hacer la copia, debemos poner los tablespaces de esos datafiles en modo backup:  ALTER TABLESPACE nombre_tablespace BEGIN BACKUP;  Pasar a modo backup fuerza que todo lo que está en memoria se copia a disco (fuerza un checkpoint)  Guardar los archived redo log files  También deberíamos hacerles un backup, para tener todos los cambios que se han ido haciendo en la base de datos. 11Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 12.
    BACKUPS ONLINE GESTIONADOSPOR EL SERVIDOR  Puede hacerse con este comando desde RMAN:  BACKUP DATABASE;  También podemos ajustarlo un poco más como en este script ejecutado también desde RMAN: 12Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 13.
    BACKUPS ONLINE GESTIONADOSPOR EL SERVIDOR  Explicación del script:  Damos de alta 2 unidades de cinta en las que poner los backups.  Al utilizar dos canales, tenemos la posibilidad de paralelizar las operaciones de backup.  El primer comando de backup, hace un backup de toda la base de datos:  Divide la base de datos en 4 partes y hace el backup set en 4 ficheros diferentes.  Esto también permitirá recuperar el backup más rápido después.  El segundo comando de backup, hace un backup de los archive log files, eliminándolos también de disco.  Cuando hacemos el backup desde RMAN, no es necesario poner los tablespaces en modo BACKUP. 13Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 14.
    TALLER 3 Backups onlinegestionados por usuario y servidor. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 14
  • 15.
    BACKUPS INCREMENTALES  Sólopueden hacerse con backups de servidor.  Se debe a que el sistema operativo no puede “fisgonear” dentro de los datafiles para extraer cada parte.  El sistema operativo no sabe interpretar los datafiles, sólo Oracle.  Parten de una versión 0 que contiene todos los datos (incremental level 0 backup) y, a partir de aquí, se van haciendo los incrementales, añadiendo sólo los bloques que han sufrido cambios.  Desde RMAN podemos hacer un backup de nivel 0 con:  BACKUP AS BACKUP SET INCREMENTAL LEVEL 0 DATABASE;  Esto se podría hacer, por ejemplo, una vez a la semana.  Para hacer un incremental de nivel 1:  BACKUP AS BACKUP SET INCREMENTAL LEVEL 1 DATABASE;  Esto se puede ejecutar diariamente para tener los bloques que han cambiado, desde el primer 0 o desde el último nivel 1.  Hay otros niveles además del 1, pero hacen lo mismo. Se mantienen por compatibilidad. 15Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 16.
    BACKUPS INCREMENTALES 16Carmen SolerChorro - http://www.linkedin.com/in/casoch
  • 17.
    BACKUPS INCREMENTALES  Estaotra instrucción extrae los bloques que han cambiado desde el último nivel 0, independientemente de si hubo un nivel 1 o no:  BACKUP AS BACKUPSET CUMULATIVE DATABASE; 17Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 18.
    TALLER 4 Hacer backupsincrementales. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 18
  • 19.
    AUTOMATIZAR BACKUPS  Nose gestionan desde el sistema operativo, sino desde la herramienta Enterprise Manager.  Puede llevar a cabo cualquier tipo de backup:  Online, offline  Entero, parcial  Completo, incremental.  Siempre debe ser gestionado por el servidor, utilizando RMAN. 19Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 20.
    TALLER 5 Automatizar unbackup Carmen Soler Chorro - http://www.linkedin.com/in/casoch 20
  • 21.
    RMAN REPOSITORY  RMANtiene un repositorio en el que se guardan los detalles de todas las operaciones de backup que se han llevado a cabo.  Por ejemplo, desde este repositorio se puede saber las fechas en las que se hicieron backup y recuperar el que nos interese. 21Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 22.
    INFORMES SOBRE BACKUPS Podemos:  Ver los backups que existen.  Ver cuáles de ellos son necesarios para tener una versión actualizada de la base de datos y cuáles han quedado obsoletos.  Para ver todos los backups guardados en el repositorio:  LIST BACKUP OF DATABASE;  Listar todos los backups hechos de los archived redo log files:  LIST BACKUP OF ARCHIVELOG ALL;  Backups necesarios para hacer un backup de la última versión:  REPORT NEED BACKUP;  Backups que ya no son necesarios:  REPORT OBSOLETE;  Esta misma información también puede consultarse desde el Database Control Tool. 22Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 23.
    GESTIONAR BACKUPS  Generalmente,los backups se guardan en cintas, que tienen una política de retención.  Se eliminan los ficheros que ya tienen un cierto tiempo.  RMAN debe estar al corriente de lo que va haciendo el DBA, ya que sino borra él las copias más antiguas, el RMAN lo hará automáticamente.  Para que RMAN pueda contrastar la información que él tiene con la que hay en realidad, tenemos 4 comandos:  CROSSCHECK  DELETE EXPIRED  DELETE OBSOLETE  CATALOG 23Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 24.
    GESTIONAR BACKUPS  CROSSCHECK Hace que RMAN compare su repositorio con lo que hay en realidad.  Comprueba que todos los backups que él ha hecho existan.  Lo que no encuentra, lo marca como EXPIRED.  DELETE EXPIRED  Elimina del repositorio todos los backups marcados como EXPIRED.  DELETE OBSOLETE  Fuerza que se aplique la política de retención y se eliminan los backups que ya no se consideran necesarios.  CATALOG  Permite informar a RMAN de backups que haya hecho el DBA manualmente para que los incluya en su repository.  También podemos informar de si hay backups en otros directorios.  Estas operaciones también pueden hacerse desde el Database Control Tool. 24Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 25.
    MONITORIZAR LA FLASHRECOVERY AREA  La Flash Recovery Area es donde se almacenan los datos de recuperación.  Es importante monitorizar cuánto espacio nos queda disponible en esta zona.  Con el parámetro DB_RECOVERY_FILE_DEST sabemos el directorio donde está.  También podemos extraerlo de la vista v$recovery_file_dest.  Con DB_RECOVERY_FILE_DEST_SIZE, sabemos el espacio que tenemos disponible.  También podemos extraerlo de la vista v$flash_recovery_area_usage. 25Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  • 26.
    TALLER 6 Gestionar losbackups de RMAN. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 26