Sunteți pe pagina 1din 58

EXPORT Un export se realiza desde la herramienta exp que se aloja en $ORACLE_HOME/bin .

Se ejecuta invocndolo de este modo:


exp usuario/contrasea lista_de_parametros=valor

o usando un archivo de parmetros:


exp usuario/contrasea parfile=nombre.par

Hay otra opcin que se usa menos que es la denominada "interactiva" y es que nicamente se invoca a la herramienta y esta va preguntando por los parmetros habituales (buffer, file, modo, grants, table data y compress). Yo normalmente no la uso porque es mas pesada. Entre esta lista de parmetros cabe destacar: grants: si se graban los permisos concedidos sobre los objetos. Los valores admitidos son y (yes) o n (no). Por defecto yes
grants=y

indexes: si se van a exportar los ndices o no. Los valores admitidos son y (yes) o n (no). Por defecto yes.
indexes=y

row: si queremos exportar las filas o no. Por defecto yes.


rows=y

constraints: se exportan las constraints?. Por defecto yes.


constraints=y

compress: si se realiza el export comprimido. Por defecto yes.


compress=y

statistics: si queremos exportar las estadsticas de origen. Estimate, compute, none. Por defecto estimate
statistics=none

full: si se hace un export completo de toda la instancia. Modo completo. Por defecto no.
full=y

owner: el esquema origen desde el que se exporta. Modo esquema. Por defecto el usuario actual.
owner=esquema

tables: lista de tablas a exportar. Modo tabla. Por defecto desactivado.


tables=esquema.busquedas

inctype: tipo de export incremental


inctype

record: dice si se graba el export incremental en las tablas SYS.INCVID y SYS.INCEXP. Por defecto yes.
record=

file: ruta absoluta y nombre del fichero .dmp donde depositar el export.
file=/tmp/rman/sid/exp_sid_20120604.dmp

filsize: tamao del fichero .dmp Se usa mucho para sistemas operativos con limitacin de tamao de ficheros (Solaris 2GB, FAT32...)
filesize=2000000

indexfile: si en lugar de realizar el export con datos, slo queremos los scripts de creacin de las tablas.
indexfile=sid.log

log: ruta completa y nombre del fichero donde escribir el log de la operacin
log=/tmp/rman/sid/exp_sid_20120604.log

show: permite "simular" el export pero no lo realiza de verdad.


show=n

userid: usuario/contrasea con el que queremos realizar el export


userid='sys/seres6221 /as sysdba'

consistent: permite obligar a que el export sea consistente. No es vlido con el usuario SYS ni con cualquiera con privilegios SYSDBA o SYSOPER. Valor por defecto no.
CONSISTENT=y

buffer: define el tamao del buffer utilizado. Valor por defecto en funcin del ssoo. Para calcular el valor podemos usar este simple clculo: buffer_size = rows_in_array * maximum_row_size Si ponemos 0 se hace fila a fila. El valor es en bytes.
buffer=4096

query: permite seleccionar un conjunto de filas en lugar de la tabla entera.


query=SELECT * FROM busquedas WHERE c1='Y';

Esto es un ejemplo de la ejecucin con un archivo de parmetros:


oracle@Host]$ exp parfile=export_sid.par

Export: Release 11.1.0.6.0 - Production on Lun Jun 4 16:46:31 2012

Copyright (c) 1982, 2007, Oracle.

All rights reserved.

Usuario: pepito Contrasea:

Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Exportacin realizada en el juego de caracteres WE8ISO8859P1 y el juego de caracteres NCHAR AL16UTF16 Exportando las tablas especificadas a travs de la Ruta de Acceso Convencional ... El usuario actual ha cambiado a PEPITO . exportando la tabla BUSQUEDAS 4 filas exportadas La exportacin ha terminado correctamente y sin advertencias.

En funcin de ciertos parmetros podemos distinguir 3 modos principales de export, full, owner y tables. Hay un cuarto modo que nunca he usado, tablespaces.

IMPORT Un import se realiza desde la herramienta imp que se aloja en $ORACLE_HOME/bin . Se ejecuta invocndolo de este modo (los mismos modos que el export, desde lnea de comandos, interactivo o con archivo de parmetros):
imp system@sid parfile=import.par

*notar que no he escrito la contrasea y me la va a pedir al ejecutarlo. Esta forma no sirve para incluirla en scripts. Para ese fin pueden servir la primera notacin que he descrito con el export o estableciendo un valor para userid dentro del parfile. Me parecen mejor usar el userid del parfile porque as no se puede ver la contrasea la ejecutar un simple ps en el sistema. Para invocarlo como sysdba desde la lnea de comandos imp
\'username/password@instance AS SYSDBA\'

**Hay que tener en cuenta que la versin de Import no puede ser mas vieja que la de Export o no podremos importar. Durante un Import primero se crean las tablas, se insertan los datos y se crean los ndices. Se crean los triggers y se activan las constraints de integridad. Si las tablas ya existen se debe desactivar las referential constraints y activarlas tras el import. Se necesitan los privilegios de IMP_FULL_DATABASE y CREATE SESSION (dentro de CONNECT). En realidad el IMP_FULL_DATABASE no es obligatorio si haces el import desde el propio esquema. En este caso bastar con el rol RESOURCE que incluye todos los "create objeto" que se necesitan. Los parmetros que mas se usan son: commit: dice que haga commit tras insertar un array. Por defecto se hace commit tras cada tabla pero si trabajas con tablas muy grandes esto puede ser un problema de espacio, que falle y se produzca un error. Activarlo hace que el import sea mas lento.
commit=N

file: ruta absoluta y nombre del fichero .dmp donde reside el fichero a importar.
file=/tmp/rman/sid/exp_sid_20120604.dmp

filsize: el mismo valor que en el export.


filesize=2000000

feedback: se muestra un mensaje de progreso con cada intervalo de filas que hayas especificado. Por defecto 0, desactivado.
feedback=1000

fromuser: esquema origen


fromuser=PEPITO,JUANITO

touser: esquema destino. Si son varios separados por comas. Uno de los usos es mover los objetos de esquema, esto es, remap. Puede requerir IMP_FULL_DATABASE.
touser=PEPITO,LORITO

full: Si vamos a importar todo el dmp. Por defecto no.


full=n

buffer *********
buffer=4096

compile: obliga a que se compilen los objetos segn se crean. Si se establece a no se compilarn en la primera ejecucin. Por defecto es yes.
compile=y

grants: Si se van a importar los grants del objeto. Por defecto y. Como en el export no se han exportado los grants de las vistas del diccionario de datos, en el import no van a aparecer.
grants=y

ignore: muestra un error con la sentencia de creacin del objeto (por ejemplo si estamos importando una tabla que ya existe pero que hemos truncado) y sigue con la importacin.Hay que tener cuidado porque si hemos desahabilitado las contraints y procedemos a importar con ignore=y podemos duplicar filas.
ignore=n

indexes: se importan o no los ndices. Por defecto y.


indexes=y

skip_unusable_indexes: especifica si se importa o no los ndices que tenan estado unusable en el origen. Por defecto n.
skip_unusable_indexes=n

indexfile: si se activa no se importan los ndices y se crean las ddl. til por ejemplo para cuando queremos separar los ndices a otro tablespace o los queremos modificar. No es vlido en el modo tablespace.
indexfile=indices_pepito.log

log: La ruta completa y el nombre del fichero de log de la operacin.


log=/tmp/rman/sid/imp_sid_20120604.log

rows: si se importan los registros o no. Por defecto y.


rows=y

show: si se "simula" el import mostrndolo por pantalla pero en realidad no se realiza. No vlido con el modo tablespace. Por defecto n.
show=n

tables: lista de tablas a importar separadas por comas. Si son tablas particionadas se especifica tabla:particin. Si se usa desde la lnea de comandos encerrarlos entre parntesis.
tables=tabla1,tabla2

statistics: valores always, none, safe, recalculate. Por defecto always.


statistics=allways

En funcin de ciertos parmetros podemos distinguir 3 modos principales de import, full (IMP_FULL_DATABASE), owner(fromuser, touser) y tables. Hay un cuarto modo que nunca he usado, tablespaces.

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 <CREATE> 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 expdp correctamente 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 explicado aqu). 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 en modo 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 en modo 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, ...:

1 Introduccin al Backup y a la Recuperacin


Planear y comprobar los procedimientos de backup del sistema es la nica garanta que existe contra fallos del sistema, del SO, del software o cualquier otro tipo de circunstancias. Las causas de error en una sistema de BD pueden agruparse en las siguientes categoras:

Fsicas son causadas por fallos del hardware, como por ejemplo del disco o de la CPU.

de Diseo son agujeros en el software, ya sea en el SO o en el SGBD.

de Funcionamiento son causadas por la intervencin humana, debidos a fallos del DBA, configuraciones inapropiadas o mal planteamiento de los procedimientos de backup.

del entorno

como por ejemplo desastres naturales, fallos de corriente, temperatura excesiva. De entre todas estas posibilidades, el DBA slo puede influir y prever los errores de funcionamiento, ya que el resto habitualmente no est dentro de sus responsabilidades y capacidades. Dada la complejidad de los sistemas actuales y las necesidades cada vez ms crticas en la disponibilidad de los sistemas, donde una BD caida puede causar prdidas millonarias, puede ser interesante considerar los mecanismos de proteccin hardware y de redundancia que la tecnologa nos proporciona:

UPS o fuentes de corriente ininterrumpida, espejado de disco, o tecnologa RAID, Componentes duplicados, Sistemas redundantes.

Una de las ms importantes decisiones que un DBA debe tomar es decidir si arrancar la BD en modo ARCHIVELOG o no. Esta decisin tiene sus ventajas e inconvenientes:

Ventajas: o Aunque se pierdan los ficheros de datos, siempre se puede recuperar la BD con una copia antigua de los ficheros de datos y los ficheros de redo log archivados. o Es posible realizar backups en caliente. Inconvenientes: o Se necesitar ms espacio en disco. o El trabajo del DBA se incrementa al tener que determinar el destino del archivado de los redo log.

1.1 Presentacin del Backup


Los backups se pueden clasificar en fsicos y lgicos. Los fsicos se realizan cuando se copian los ficheros que soportan la BD. Entre estos se encuentran los backups del SO, los backups en fro y los backups en caliente. Los backups lgicos slo extraen los datos de las tablas utilizando comandos SQL y se realizan con la utilidad export/import. Backups del SO Este tipo de backup es el ms sencillo de ejecutar, aunque consume mucho tiempo y hace inaccesible al sistema mientras se lleva a cabo. Aprovecha el backup del SO para almacenar tambin todos los ficheros de la BD. Los pasos de este tipo de backup son los siguientes:

1. 2. 3. 4.

Parar la BD y el SO Arrancar en modo superusuario. Realizar copia de todos los ficheros del sistema de ficheros Arrancar el sistema en modo normal y luego la BD.

Backups de la BD en Frio Los backups en frio implican parar la BD en modo normal y copiar todos los ficheros sobre los que se asienta. Antes de parar la BD hay que parar tambin todos las aplicaciones que estn trabajando con la BD. Una vez realizada la copia de los ficheros, la BD se puede volver a arrancar. Backups de la BD en Caliente El backup en caliente se realiza mientras la BD est abierta y funcionando en modo ARCHIVELOG. Habr que tener cuidado de realizarlo cuando la carga de la BD sea pequea. Este tipo de backup consiste en copiar todos los ficheros correspondientes a un tablespace determinado, los ficheros redo log archivados y los ficheros de control. Esto para cada tablespace de la BD. Backups Lgicos con Export/Import Estas utilidades permiten al DBA hacer copias de determinados objetos de la BD, as como restaurarlos o moverlos de una BD a otra. Estas herramientas utilizan comandos del SQL para obtener el contenido de los objetos y escribirlos en/leerlos de ficheros Una vez que se ha planeado una estrategia de backup y se ha probado, conviene automatizarla para facilitar as su cumplimiento.

1.2 Presentacin de la Recuperacin


Oracle proporciona diferentes modos de recuperar un fallo en la BD, y es importante que el DBA conozca como funciona cada uno de ellos para determinar cundo ha de ser utilizado. Una de las mayores responsabilidades del DBA consiste en tener la BD a punto, y prepararla ante la posibilidad de que se produzca un fallo. As, ante un fallo el DBA podr recuperar la BD en el menor tiempo posible. Los procesos de recuperacin dependen del tipo de error y de las estructuras afectadas. As, los tipos de error que se pueden producir son: Errores de Usuario

Como por ejemplo un usuario borrando una fila o eliminando una tabla. Estos errores se solucionan importando una tabla de una copia lgica anterior. Si no se dispone de la copia lgica, se puede recuperar la BD en una instancia auxiliar, exportar la tabla en cuestin de la instancia auxiliar e importarla en la instancia operativa. Fallos de Sentencias Se definen como la imposibilidad del SGBD Oracle de ejecutar alguna sentencia SQL. Un ejemplo de esto se produce cuando se intenta una seleccin de una tabla que no existe. Estos fallos se recuperan automticamente mediante un rollback de la transaccin que contena la sentencia fallida. El usuario necesitar volver a ejecutar otra vez la transaccin cuando se haya solucionado la causa del problema. Fallos de Procesos Es una terminacin anormal de un proceso. Si el proceso era un proceso de usuario, del servidor o de una aplicacin el PMON efectuar la recuperacin del proceso. Si el proceso era alguno de los de background, la instancia debe de ser parada y arrancada de nuevo, proceso durante el cual se recupera la caida efectuando un roll forward y un rollback de las transacciones no confirmadas. Fallos de la Red Algunas veces los fallos en la red producen fallos de proceso, que son tratados por el PMON. Si en el error de red se ve envuelta una transaccin distribuida, una vez que se reestablece la conexin, el proceso RECO resuelve los conflictos automticamente. Fallos de Instancia Pueden deberse a fallos fsicos o de diseo del software que hacen que algn proceso background caiga y la instancia con l. La recuperacin es automtica cuando se levanta la BD, tomandose ms o menos tiempo en la recuperacin. Fallos del Sistema Son los fallos ms peligrosos, no slo porque se pueden perder datos, sino porque se tarda ms tiempo en recuperar que los otros fallos. Adems se depende mucho de la experiencia del DBA para levantar la BD rpidamente y sin pdida (o casi) de datos. Existen tres tipos de recuperacin en Oracle: a nivel de bloque, de thread y fsica. Recuperacin de bloques

Es el mecanismo de recuperacin ms simple, y se realiza automticamente. Se produce cuando un proceso muere justo cuando est cambiando un bloque, y se utilizan los registros redo log en lnea para reconstruir el bloque y escribirlo en disco. Recuperacin de threads Se realiza automticamente cuando Oracle descubre que una instancia muere dejando abierto un thread, entonces se restauran los bloques de datos modificados que estaban en el cache de la instancia muerta, y cerrando el thread que estaba abierto. La recuperacin se efectua automticamento cuando la BD se levanta. Recuperacin fsica Se realiza como respuesta a un comando RECOVER. Se utiliza para convertir los ficheros de backup en actuales, o para restaurar los cambios que fueron perdidos cuando un fichero de datos fue puesto offline sin un checkpoint, aplicando los fichero redo log archivados y en lnea.

2 Principios de Backup
Un backup vlido es una copia de la informacin sobre la BD necesaria para reconstruir la BD a partir de un estado no utilizable de la misma. Normalmente, si la estrategia de backup se basa en la copia de los ficheros de datos y en el archivado de los ficheros redo log, se han de tener copias de los ficheros de datos, de los ficheros de control, de los ficheros redo log activos y tambin de los archivados. Si se pierde uno de los ficheros redo log archivados se dice que se tiene un agujero en la secuencia de ficheros. Esto invalida el backup, pero permite a la BD ser llevada hasta el principio del agujero realizando una recuperacin incompleta.

2.1 Diseo de la BD y Reglas Bsicas de Backup


Antes de nada, es muy importante entender ciertas reglas que determinan la situacin de los ficheros y otras consideraciones que afectarn al esquema de backup:

Es recomendable archivar los ficheros redo log en disco, y luego copiarlos a cinta, pero siempre en un disco diferente del que soporta los ficheros de datos y de redo log activos. Los ficheros copias no deben estar en el mismo dispositivo que los originales. No siempre hay que pasar las copias a cinta, ya que si se dejan en disco se acelera la recuperacin. Adems, si se copian las copias a cinta y se mantienen en el disco, se puede sobrevivir a diversos fallos de dispositivo.

Se deberan mantener diferentes copias de los ficheros de control, colocadas en diferentes discos con diferentes controladores. Los ficheros redo log en lnea deben estar multiplexados, con un mnimo de 2 miembros por grupo, residiendo cada miembro en un disco distinto. Siempre que la estructura de la BD cambie debido a la inclusin, borrado o renombrado de un fichero de datos o de redo log, se debe copiar el fichero de control, ya que almacenan la estructura de la BD. Adems, cada fichero aadido tambin debe ser copiado. El fichero de control puede ser copiado mientras la BD est abierta con el siguiente comando:

SVRMGR> alter database backup controlfile to 'destino';

Teniendo en cuenta las reglas anteriores, los siguientes puntos pueden considerarse un ejemplo de estrategia de backup: 1. Activar el modo ARCHIVELOG. 2. Realizar un backup al menos una vez a la semana si la BD se puede parar. En otro caso, realizar backups en caliente cada da. 3. Copiar todos los ficheros redo log archivados cada cuatro horas. El tamao y el nmero de ellos depender de la tasa de transacciones. 4. Efectuar un export de la BD semanalmente en modo RESTRICT.

2.2 Backups Fsicos


Los backups fsicos son aquellos que copian fsicamente los ficheros de la BD. Existen dos opciones: en fro y en caliente. Se dice que el backup es en frio cuando los ficheros se copian con la BD esta parada. En caliente es cuando se copian los ficheros con la BD abierta y funcionando. Backup en Fro El primer paso es parar la BD con el comando shutdown normal. Si la BD se tiene que parar con inmediate o abort debe rearrancarse con el modo RESTRICT y vuelta a parar en modo normal. Despus se copian los ficheros de datos, los de redo log y los de control, adems de los redo log archivados y an no copiados. Una buena idea es automatizar todo este proceso con los scripts correspondientes, de modo que no nos olvidemos de copiar ningn fichero. Como este tipo de backup es una copia de los ficheros de la BD, si estos contienen algn tipo de corrupcin, la traspasaremos a la copia de seguridad sin detectarla. Por esto es importante comprobar las copias de seguridad. Backup en Caliente

Si la implantacin de BD requiere disponibilidad de la misma 24h. al da, 7 dias a la semana no se pueden realizar backups en frio. Para efectuar un backup en caliente debemos trabajar con la BD en modo ARCHIVELOG. El procedimiento de backup en caliente es bastante parecido al frio. Existen dos comandos adicionales: begin backup antes de comenzar y end backup al finalizar el backup. Por ejemplo, antes y despus de efectuar un backup del tablespace users se deberan ejecutar las sentencias:

SVRMGR> alter tablespace users begin backup; SVRMGR> alter tablespace users end backup;
As como el backup en frio permita realizar una copia de toda la BD al tiempo, en los backups en caliente la unidad de tratamiento es el tablespace. El backup en caliente consiste en la copia de los ficheros de datos (por tablespaces), el actual fichero de control y todos los ficheros redo log archivados creados durante el periodo de backup. Tambin se necesitarn todos los ficheros redo log archivados despus del backup en caliente para conseguir una recuperacin total.

2.3 Backups Lgicos


Este tipo de backups copian el contenido de la BD pero sin almacenar la posicin fsica de los datos. Se realizan con la herramienta export que copia los datos y la definicin de la BD en un fichero en un formato interno de Oracle. Para realizar un export la BD debe estr abierta. Export asegura la consistencia en la tabla, aunque no entre tablas. Si se requiere consistencia entre todas las tablas de la BD entonces no se debe realizar ninguna transaccin durante el proceso de export. Esto se puede conseguir si se abre la BD en modo RESTRICT. Entre las ventajas de efectuar un export estn las siguientes:

Se puede detectar la corrupcin en los bloques de datos, ya que el proceso de export fallar. Protege de fallos de usuario, por ejemplo si se borra una fila o toda una tabla por error es fcil recuperarla por medio de un import. Se puede determinar los datos a exportar con gran flexibilidad. Se pueden realizar exports completos, incrementales y acumulativos. Los backups relizados con export son portables y sirven como formato de intercambio de datos entre BDs y entre mquinas.

Una de las desventajas de realizar backups lgicos con export es que son mucho ms lentos que los backups fsicos. Parmetros de Export

Parmetro
USERID BUFFER FILE GRANTS INDEXES ROWS CONSTRAINTS COMPRESS FULL OWNER TABLES RECORDLENGTH INCTYPE RECORD PARFILE

Defecto indefinido dependiente del SO expdat.dmp Yes Yes Yes Yes Yes No usuario actual indefinido dependiente del SO indefinido Yes indefinido

Descripcin el username/password del usuario que efectua el export. El tamao en bytes del buffer utilizado. el nombre del fichero destino. indica si se exportan tambin los derechos. indica si se exportan tambin los ndices. indica si se exportan tambin las filas de las tablas, o slo las definiciones de las tablas. indica si se exportan tambin las restricciones. indica si se exporta en modo comprimido. indica si se exporta la BD entera. una lista de usuarios cuyos objetos se quieren exportar. la lista de tablas a exportar. la longitud en bytes del registro del fichero. el tipo de export incremental. indica si se anota el export incremental en las tablas SYS.INCVID y en SYS.INCEXP. el fichero de parmetros.

Modos de Export Existen tres modos de realizar una exportacin de datos: Modo Tabla Exporta las definiciones de tabla, los datos, los derechos del propietario, los ndices del propietario, las restricciones de la tabla y los disparadores asociados a la tabla. Modo Usuario Exporta todo lo del modo de Tabla ms los clusters, enlaces de BD, vistas, sinnimos privados, secuencias, procedimientos, etc. del usuario. Modo BD Entera Adems de todo lo del modo Usuario, exporta los roles, todos los sinnimos, los privilegios del sistema, las definiciones de los tablespaces, las cuotas en los tablespaces, las definiciones de los segmentos de rollback, las opciones de auditora del sistema, todos los disparadores y los perfiles. El modo BD entera puede ser dividido en tres casos: Completo, Acumulativo e Incremental. Estos dos ltimos se toman menos tiempo que el completo, y permiten exportar slo los cmbios en los datos y en las definiciones.

Completo Exporta todas las tablas de la BD e inicializa la informacin sobre la exportacin incremental de cada tabla. Despus de una exportacin completa, no se necesitan los ficheros de exportaciones acumulativas e incrementales de la BD anteriores.

$ exp userid=system/manager full=y inctype=complete constraints=Y file=full_export_filename


Acumulativo Exporta solo las tablas que han sido modificadas o creadas desde la ltima exportacin Acumulativa o Completa, y registra los detalles de exportacin para cada tabla exportada. Despus de una exportacin acumulativa, no se necesitan los ficheros de exportaciones incrementales de la BD anteriores.

$ exp userid=system/manager full=y inctype=cumulative constraints=Y file=cumulative_export_filename


Incremental Exporta todas las tablas modificadas o creadas desde la ltima exportacin Incremental, Acumulativa o Completa, y registra los detalles de exportacin para cada tabla exportada. Son interesantes en entornos en los que muchas tablas permanecen estticas por periodos largos de tiempo, mientras que otras varan y necesitan ser copiadas. Este tipo de exportacin es til cuando hay que recuperar rpidamente una tabla borrada por accidente.

$ exp userid=system/manager full=y inctype=incremental constraints=Y file=incremental_export_filename


La poltica de exportacin puede ser la siguiente: realizar una exportacin completa el da 1 (por ejemplo el domingo), y luego realizar exportaciones incrementales el resto de la semana. De este modo de lunes a sbado slo se exportarn aquellas tablas exportadas, ahorrando tiempo en el proceso.

3 Principios de la Recuperacin
Para entender los principios de la recuperacin, se necesita entender las estructuras de datos subyacentes utilizadas en la recuperacin.

3.1 Definiciones y Conceptos


Los ficheros redo log contienen los cambios realizados sobre la BD. Conviene presentar algunos conceptos relacionados con ellos.

Vector de Cambio describe un cambio simple en un bloque de datos de la BD. Entre otros datos, contiene el nmero de versin, el cdigo de la transaccin, y la direccin del bloque afectado. Registro Redo log es un conjunto de vectores de cambio que describen un cambio atmico sobre la BD. La transaccin es tambin la unidad de recuperacin. Evolucin de Redo log por da se puede calcular ejecutando el comando archive log list en dos das consecutivos y calculando la diferencia del nmero de secuencia de los ficheros redo log, multiplicado por el tamao de un fichero redo log:

SVRMGR> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination /opt/app/oracle/admin/demo/arch/arch.log Oldest online log sequence 3 Current log sequence 5
System Change Number, SCN es un dato que define la versin confirmada de la BD en este instante de tiempo. Cuando una transaccin es confirmada, se le asigna un SCN que la identifica unvocamente. Los ficheros redo log son marcados con dos SCN. Cuando se abre un nuevo fichero redo log se le marca con un SCN, low SCN, que es uno mas que el SCN mayor del anterior fichero redo log; y su high SCN es puesto a infinito. Los SCN tambin se asocian al fichero de control, ya que cuando se para una BD, un tablespace o fichero de datos, se almacena para cada fichero de datos su stop SCN en el fichero de control. Cambio de redo log es el proceso mediante el cual se deja de utilizar un fichero redo log y el LGWR combia al siguiente fichero redo log disponible. Se puede hacer con el comando alter system switch logfile;. Checkpoints son activados automticamente durante el funcionamiento normal de la instancia, pero pueden ser activados manualmente con el comando alter system checkpoint local o alter system checkpoint global dependiendo si nos referimos a la instancia en la que estamos, o si queremos que afecte a todas las instancias activas, respectivamente. Cada checkpoint lleva implicito un SCN, y Oracle asegura que todos los cmbios con un SCN menor que el del checkpoint dado han sido escritos en el disco.

3.2 Mtodos de Recuperacin


Existen varios mtodos de recuperacin, pero todos ellos se basan en la aplicacin de los registros de redo log.

Aplicacin de Redo Log Cuando una BD se arranca con el comando startup, la BD pasa por los estados nomount, mount y open. En este tercer estado, se verifica que se pueden abrir todos los ficheros de log y de datos. Si la BD se arranca por primera vez despus de una caida, se necesitar efectuar una recuperacin que consiste en dos pasos: avanzar la BD hacia adelante aplicando los registros redo log, deshacer las transacciones no confirmadas. Cada fichero de datos tiene en su cabecera el ltimo checkpoint efectuado, as como el fichero de control tambin lleva esa cuenta. El checkpoint lleva incluido el SCN. Este es conocido como SCN de inicio de fichero. Asociado a cada fichero de datos el fichero de control tiene el SCN de final, puesto inicialmente a infinito. El SCN de inicio se incrementa con cada checkpoint. Cuando la BD se para en modo normal o inmediato iguala el SCN de parada para cada fichero de datos al SCN almacenado en cada fichero de datos. Cuando se abre otra vez la BD se realizan dos comprobaciones. La primera es mirar si el contador de checkpoints en la cabecera de los ficheros de datos coincide con el correspondiente del fichero de control. Si es as, se compara el SCN de inicio de cada fichero de datos con el SCN de final almacenado en el fichero de control. Si son iguales no se necesita recuperacin en este fichero de datos. Como parte de la apertura se pone a infinito el SCN de final para ese fichero de datos. Si la BD se par con en modo abort no se ejecut el checkpoint y el SCN de fin para los fichero de datos est a infinito. As, durante la BD se abre, y suponiendo que el contador de checkpoints coincide, se comparan los SCN de inicio y de final, y como el ltimo es infinito se efectura una recuperacin aplicando los cambios almacenados en los ficheros redo log en lnea para avanzar la BD, y los registros de roll back de los segmentos de roll back para deshacer las transacciones no confirmadas. Si despus de parar la BD se reemplaza un fichero de datos por su copia de seguridad, al arrancar la BD Oracle detecta que el contador de checkpoints del fichero de datos no coincide con el almacenado en el fichero de control. As, se tendr que echar mano a los ficheros redo log archivados, empezando por aquel cuyo nmero de secuencia aparece en la cabecera del fichero de datos.

3.3 Recuperacin Fsica


La utilizacin de una copia de backup de ficheros de datos siempre necesita de una recuperacin fsica. Tambin es as cuando un fichero de datos se pone offline sin un checkpoint. Oracle detecta que se necesita una recuperacin fsica cuando el contador de checkpoints de la cabecera del fichero de datos no coincide con el correspondiente contador de checkpoints del fichero de control. Entonces se hace necesario el comando recover. La recuperacin

comienza en el SCN menor de los ficheros de datos en recuperacin, aplicando los registros de redo log a partir de l, y parando en el SCN de final mayor de todos los ficheros de datos. Existen tres opciones para realizar una recuperacion fsica. La primera es una recuperacin de BD donde se restaura la BD entera. La segunda es una recuperacin de tablespace donde, mientras una parte de la BD est abierta, se puede recuperar un tablespace determinado. Esto significa que sern recuperados todos los ficheros de datos asociados al tablespace. El tercer tipo es la recuperacin de un fichero de datos especfico mientras el resto de la BD est abierta. Requisitos para Utilizar Recuperacin Fsica La primera condicin que se ha de poner para poder recuperar fsicamente una BD es que sta se est utilizando en modo ARCHIVELOG. De otro modo, una recuperacin completa puede que no sea posible. Si trabajamos con la BD en modo NOARCHIVELOG, y se hace una copia semanal de los ficheros de la BD, se debera estar preparado para perder, en el peor de los casos, el trabajo de la ltima semana si sucede un fallo. Ya que los ficheros de redo log contendran un agujero y no se podia avanzar la BD hasta el intante anterior al fallo. En este caso el nico medio para reconstruir la BD es hacerlo desde un export completo, recreando el esquema de la BD e importando todos los datos. Recuperacin de la BD La BD debe estar montada pero no abierta. El comando de recuperacin es el siguiente:

RECOVER [AUTOMATIC] [FROM 'localizacion'] [BD] [UNTIL CANCEL] [UNTIL TIME fecha] [UNTIL CHANGE entero] [USING BACKUP CONTROLFILE]
Las opciones entre corchetes son opcionales:
AUTOMATIC

hace que la recuperacin se haga automticamente sin preguntar al DBA por el nombre de los ficheros redo log. Tambin se puede utilizar para este cometido el comando set autorecovery on/off. Los ficheros redo log deben estar en la localizacin fijada en LOG_ARCHIVE_DEST y el formato del nombre de los ficheros debe ser el fijado en LOG_ARCHIVE_FORMAT. FROM se utiliza para determinar el lugar donde estn los ficheros redo log, si es distinto del fijado en LOG_ARCHIVE_DEST. UNTIL sirve para indicar que se desea realizar una recuperacin incompleta, lo que implica perder datos. Solo se dar cuando se han perdido redo log archivados o el fichero de control. Cuando se ha realizado una recuperacin incompleta la BD debe

ser abierta con el comando alter database open resetlogs, lo que produce que los redo log no aplicados no se apliquen nunca y se inicialice la secuencia de redo log en el fichero de control. Existen tres opciones para parar la recuperacin: o UNTIL CANCEL permite recuperar un redo log cada vez, parando cuando se teclea CANCEL. o UNTIL TIME permite recuperar hasta un instante dado dentro de un fichero de redo log o UNTIL CHANGE permite recuperar hasta un SCN dado. o USING BACKUP CONTROLFILE utiliza una copia de seguridad del fichero de control para gobernar la recuperacin. Recuperacin de un tablespace La BD debe estar abierta, pero con el tablespace a recuperar offline. El comando de recuperacin es el siguiente:

RECOVER [AUTOMATIC] [FROM 'localizacion'] TABLESPACE nombre_tablespace [, nombre_tablespace]


Recuperacin de un Fichero de Datos La BD debe estar abierta o cerrada, dependiendo del fichero a recuperar. Si el fichero a recuperar es de un tablespace de usuario la BD puede estar abierta, pero con el fichero a recuperar offline. Si el fichero es del tablespace SYSTEM la BD debe estar cerrada, ya que no puede estar abierta con los ficheros del SYSTEM offline. El comando de recuperacin es el siguiente:

RECOVER [AUTOMATIC] [FROM 'localizacion'] DATAFILE nombre_fichero [, nombre_fichero]


Creando un Fichero de Control Si el fichero de control ha resultado daado y se ha perdido se puede utilizar una copia de seguridad del mismo o crear uno nuevo. El comando de creacin de un nuevo fichero de control es CREATE CONTROLFILE. Este comando se puede ejecutar slo con la BD en estado nomount. La ejecucin del comando produce un nuevo fichero de control y el montaje automtico de la BD. Un comando interesante que ayuda a mantener los ficheros de control a salvo es el siguiente:

SVRMGR> alter database backup controlfile to trace;

que produce un script que puede ser utilizado para generar un nuevo fichero de control y recuperar la BD, en caso necesario. El fichero de traza generado es el siguiente:

Dump file /opt/app/oracle/admin/demo/udump/demo_ora_515.trc Oracle7 Server Release 7.3.2.3.0 - Production Release With the distributed, replication and Spatial Data options PL/SQL Release 2.3.2.3.0 - Production ORACLE_HOME = /opt/app/oracle/product/7.3.2 System name: SunOS Node name: cartan Release: 5.5 Version: Generic Machine: sun4m Instance name: demo Redo thread mounted by this instance: 1 Oracle process number: 7 Unix process pid: 515, image: oracledemo Fri May 15 11:41:19 1998 Fri May 15 11:41:19 1998 *** SESSION ID:(6.2035) 1998.05.15.11.41.19.000 # The following commands will create a new control file and use it # to open the database. # No data other than log history will be lost. Additional logs may # be required for media recovery of offline data files. Use this # only if the current version of all online logs are available. STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "DEMO" NORESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 2 MAXDATAFILES 30 MAXINSTANCES 1 MAXLOGHISTORY 100 LOGFILE GROUP 1 '/export/home/oradata/demo/redodemo01.log' SIZE 2M, GROUP 2 '/export/home/oradata/demo/redodemo02.log' SIZE 2M, GROUP 3 '/export/home/oradata/demo/redodemo03.log' SIZE 2M DATAFILE '/export/home/oradata/demo/system01.dbf', '/export/home/oradata/demo/rbs01.dbf',

'/export/home/oradata/demo/rbs02.dbf', '/export/home/oradata/demo/rbs03.dbf', '/export/home/oradata/demo/temp01.dbf', '/export/home/oradata/demo/tools01.dbf', '/export/home/oradata/demo/users01.dbf' ; # Recovery is required if any of the datafiles are restored backups, # or if the last shutdown was not normal or immediate. RECOVER DATABASE # Database can now be opened normally. ALTER DATABASE OPEN;

3.4 Recuperacin Lgica


Oracle dispone de la herramienta import para restaurar los datos de una BD a partir de los ficheros resultados de un export. Import lee los datos de los ficheros de exportacin y ejecuta las sentencias que almacenan creando las tablas y llenndolas de datos. Parmetros del Import Parmetro
USERID BUFFER FILE SHOW IGNORE GRANTS INDEXES ROWS FULL FROMUSER TOUSER TABLES RECORDLENGTH

Defecto indefinido dependiente del SO expdat.dmp No Yes Yes Yes Yes No Indefinido Indefinido indefinido dependiente

Descripcin el username/password del usuario que efectua el import. El tamao en bytes del buffer utilizado. el nombre del fichero de exportacin a importar. indica si se muestran los contenidos del fichero de exportacin, sin importar ningn dato. indica si ignorar los errores producidos al importar un objeto que ya existe en la BD. indica si se importan tambin los derechos. indica si se importan tambin los ndices. indica si se importan tambin las filas de las tablas. indica si se importan el fichero entero. una lista de los usuarios cuyos objetos se han exportado. una lista de los usuarios a cuyo nombre se importan los objetos. la lista de tablas a importar. la longitud en bytes del registro del fichero.

del SO
INCTYPE COMMIT PARFILE

indefinido No indefinido

el tipo de import incremental (SYSTEM o RESTORE). indica si se efectua un commit despus de importar cada fila. Por defecto, import efectua un commit despus de cargar cada tabla. el fichero de parmetros.

Para importar un export incremental se puede efectuar la siguiente secuencia de pasos: 1. Utilizar la copia ms reciente del import para restaurar las definiciones del sistema:

2. 3. $ imp userid=sys/passwd inctype=system full=Y file=export_filename


4. Poner los segmentos de rollback online. 5. Importar el fichero de exportacin completa ms reciente:

6. 7. $ imp userid=sys/passwd inctype=restore full=Y file=filename


8. Importar los ficheros de exportacin en modo acumulacin desde la exportacin completa ms reciente, en orden cronolgico:

9. 10. $ imp userid=sys/passwd inctype=restore full=Y file=filename


11. Importar los ficheros de exportacin en modo incremental desde la exportacin completa o acumulativa ms reciente, en orden cronolgico:

12. 13. $ imp userid=sys/passwd inctype=restore full=Y file=filename

Export / Import de una base de Datos Oracle


12 noviembre, 2012 Deja un comentario Ir a los comentarios Una de las cosas que ms me gustan de la programacin es el manejo de la base de datos, as como la programacin en lenguaje PL/SQL y un jugar un poco a hacer el DBA. El otro da tuve que hacer un dump o la exportacin de una base de datos completa (schema, sus objetos -tablas, sinnimos, etc, y sus datos) para importarla en otra mquina donde otra instancia de Oracle se ejecuta. Para los que conocen un poco o incluso no esta operacin aunque delicada, es simple. Dos comandos nos permiten exportar y recuperar lo que necesitamos : expdp e impdp. Es lo que se nos ensea de base. Pero por ejemplo no se nos dice que antes de ejecutar estas

operaciones sera bueno saber el tamao que ocupa los objetos que vamos a exportar, y si tenemos el espacio necesario en la base de datos de destinacin. Pues voil el problema que me ocurri que das. En el mundo real las BDD pueden tener tamaos enormes, (31 Gb en mi caso). El no conocer el espacio libre del tablespace destinacin puede presentar problemas.

Efectivamente, cuando no se analiza primero el espacio disponible y se lanza el proceso de importacin, el mensaje que Oracle muestra es el siguiente:
ORA-39171: Job is experiencing a resumable wait. ORA-01691: unable to extend lob segment NEW_SCHEMA.SYS_LOB0000747924C00002$$ by 8192 in tablespace CMS_REFONTE ORA-39171: Job is experiencing a resumable wait. ORA-01691: unable to extend lob segment NEW_SCHEMA.SYS_LOB0000747924C00002$$ by 8192 in tablespace CMS_REFONTE ORA-39171: Job is experiencing a resumable wait. ORA-01691: unable to extend lob segment NEW_SCHEMA.SYS_LOB0000747924C00002$$ by 8192 in tablespace CMS_REFONTE ORA-39171: Job is experiencing a resumable wait.

Y el problema es que el mensaje se muestra durante un buen tiempo, pero el proceso no se aborta. Para ms informacin sobre este problema, pueden ver ac y ac.

Para evitar esto, lo primero es lanzar el proceso de exportacin en modo simulacin. Esto nos permitir calcular el tamao que necesitaremos. El comando expdp, al que debemos indicarle : 1. schema a exportar : atributo SCHEMAS 2. los elementos a exportar (o a ignorar en este caso) : atributo EXCLUDE 3. directorio donde el archivo .dmp (resultado de la exportacin) : atributo DIRECTORY 4. Y EL ATRIBUTO PARA SIMULAR EL CALCULO -> ESTIMATE_ONLY=y
12:17 joan@jomaora:~% expdp scott/tiger@sid DIRECTORY=EXPORT schemas=SCHEMA_OLD ESTIMATE_ONLY=y EXCLUDE=synonym,statistics Export: Release 11.2.0.3.0 - Production on Wed Oct 24 12:18:06 2012 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": scott/********@sid DIRECTORY=EXPORT schemas=SCHEMA_OLD ESTIMATE_ONLY=y EXCLUDE=synonym,statistics Estimate in progress using BLOCKS method... Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA . estimated "SCHEMA_OLD"."TITULOS" 2.796 GB . estimated "SCHEMA_OLD"."AUTORES" 1.125 GB . estimated "SCHEMA_OLD"."AMTERIAS" 35 MB . estimated "SCHEMA_OLD"."USUARIOS" 21 MB . estimated "SCHEMA_OLD"."PRESTAMOS" 19 MB . estimated "SCHEMA_OLD"."MULTAS" 11 MB ...... Total estimation using BLOCKS method: 4.079 GB Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at 12:18:11

Al final obtenemos el espacio que necesitaremos. Luego slo debemos ir a ver en la base de datos de destinacin, si hay el suficiente espacio en el tablespace donde vamos a crear el nuevo schema. Para esto, un query en modo DBA es suficiente:
SQL> SELECT ________a.TABLESPACE_NAME, ________a.BYTES / 1024 / 1024 MBused, b.BYTES / 1024 / 1024 MBfree, ________100 - round(((a.BYTES)/(a.BYTES + b.BYTES))*100,0) percent_free ____FROM ________(select TABLESPACE_NAME, sum(BYTES) BYTES from dba_data_files group by TABLESPACE_NAME) a, ________(select TABLESPACE_NAME, sum(BYTES) BYTES , max(BYTES) largest from dba_free_space group by TABLESPACE_NAME) b ____WHERE a.TABLESPACE_NAME=b.TABLESPACE_NAME;

TABLESPACE_NAME_________MBUSED______MBFREE______PERCENT_FREE ----------------------- ----------- ----------- -----------TABLESP1________________71680_______2395.125_____3 SYSAUX___________________1440_______89.75________6 SYSTEM___________________1610_______507.5625____24 TABLESP2_______________171.25_______8.375________5 TABLESP3________________40960_______29283.5_____42

Teniendo ya esta informacin, y analizando los espacios disponibles, nos queda seleccionar el tablespace correcto para crear nuestro nuevo schema, y luego hacer el import. En este caso, el tablespace TABLESP3 es el que mas espacio tiene (29 Gb). Efectuemos el export primero:
joan@jomaora:~% expdp scott/tiger@sid DIRECTORY=EXPORT schemas=SCHEMA_OLD ESTIMATE_ONLY=y EXCLUDE=synonym,statistics LOGFILE=SCHEMA_OLD_exp.log DUMPFILE=SCHEMA_OLD_exp.dmp

Para crear el schema hacemos:


create user SCHEMA_NEW identified by SCHEMA_NEW default tablespace TABLESP3 temporary tablespace TEMP QUOTA UNLIMITED ON TABLESP3; grant connect to SCHEMA_NEW; grant resource to SCHEMA_NEW;

Y ya con el schema creado, hacemos:


joan@jomaora:~% impdp admin/123@sid2 directory=EXPORT dumpfile=SCHEMA_OLD_exp.dmp logfile=SCHEMA_NEW_imp.dmp remap_schema=SCHEMA_OLD:SCHEMA_NEW

Los atributos de este comando son: 1. DIRECTORY: directorio donde esta el archivo a dmp importar. 2. DUMPFILE: Nombre del archivo a importar (el mismo que se da en el comando expdp) 3. LOGFILE: Archivo que permite guardar los logs de la operacin. 4. REMAP_SCHEMA: Debe indicarse el nombre del schema de origen : nombre del schema destinacin.

S-ar putea să vă placă și