copias de seguridad en oracle 11g.pdf

30
Copias de seguridad en Oracle 11g, copia export, copia física RMAN Explicamos cómo hacer copias de seguridad de los datos de Oracle Database 11g . Mostramos los diferentes tipos de copia de seguridad y cómo hacerlos: copia física en línea (en caliente con RMAN ) sin detener la base de datos, copia física fuera de línea (en frío, deteniendo la base de datos), copia lógica en línea (export con expdp). Explicamos las copias en el sistema operativo Windows Server 2008 R2 . Copia de seguridad lógica en línea con expdp export en Oracle 11g . o Requisitos para funcionamiento del comando expdp de Oracle 11g . Oracle Database 11g Enterprise o Client . Usuario y contraseña de Oracle y del sistema operativo con permisos suficientes . Variable de entorno PATH apuntando a carpeta bin de Oracle . Objeto de tipo directory creado en Oracle . El archivo de volcado de exportación anterior no debe existir . o Parámetros para comando expdp export de Oracle 11g . o Ejemplos de copia de seguridad lógica en línea con expdp export en Oracle 11g . o Tarea programada para copia lógica de Oracle en Windows Server 2008 . Copia de seguridad física fuera de línea en Oracle 11g . o Backup físico offline en Oracle 11g . o Cómo hacer copia de seguridad física fuera de línea de forma manual . o Automatizar mediante scripts la copia de seguridad física fuera de línea en Oracle 11g . Copia de seguridad física en línea con RMAN en Oracle 11g con ARCHIVELOG activado . Copia de seguridad con RMAN offline si la base de datos no está en modo ARCHIVELOG . Artículos relacionados . Créditos . Copia de seguridad lógica en línea con expdp export en Oracle 11g Oracle Database 11g permite hacer copia de seguridad lógica de los datos que componen la base de datos: tablas, vistas, procedimientos almacenados, secuencias, funciones, disparadores, paquetes, sinónimos, usuarios, etc. Dicha copia se realiza con el comando expdp y se realizará en línea (sin detener la base de datos). Durante el proceso de export puede que caiga un poco el rendimiento pero seguirá funcionando la base de datos normalmente. La utilidad expdp (Export) de Oracle consulta la base de datos, incluyendo el diccionario de datos, y escribe el resultado en un archivo binario llamado archivo de volcado de exportación. Puede exportar la base de datos completa, usuarios determinados o tablas específicas (entre otras opciones de exportación). Una vez exportados los datos, podrían importarse con el comando impdp (Import) en otra base de datos o en la misma si queremos "sobreescribirla". Requisitos para funcionamiento del comando expdp de Oracle 11g Oracle Database 11g Enterprise o Client Obviamente, el primer requisito es disponer de Oracle Database 11g (bien en su versión Enterprise o bien Oracle Database 11g Client. En loa siguientes artículos explicamos cómo instalar Oracle Database 11g en un equipos con sistemas operativos Microsoft Windows : Instalar Oracle 11g x64 en Windows Server 2008 R2 Enterprise x64 .

Upload: victor-de-luis-mendoza

Post on 16-Dec-2015

140 views

Category:

Documents


8 download

DESCRIPTION

manual

TRANSCRIPT

  • Copias de seguridad en Oracle 11g, copia export, copia fsica RMAN

    Explicamos cmo hacer copias de seguridad de los datos de Oracle Database 11g. Mostramos los diferentes tipos de copia de seguridad y cmo hacerlos: copia fsica en lnea (en caliente con RMAN) sin detener la base de datos, copia fsica fuera de lnea (en fro, deteniendo la base de datos), copia lgica en lnea (export con expdp). Explicamos las copias en el sistema operativo Windows Server 2008 R2.

    Copia de seguridad lgica en lnea con expdp export en Oracle 11g. o Requisitos para funcionamiento del comando expdp de Oracle 11g.

    Oracle Database 11g Enterprise o Client. Usuario y contrasea de Oracle y del sistema operativo con permisos suficientes. Variable de entorno PATH apuntando a carpeta bin de Oracle. Objeto de tipo directory creado en Oracle. El archivo de volcado de exportacin anterior no debe existir.

    o Parmetros para comando expdp export de Oracle 11g. o Ejemplos de copia de seguridad lgica en lnea con expdp export en Oracle 11g. o Tarea programada para copia lgica de Oracle en Windows Server 2008.

    Copia de seguridad fsica fuera de lnea en Oracle 11g. o Backup fsico offline en Oracle 11g. o Cmo hacer copia de seguridad fsica fuera de lnea de forma manual. o Automatizar mediante scripts la copia de seguridad fsica fuera de lnea en Oracle 11g.

    Copia de seguridad fsica en lnea con RMAN en Oracle 11g con ARCHIVELOG activado. Copia de seguridad con RMAN offline si la base de datos no est en modo ARCHIVELOG. Artculos relacionados. Crditos.

    Copia de seguridad lgica en lnea con expdp export en Oracle 11g

    Oracle Database 11g permite hacer copia de seguridad lgica de los datos que componen la base de datos: tablas, vistas, procedimientos almacenados, secuencias, funciones, disparadores, paquetes, sinnimos, usuarios, etc. Dicha copia se realiza con el comando expdp y se realizar en lnea (sin detener la base de datos). Durante el proceso de export puede que caiga un poco el rendimiento pero seguir funcionando la base de datos normalmente. La utilidad expdp (Export) de Oracle consulta la base de datos, incluyendo el diccionario de datos, y escribe el resultado en un archivo binario llamado archivo de volcado de exportacin. Puede exportar la base de datos completa, usuarios determinados o tablas especficas (entre otras opciones de exportacin).

    Una vez exportados los datos, podran importarse con el comando impdp (Import) en otra base de datos o en la misma si queremos "sobreescribirla".

    Requisitos para funcionamiento del comando expdp de Oracle 11g

    Oracle Database 11g Enterprise o Client

    Obviamente, el primer requisito es disponer de Oracle Database 11g (bien en su versin Enterprise o bien Oracle Database 11g Client. En loa siguientes artculos explicamos cmo instalar Oracle Database 11g en un equipos con sistemas operativos Microsoft Windows:

    Instalar Oracle 11g x64 en Windows Server 2008 R2 Enterprise x64.

  • Instalar Oracle Database 11g R2 Enterprise 64bits en Windows Server 2003 64 bits. Instalar Oracle Database 11g Standard Edition en Windows XP Profesional. Instalar Oracle Database 11g Release 1 en Microsoft Windows 7.

    Usuario y contrasea de Oracle y del sistema operativo con

    permisos suficientes

    Otro de los requisitos es disponer de usuario y contrasea de Oracle con permisos suficientes para hacer copias de seguridad. Normalmente el usuario SYS y el usuario SYSTEM tienen estos permisos, aunque cualquier usuario con el Rol "DBA" podr hacer copias de seguridad.

    Tambin deberemos disponer de un usuario y contrasea del sistema operativo con permisos suficientes para leer y escribir en la carpeta destino del fichero de volcado (resultado del export). Obviamente, adems, deberemos disponer de espacio libre suficiente en el destino de la copia de seguridad. En Oracle 11g con expdp el fichero de volcado (fichero resultante de la copia de seguridad) se puede comprimir para ahorrar espacio.

    Variable de entorno PATH apuntando a carpeta bin de Oracle

    En la variable de entorno PATH del sistema operativo deber existir la ruta de instalacin de Oracle y la carpeta "bin" donde se encuentra el comando "expdp". Para comprobar esto podremos hacerlo de dos formas:

    1. Desde el botn "Inicio" - "Todos los programas" - "Accesorios" - "Ejecutar" (o pulsando las teclas Windows + R), introduciremos "cmd" y pulsaremos "Aceptar". En la ventana de MS-DOS que aparece escribimos el comando:

    set path

    Debera aparecer algo as:

    Path=C:/app/ajpdsoft/product/11.2.0/dbhome_1/bin;C:/Windows/system32;C:/Windows; C:/Windows/System32/Wbem;C:/Windows/System32/WindowsPowerShell/v1.0/ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

    2. Tambin es posible ver el valor de la variable de entorno PATH en Windows Server 2008 desde las propiedades del sistema, desde el botn "Inicio" - pulsando con el botn derecho del ratn sobre "Equipo" y seleccionando "Propiedades":

  • En la ventana de "Sistema" pulsaremos en "Configuracin avanzada del sistema":

    En la ventana de "Propiedades del sistema" seleccionaremos la pestaa "Opciones avanzadas" y pulsaremos en "Variables de entorno":

  • En la ventana de "Variables de entorno", en "Variables del sistema" buscaremos la variable "Path". En esta variable se especifica cada ruta (path) separada por punto y coma. Para consultar si est la ruta de la carpeta "bin" de Oracle pulsaremos en "Editar":

  • En "Valor de la variable" debe aparecer la ruta de instalacin de Oracle ms la carpeta "bin", algo as:

    C:/Oracle/product/11.2.0/dbhome_1/bin

    Esta variable de entorno es necesaria para que al programar y ejecutar un expdp desde una ventana de MS-DOS, al escribir el comando desde cualquier carpeta el sistema, lo encuentre en la carpeta "bin" de Oracle:

  • Si en la variable PATH no tenemos la carpeta "bin" de Oracle, para ejecutar el comando expdp tendremos que indicar la ruta donde se encuentra o acceder a esa carpeta y ejecutarlo.

    Objeto de tipo directory creado en Oracle

    Otro requisito indispensable para realizar un export (expdp) en Oracle Database 11g es disponer de un objeto de tipo Directory creado en la base de datos. Este Directory debe apuntar a la unidad y carpeta destino de la copia de seguridad.

    Para crear este objeto Directory abriremos una ventana de MS-DOS (desde "Inicio" - "Ejecutar" - "cmd"), abriremos SQL*Plus (utilidad para administrar Oracle desde la lnea de comandos) con el siguiente comando:

    sqlplus /nolog

    Nos conectaremos a Oracle con el comando:

    connect usuario/contrasea as sysdba;

    Crearemos el objeto directory con el comando:

    create directory CARPETA_EXPORT as 'c:/backup/export';

    Donde:

    CARPETA_EXPORT: ser el nombre que le asignemos al directory, ser el que usemos en el comando export (expdp).

    'c:/backup/export': unidad y carpeta asignada al directory, ser el destino de la copia de seguridad export.

  • Para comprobar que el directorio se ha creado correctamente podemos ejecutar la siguiente select:

    select directory_name from dba_directories;

    Nos devolver varios directory, entre ellos el creado anteriormente:

    La carpeta de destino debe existir, si no est creada el export devolver el error:

    ORA-39002: operacin no vlida ORA-39070: No se ha podido abrir el archivo ORA-29283: operacin de archivo no vlida ORA-06512: en "SYS.UTL_FILE", lnea 536 ORA-29283: operacin de archivo no vlida

    El archivo de volcado de exportacin anterior no debe existir

    Si ya existe un archivo de volcado de exportacin el comando expdp dar error pues no reemplaza uno existente, el error:

    ORA-39001: valor de argumento no vlido ORA-39000: especificacin de archivo de volcado errnea ORA-31641: no se ha podido crear el archivo de volcado "c:/backup/export/copia_oracle_export.dmp" ORA-27038: el archivo creado ya existe OSD-04010: opcin especificada; el archivo ya existe

    Por lo tanto si decidimos crear una tarea programada para ejecutar este comando automticamente cada da deberemos, previamente, eliminar el archivo de volvado de exportacin anterior antes de ejecutar el expdp.

    Parmetros para comando expdp export de Oracle 11g

    El comando expdp en Oracle 11g tiene los siguientes parmetros (obtenidos ejecutando expdp help=y):

    ATTACH: conectar a un trabajo existente. Por ejemplo, ATTACH=nombre_trabajo. COMPRESSION: reduce el tamao de un archivo de volcado. Los valores de palabras clave vlidos

    son: ALL, DATA_ONLY, [METADATA_ONLY] y NONE.

    CONTENT: especifica los datos que se van a descargar. Los valores de palabras clave vlidos son: [ALL], DATA_ONLY y METADATA_ONLY.

    DATA_OPTIONS: indicadores de opciones de nivel de datos. Los valores de palabra clave vlidos son: XML_CLOBS.

    DIRECTORY: objeto de directorio que se va a utilizar para los archivos de volcado y log. DUMPFILE: lista de nombres de archivo de volcado de destino [expdat.dmp]. Por ejemplo,

    DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.

    ENCRYPTION: cifra todo o parte del archivo de volcado. Los valores de palabras clave vlidos son: ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY y NONE.

  • ENCRYPTION_ALGORITHM: especifica cmo se debe hacer el cifrado. Los valores de palabras clave vlidos son: [AES128], AES192 y AES256.

    ENCRYPTION_MODE: mtodo para generar la clave de cifrado. Los valores de palabras clave vlidos son: DUAL, PASSWORD y [TRANSPARENT].

    ENCRYPTION_PASSWORD: clave de contrasea para crear datos cifrados en un archivo de volcado. ESTIMATE: calcula estimaciones de trabajo. Los valores de palabras clave vlidos son: [BLOCKS] y

    STATISTICS.

    ESTIMATE_ONLY: calcula las estimaciones de trabajo sin realizar la exportacin. EXCLUDE: excluye tipos de objeto especficos. Por ejemplo, EXCLUDE=SCHEMA:"='HR'". FILESIZE: especifica el tamao de cada archivo de volcado en unidades de bytes. FLASHBACK_SCN: SCN utilizado para restablecer la instantnea de sesin. FLASHBACK_TIME: tiempo utilizado para buscar el valor de SCN correspondiente ms cercano. FULL: exporta toda la base de datos. HELP: muestra mensajes de ayuda. INCLUDE: incluye tipos de objetos especficos. Por ejemplo, INCLUDE=TABLE_DATA. JOB_NAME: nombre del trabajo de exportacin que se va a crear. LOGFILE: especifica el nombre del archivo log [export.log]. NETWORK_LINK: nombre del enlace de base de datos remota al sistema de origen. NOLOGFILE: no se escribe el archivo log. PARALLEL: cambia el nmero de workers activos para el trabajo actual. PARFILE: especifica el nombre del archivo de parmetros. QUERY: clusula de predicado utilizada para exportar un subjuego de una tabla. Por ejemplo,

    QUERY=employees:"WHERE identificador_departamento > 10".

    REMAP_DATA: especifica una funcin de conversin de datos. Por ejemplo, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO.

    REUSE_DUMPFILES: sobrescribe el archivo de volcado de destino si existe. SAMPLE: porcentaje de datos para exportar. SCHEMAS: lista de esquemas que se van a exportar (esquema de conexin). SOURCE_EDITION: edicin que se usar para extraer metadatos. STATUS: estado del trabajo de frecuencia (seg) que se va a controlar donde el valor por defecto (0)

    mostrar el nuevo estado cuando est disponible.

    TABLES: identifica una lista de tablespaces que se van a exportar. Por ejemplo, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995.

    TABLESPACES: identifica una lista de tablespaces que se van a exportar. TRANSPORTABLE: especifica si el mtodo transportable se puede utilizar. Los valores de palabras

    clave vlidos son: ALWAYS y [NEVER].

    TRANSPORT_FULL_CHECK: verifica segmentos de almacenamiento de todas las tablas. TRANSPORT_TABLESPACES: lista de tablespaces desde los que se descargarn los metadatos. VERSION: versin de los objetos que se van a exportar. Los valores de palabra cable vlidos son:

    [COMPATIBLE], LATEST o cualquier versin de base de datos vlida.

    Los siguientes comandos son vlidos en el modo interactivo:

    ADD_FILE: agrega un archivo de volcado al juego de archivos de volcado. CONTINUE_CLIENT: vuelve al modo de registro. El trabajo se reiniciar si est inactivo. EXIT_CLIENT: sale de la sesin del cliente y deja el trabajo ejecutndose. FILESIZE: tamao de archivo (bytes) por defecto para los comandos ADD_FILE posteriores. HELP: resume los comandos interactivos. KILL_JOB: desconecta y suprime un trabajo. PARALLEL: cambia el nmero de workers activos para el trabajo actual. REUSE_DUMPFILES: sobrescribe el archivo de volcado de destino si existe. START_JOB: inicia o reanuda el trabajo actual. Los valores de palabra clave vlidos son:

    SKIP_CURRENT.

    STATUS: estado del trabajo de frecuencia (seg) que se va a controlar donde el valor por defecto (0) mostrar el nuevo estado cuando est disponible.

    STOP_JOB: cierra en orden la ejecucin del trabajo y sale del cliente. Los valores de palabra clave vlidos son: IMMEDIATE.

    Ejemplos de copia de seguridad lgica en lnea con

  • expdp export en Oracle 11g

    A continuacin mostramos algunos ejemplos para realizar backup lgico de los datos de Oracle Database 11g. Para ejecutar el comando expdpcorrectamente necesitaremos disponer de los requisitos explicados aqu.

    1. Ejemplo de export full (copia de seguridad completa de la base de datos) con un nico archivo de volcado:

    expdp usuario/contrasea dumpfile=copia_oracle_export.dmp logfile=copia_oracle_export.log directory=CARPETA_EXPORT full=y

    Mientras se va realizando la copia lgica con expdp ir mostrando las tablas que va exportando y el nmero de filas que contienen:

    El comando anterior generar el fichero "copia_oracle_export.dmp" en la carpeta indicada en el directory CARPETA_EXPORT con la copia de seguridad lgica de todos los datos de toda la base de datos Oracle (todos los usuarios, vistas, tablas, sinnimos, procedimientos, funciones, ...). Generar un fichero llamado "copia_oracle_export.log" con el resultado de la copia:

    2. Ejemplo de export full con un nico archivo de volcado comprimido:

    expdp usuario/contrasea dumpfile=copia_oracle_export.dmp logfile=copia_oracle_export.log directory=CARPETA_EXPORT full=y compression=all

    Como ejemplo, el archivo anterior sin compresin ocupaba 270MB, mientras que el comprimido de la misma base de datos ha ocupado 68MB.

    3. Ejemplo de export full con varios archivos de volcado de tamao predefinido 100MB:

    expdp usuario/contrasea dumpfile=copia_oracle_export_%U.dmp logfile=copia_oracle_export.log directory=CARPETA_EXPORT full=y filesize=100M

    En negrita hemos indicado los caracteres "%U" en el nombre del fichero de volcado (dumpfile), este

  • parmetro indicar a Oracle que vaya creando tantos ficheros como necesite del tamao indicando acabando en el nombre con xxx01.dmp, xxx02.dmp, xxx03.dmp, ... Si no se indican los caracteres "%U" y el archivo de volcado supera el tamao de filesize, el expdp mostrar el error:

    ORA-39095: Se ha agotado el espacio del archivo de volcado: No se han podido asignar XXX bytes El trabajo "SYSTEM"."SYS_EXPORT_FULL_01" se ha parado debido a un error fatal en 21:44:01

    Nota: este mtodo de dividir el archivo de volcado resultante en ficheros de un tamao especificado es muy interesante. Si tenemos una base de datos que ocupe ms de 10 20 GB podremos tener problemas en algunos sistemas operativos al generar ficheros de ms de 10 20 GB. Por ello este comando es muy recomendable, permitir generar ficheros de un tamao mximo, generar tantos como necesite. En el ejemplo hemos indicado que como mximo cree ficheros de100MB, aunque lo habitual es indicar 2000MB (2GB). El resultado del volcado quedar en varios ficheros:

    4. Ejemplo de export del esquema de un usuario concreto de Oracle (tablas, vistas y objetos de los que ese usuario es propietario):

    expdp usuario/contrasea dumpfile=copia_oracle_export.dmp logfile=copia_oracle_export.log directory=CARPETA_EXPORT schemas=nombre_usuario

    El comando de exportacin anterior slo exportar los objetos (tablas, vistas, etc.) de los que es propietario el usuario "nombre_usuario". Este comando ser mucho ms rpido en su ejecucin que si usamos full=yes pues no exportar los objetos del sistema.

    Tarea programada para copia lgica de Oracle en Windows Server 2008

    Es conveniente automatizar la copia de seguridad lgica para que se ejecute todos los das de forma automtica. Explicamos a continuacin cmo programar una copia de seguridad lgica con expdp para export de la base de datos Oracle.

    En primer lugar crearemos un fichero de proceso por lotes .bat con el comando expdp que se ejecutar desde la tarea programada. Abriremos el bloc de notas de Windows (notepad) o cualquier otro editor de texto plano sin formato e introduciremos el comando export que deseemos (como hemos explicadoaqu). Por ejemplo, para realizar las siguientes acciones:

    1. Primero eliminamos los ficheros de export del da anterior con el comando:

    del c:/backup/export/copia_oracle_export*.dmp /q

    2. Ejecutamos el export completo de la base de datos, con ficheros de tamao no superior a 2GB:

    expdp usuario/contrasea dumpfile=copia_oracle_export_%U.dmp logfile=copia_oracle_export.log directory=CARPETA_EXPORT full=y filesize=2000M

  • 3. Tras realizarse el export de la base de datos oracle copiaremos los ficheros de volcado resultantes a un PC de la red (por seguridad) con el comando:

    xcopy c:/backup/export/copia_oracle_export*.dmp \\pcbackup\backup\oracle\export /y

    Todos los comandos juntos en el mismo fichero:

    del c:/backup/export/copia_oracle_export*.dmp /q expdp usuario/contrasea dumpfile=copia_oracle_export_%U.dmp logfile=copia_oracle_export.log directory=CARPETA_EXPORT full=y filesize=2000M xcopy c:/backup/export/copia_oracle_export*.dmp \\pcbackup\backup\oracle\export /y

    Nombraremos el fichero con "export.bat", ser un fichero de proceso por lotes, ejecutable al hacer doble clic por ello no es conveniente dejarlo en el escritorio (para que slo se ejecute por tarea programada):

    Para crear la tarea programada accederemos al botn "Inicio" - "Herramientas administrativas" - "Programador de tareas":

    Pulsaremos con el botn derecho del ratn sobre "Programador de tareas (local)" y seleccionaremos "Crear tarea" del men emergente:

  • En la pestaa "General" introduciremos los siguientes datos:

    Nombre: texto identificativo para diferenciar esta tarea de otras, por ejemplo "Backup lgico diario Oracle".

    Descripcin: texto descriptivo de la accin que realiza la tarea, por ejemplo "Export full de Oracle diario".

    Es importante marcar la opcin "Ejecutar tanto si el usuario inici sesin como si no" para que aunque no se haya iniciado sesin la tarea se ejecute.

    Si queremos ejecutar la tarea con un usuario del sistema operativo diferente al actual pulsaremos en "Cambiar usuario o grupo".

    Desde la pestaa "Acciones" de la ventana de creacin de tarea pulsaremos en "Nueva":

  • En la ventana de "Nueva accin", en "Accin" seleccionaremos "Iniciar un programa", en "Programa o script" pulsaremos en el botn "Examinar":

    Seleccionaremos el fichero .bat creado anteriormente con el script de ejecucin el comando expdp, en nuestro caso "export.bat":

  • Pulsaremos en "Aceptar" para guardar la accin que se realizar con la tarea programada:

    Desde la pestaa "Desencadenadores" pulsaremos en "Nuevo" para establecer la programacin (das de la semana y hora en que se ejecutar el export):

  • Estableceremos la programacin como consideremos. En nuestro caso ejecutaremos el export los lunes, martes, mircoles, jueves, viernes y sbados a las 22:00. Para ello marcamos "Semanalmente" y seleccionamos dichos das:

    Tras establecer las opciones de la tarea programada pulsaremos en "Aceptar":

  • Nos solicitar la contrasea del usuario elegido que ser con el que se ejecute la tarea, dicho usuario debe tener permisos suficientes para escribir en el destino de la copia de seguridad:

    Podremos probar la tarea programada para verificar que funciona, pulsando con el botn derecho sobre ella y seleccionando "Ejecutar":

    Tras finalizar el export ejecutado desde la tarea programada, si todo es correcto, mostrar en "Resultado de ltima ejecucin" el texto "La operacin se complet correctamente. (0x0)":

  • Es muy importante mencionar que el hecho de que la tarea finalice con estado de 0x0 (correcta) no quiere decir que el export haya finalizado correctamente, simplemente indica que la tarea se ha ejecutado. Es muy importante verificar el fichero de log para comprobar que el export se ejecuta correctamente:

    Adems, cada cierto tiempo, conviene verificar que el export es realmente correcto haciendo un import (impdp) en alguna base de datos de pruebas, esta es la mejor comprobacin que puede realizarse para tener la garanta de que la copia de seguridad lgica en lnea est funcionando y tenemos los datos a salvo. Adems, obviamente, antes de eliminar cada da el fichero de volcado export para generar el nuevo, conviene copiarlo a una unidad de red (a otro equipo) o bien a una unidad de cintas de seguridad o a ambos destinos.

    Copia de seguridad fsica fuera de lnea en Oracle 11g

    Backup fsico offline en Oracle 11g

    La copia de seguridad fsica fuera de lnea (en fro) es la ms sencilla de todas y, tal vez, la ms importante: consiste en detener la base de datos y realizar una copia de todos los ficheros que componen la base de datos y la configuracin de Oracle (archivos de datos, archivos de control, registros de reconstruccin en lnea, pfile), como explicaremos ms adelante. Esta copia no suele realizarse muy a menudo pero es fundamental pues, si se realiza correctamente, es la copia ms fiable. Obviamente no es una copia que deba hacer todos los das, sobre todo en entornos de alta disponibilidad ya que tendr la base de datos parada mientras se est realizando la copia y para bases de datos grandes el proceso de copiado puede tardar minutos e incluso horas.

    La ventaja de esta copia es que se realiza una "imagen" exacta de la base de datos tal cual se encuentra en el momento de detenerla y hacer la copia, por lo que la recuperacin es rpida (tardar el mismo tiempo que se tarde en detener la base de datos y reemplazar todos los ficheros) con el inconveniente de que no podr recuperarse en un punto determinado del tiempo, slo quedar recuperada la informacin al momento en que se hizo la copia.

    Esta copia de seguridad fsica fuera de lnea podra hacerse cada 15 das (dos semanas), a ser posible en fin

  • de semana para evitar la desconexin de los usuarios. Aunque la periodicidad debe establecerla el administrador de sistemas o administrador de bases de datos en funcin del uso, la disponibilidad y el tamao que se le d.

    Cmo hacer copia de seguridad fsica fuera de lnea de forma manual

    Para hacer copia de seguridad fsica fuera de lnea de Oracle, en primer lugar detendremos la base de datos, para ello abriremos SQL*Plus desde una ventana de MS-DOS, con el comando:

    sqlplus /nolog

    conn / as sysdba

    shutdown immediate;

    Una vez detenida la base de datos copiaremos los ficheros que la componen, por ejemplo los ficheros de datos, ficheros de control y redolog:

  • Ficheros de configuracin y contraseas (SPFILE y PWDFile), normalmente ubicados en:

    $ORACLE_HOME/dbhome_1/database

    Copiaremos tambin los ficheros de log archivado:

    Una vez copiados todos los ficheros a una ubicacin de red o local volveremos a iniciar la base de datos con el comando:

    startup

  • Automatizar mediante scripts la copia de seguridad fsica fuera de lnea en Oracle 11g

    Obviamente el proceso de copia de seguridad fsica fuera de lnea puede automatizarse mediante scripts, explicamos cmo a continuacin.

    1. Creamos un fichero de texto plano sin formato (con notepad) para detener la base de datos con el nombre "detenerbd.sql", con el siguiente contenido:

    shutdown immediate; exit;

    2. Creamos un fichero de texto plano sin formato (con notepad) para iniciar la base de datos con el nombre "iniciarbd.sql", con el siguiente contenido:

    startup; exit;

    3. Crearemos un fichero de proceso por lotes para ejecutar el fichero que detiene la bd, para para copiar todos los ficheros de la base de datos y de configuracin usando el comando de Windows xcopy y para volver a iniciar la bd. El contenido de este fichero llamado "copia_fisica_offline.bat" ser:

    sqlplus sys/contrasea as sysdba @detenerbd.sql xcopy "O:\datos\AJPDSOFT\*.*" "X:\backup_fisico\datos" /e /c /y xcopy "O:\oracle\database\SPFILEAJPDSOFT.ORA" "X:\backup_fisico\configuracion" /e /c /y xcopy "O:\oracle\database\PWDAJPDSOFT.ora" "X:\backup_fisico\configuracion" /e /c /y xcopy "O:\oracle\flash_recovery_area" "X:\backup_fisico\archivado" /e /c /y sqlplus sys/contrasea as sysdba @iniciarbd.sql

    Los ficheros para la automatizacin:

  • Podremos programar la tarea al igual que hemos explicado aqu.

    Copia de seguridad con RMAN offline si la base de datos no est en modo ARCHIVELOG

    Si la base de datos Oracle 11g no est en modo ARCHIVELOG (por el motivo que sea), la copia de seguridad mediante RMAN detendr la base de datos, ser una copia offline. A continuacin indicamos cmo programarla de forma automtica mediante el asistente de Oracle Enterprise Manager Database Control, introduciremos usuario y contrasea de oracle Database 11g, a ser posible SYS SYSTEM algn otro usuario DBA de la base de datos:

    Pulsaremos en "Disponibilidad":

  • Pulsaremos en "Planificar Copia de Seguridad":

    Oracle ofrece una estrategia de copia de seguridad automatizada basada en la configuracin del disco y/o cinta o tambin es posible establecer una estrategia de copia seguridad personalizada.

    Copia de Seguridad Sugerida por Oracle: permite plantificar una copia de seguridad mediante la estrategia de copia de seguridad automatizada de Oracle. Esta opcin realizar una copia de seguridad de la base de datos completa. Los intervalos de copia de seguridad de la base de datos sern diarios y semanales.

    Copia de Seguridad Personalizada: permite seleccionar los objetos de los que se realizarn copia de seguridad:

    o Toda la Base de Datos: se realizar una copia de seguridad offline de la base de datos completa. Si la base de datos est abierta al realizar la copia de seguridad, se cerrar y montar antes de realizar la copia de seguridad. La base de datos se abrir despus de la realizacin de la copia de seguridad.

    o Todos los archivos de Recuperacin en el Disco: incluye tods los archive logs y las copias de seguridad de los discos de los que todava no se ha realizado una copia de seguridad en cinta.

    En nuestro caso dejaremos que Oracle nos sugiera la estrategia de copia de seguridad ptima para nuestra base de datos. Marcaremos la opcin "Toda la Base de Datos", introduciremos usuario y contrasea del sistema operativo con permisos suficientes para escribir en la carpeta de destino de la copia. Pulsaremos en el botn "Planificar Copia de Seguridad Sugerida por Oracle":

  • Seleccionaremos el medio fsico de destino para la copia de seguridad, las opciones:

    Disco: usar disco como el nico almacenamiento para copias de seguridad. Cinta: usar cinta como el nico almacenamiento para copias de seguridad. Disco y Cinta: usar disco para almacenar las copias de seguridad de base de datos ms recientes

    para poder restaurar la copia de seguridad anterior rpidamente. Usar cinta para almacenar las copias de seguridad antiguas de la ventana de recuperacin ampliada.

    Si disponemos de unidad de cinta de backup es recomendable hacer la copia en Disco y en Cinta, si no disponemos de unidad de copia de seguridad en cinta marcaremos "Disco" y pulsaremos "Siguiente":

    El asistente de planificacin de copia de seguridad nos sugerir realizar una copia de seguridad diaria: se realizar una copia completa de la base de datos durante la primera copia de seguridad. A continuacin, se realizar una copia de seguridad incremental en el disco diariamente. Las copias de seguridad del disco se mantendrn para que siempre pueda realizar una recuperacin completa de la base de datos o una recuperacin point-in-time (en un punto del tiempo) hasta un momento determinado del da anterior.

    En "Valores de Disco" nos mostrar el destino de la copia de seguridad (rea de recuperacin de flash), por defecto:

    $ORACLE_HOME/Administrador/flash_recovery_area

    Esta ubicacin se puede modificar ejecutando, desde SQL*Plus, el comando:

    ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = 'C:/carpeta_destino' SCOPE=BOTH;

    Oracle permite cifrar los ficheros de destino de la copia, para que no puedan ser abiertos por usuarios

  • "indeseados" salvo que sepan la contrasea de descrifrado. Para cifrar los ficheros marcaremos "Usar Cifrado de Recovery Manager", indicaremos el algoritmo de cifrado (por defecto AES128). Si queremos cifrar con Oracle Encryption Wallet marcaremos "Modo de cifrado... Las copias de seguridad se cifrarn con Oracle Encryption Wallet". Marcaremos tambin "Las copias de seguridad se cifrarn con la siguiente contrasea" e introduciremos la contrasea para los archivos de destino cifrados. Oracle admite los dos tipos de cifrado: con Oracle Encryption Wallet o/y con contrasea:

    Indicaremos la fecha de inicio a partir de la cual Oracle comenzar la planificacin de las copias de seguridad, introduciremos tambin la hora en la que se realizar la copia de seguridad diaria. Una vez ms, el asistente de copia de seguridad de Oracle 11g nos advertir que al no estar la base de datos enmodo ARCHIVELOG, el trabajo planificado de copia de seguridad detendr la base de datos antes de iniciar la copia, realizar la copia con RMAN y tras finalizar volver a iniciar la base de datos. Pulsaremos "Siguiente" para continuar:

    El asistente, en el ltimo paso, nos mostrar las opciones seleccionadas para la copia de seguridad y nos mostrar el script de RMAN que se ejecutar. Pulsaremos en "Ejecutar Trabajo" si todo es correcto:

  • El script para RMAN que genera el asistente de copia de seguridad:

    set encryption on for all tablespaces algorithm 'AES128' identified by '%PASSWORD' only; set decryption identified by '%PASSWORD'; run { allocate channel oem_disk_backup device type disk; recover copy of database with tag 'ORA_OEM_LEVEL_0'; backup incremental level 1 cumulative copies=1 for recover of copy with tag 'ORA_OEM_LEVEL_0' database; }

    El asistente nos indicar que el trabajo se ha guardado correctamente. La tarea de copia de seguridad se ejecutar en la hora y da programado:

    Esta copia de seguridad puede programarse desde fuera de Oracle, usando el programador de tareas de Windows y ejecutando el script desde RMAN en un fichero de proceso por lotes, pero recomendamos realizarla como hemos explicado pues al generar un trabajo de Oracle podremos consultar un registro del estado de las copias (cundo se hacen y con qu resultado) desde el propio Oracle Enterprise Manager Database Control (Disponibilidad - Informes de Copia de Seguridad).

    Copia de seguridad fsica en lnea con RMAN en Oracle 11g con ARCHIVELOG activado

    La copia de seguridad fsica en lnea consiste en copiar los archivos que constituyen la base de datos sin necesidad de detenerla. La base de datos seguir funcionando mientras se realiza la copia fsica de los ficheros gracias a la utilidad RMAN de Oracle. El requisito es que la base de datos debe estar enmodo ARCHIVELOG, aunque esto no es inconveniente pues en Oracle 11g la base de datos se establece en este estado por defecto, pero s hay que verificar que est activo, como indicamos aqu:

    Activar modo ARCHIVELOG en Oracle Database 11g R2

  • La ventaja de esta copia, adems de que no es necesario detener la base de datos, es que si se ha realizado correctamente y si disponemos de los ficheros de archivado podremos realizar una recuperacin en un punto del tiempo determinado (point-in-time). A diferencia de la copia lgica export que es una instantnea del momento en el que se ejecut, con lo cual los datos slo podran ser recuperados a ese momento.

    Vamos a explicar a continuacin cmo programar un trabajo de Oracle para realizar una copia de seguridad diaria (completa la primera e incrementales el resto) de la base de datos a disco usando RMAN. La utilidad RMAN puede ser muy complicada segn las opciones que necesitemos, aunque en Oracle 11g se ha simplificado, por ejemplo, el RMAN a disco es bastante sencillo. Adems, con el asistente de Oracle 11g para copia de seguridad veremos a continuacin que es muy fcil programar la copia.

    Para programar la copia de Oracle online con RMAN lo haremos de forma automtica desde el asistente de Oracle Enterprise Manager Database Control. El procedimiento es exactamente el mismo que para la copia explicada aqu, slo cambiarn algunas advertencias, como por ejemplo el asistente ya no indicar que la base de datos se detendr para hacer la copia, pues en este mtodo y con el modo ARCHIVELOG la base de datos no se detendr para hacer las copias de seguridad.

    En el primer paso de la copia de seguridad, en la opcin de "Copia de Seguridad Personalizada" podremos ver ms opciones para la copia: Toda la Base de Datos, Tablespaces, Archivos de Datos, Archive Logs y Todos los Archivos de Recuperacin en el Disco. En nuestro caso, como anteriormente, introduciremos el usuario y contrasea del sistema operativo y pulsaremos "Planificar Copia de Seguridad Sugerida por Oracle":

    Seleccionaremos el destino de la copia:

  • Nos mostrar, si hemos elegido "Disco" en el destino, la unidad y carpeta donde se copiarn los ficheros, tambin podremos cifrarlos:

    Indicaremos la fecha y hora de inicio:

  • Nos mostrar el script de RMAN, pulsaremos "Ejecutar Trabajo":

    El script que se generar para RMAN:

    set encryption on for all tablespaces algorithm 'AES128' identified by '%PASSWORD'; set decryption identified by '%PASSWORD'; run { allocate channel oem_disk_backup device type disk; recover copy of database with tag 'ORA_OEM_LEVEL_0'; backup incremental level 1 cumulative copies=1 for recover of copy with tag 'ORA_OEM_LEVEL_0' database; }

    Nos indicar que el trabajo se ha ejecutado correctamente. Para ver el estado actual pulsaremos en "Ver Trabajo":

  • El asistente nos mostrar los trabajos de copia de seguridad actuales y su informacin (nombre, estado, fecha y hora de planificacin, destinos, tipo de destino, propietario, etc.):

    Como hemos comentado anteriormente, desde "Disponibilidad" - "Informes de Copia de Seguridad" podremos consultar el estado de ejecucin de todos los trabajos de copia de seguridad que se hayan realizado en el servidor:

    Pulsando en alguno de ellos podremos consultar todos los detalles de la ejecucin de la copia de seguridad: archivos de datos, archivos de control, SPFile, resumen de salida, juego de copias de seguridad, copia de imagen, archivos de datos, tipo de salida, clave de salida, tamao del archivo, tablespace, hora de punto de control, nivel incremental, ratio de compresin, bloques corruptos, SCN de Punto de Control de Archivos, ...: