Presentacion utilitario EXP/IMP Oracle + EXPDP/IMPDT (Data Pump)
Download
Report
Transcript Presentacion utilitario EXP/IMP Oracle + EXPDP/IMPDT (Data Pump)
¿QUÉ ES UN EXPORT/IMPORT EN ORACLE?
Export/Import es una utilidad de Oracle para realizar backups lógicos de Oracle (
y luego poderlos restaurar ). Esto significa que copian el contenido de la BD pero
sin almacenar la posición física de los datos. Para realizar estas operaciones la
base de datos tiene que estar abierta.
Para crear el fichero de backup se utiliza la utilidad export y para importar el
contenido o recuperar la base de datos se realiza import.
Este tipo de backup se utiliza en los siguientes casos:
Para realizar backups de bases de datos ( pequeñas/medianas bases de datos )
Para corregir "Row Migration & Row Chaining"
Detectar alguna corrupción en la base de datos, puesto que al hacer el export se
lee toda la bd.
Para "migrar" una base de datos a otro servidor
Backups Lógicos
Se realizan con la herramienta export que copia los datos
y la definición de la BD en un fichero en un formato
interno de Oracle.
Para realizar un export la BD debe estár 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
transacción durante el proceso de export. Esto se puede
conseguir si se abre la BD en modo RESTRICT.
Ventajas
Entre las ventajas de efectuar un export están las siguientes:
·Se puede detectar la corrupción 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 fácil 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 máquinas.
Una de las desventajas de realizar backups lógicos con export es que son
mucho más lentos que los backups físicos.
Parámetros EXP
Parámetros de
Export
Parámetro
Defecto
Descripción
USERID
indefinido
el username/password del usuario que efectua el export.
BUFFER
dependiente del SO
El tamaño en bytes del buffer utilizado.
FILE
expdat.dmp
el nombre del fichero destino.
GRANTS
Yes
indica si se exportan también los derechos.
INDEXES
Yes
indica si se exportan también los índices.
ROWS
Yes
indica si se exportan también las filas de las tablas, o sólo las
definiciones de las tablas.
CONSTRAINTS
Yes
indica si se exportan también las restricciones.
COMPRESS
Yes
indica si se exporta en modo comprimido.
FULL
No
indica si se exporta la BD entera.
OWNER
usuario actual
una lista de usuarios cuyos objetos se quieren exportar.
TABLES
indefinido
la lista de tablas a exportar.
RECORDLENGTH
dependiente del SO
la longitud en bytes del registro del fichero.
INCTYPE
indefinido
el tipo de export incremental.
RECORD
Yes
indica si se anota el export incremental en las tablas
SYS.INCVID y en SYS.INCEXP.
PARFILE
indefinido
el fichero de parámetros.
Modos de Export
Existen tres modos de realizar una exportación 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 más los clusters, enlaces de BD, vistas, sinónimos
privados, secuencias, procedimientos, etc. del usuario.
Modo BD Entera
Además de todo lo del modo Usuario, exporta los roles, todos los sinónimos, los
privilegios del sistema, las definiciones de los tablespaces, las cuotas en los
tablespaces, las definiciones de los segmentos de rollback, las opciones de auditoría del
sistema, todos los disparadores y los perfiles.
Puede ser dividido en tres casos: Completo, Acumulativo e Incremental.
Estos dos últimos se toman menos tiempo que el completo, y permiten exportar sólo
los cámbios en los datos y en las definiciones.
Completo
Exporta todas las tablas de la BD e inicializa la información sobre la exportación incremental de cada
tabla. Después de una exportación 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 exportación Acumulativa o
Completa, y registra los detalles de exportación para cada tabla exportada. Después de una
exportación 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 exportación Incremental, Acumulativa o
Completa, y registra los detalles de exportación para cada tabla exportada. Son interesantes en
entornos en los que muchas tablas permanecen estáticas por periodos largos de tiempo, mientras que
otras varían y necesitan ser copiadas. Este tipo de exportación es útil cuando hay que recuperar
rápidamente una tabla borrada por accidente.
$ exp userid=system/manager full=y inctype=incremental constraints=Y
file=incremental_export_filename
La política de exportación puede ser la siguiente:
Realizar una exportación completa el día 1 (por ejemplo el
domingo), y luego realizar exportaciones incrementales el
resto de la semana. De este modo de lunes a sábado sólo
se exportarán aquellas tablas exportadas, ahorrando
tiempo en el proceso.
Recuperación Lógica
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 exportación y
ejecuta las sentencias que almacenan creando las tablas y
llenándolas de datos.
Parámetros del Import
Parámetro Defecto
USERID indefinido
dependiente
BUFFER
del SO
FILE
expdat.dmp
Descripción
el username/password del usuario que efectua el import.
SHOW
No
indica si se muestran los contenidos del fichero de exportación, sin importar ningún dato.
IGNORE
Yes
indica si ignorar los errores producidos al importar un objeto que ya existe en la BD.
GRANTS
INDEXES
ROWS
FULL
FROMUSE
R
TOUSER
TABLES
INCTYPE
Yes
Yes
Yes
No
indica si se importan también los derechos.
indica si se importan también los índices.
indica si se importan también las filas de las tablas.
indica si se importan el fichero entero.
Indefinido
una lista de los usuarios cuyos objetos se han exportado.
Indefinido
indefinido
indefinido
una lista de los usuarios a cuyo nombre se importan los objetos.
la lista de tablas a importar.
el tipo de import incremental (SYSTEM o RESTORE).
indica si se efectua un commit después de importar cada fila. Por defecto, import efectua
un commit después de cargar cada tabla.
COMMIT No
El tamaño en bytes del buffer utilizado.
el nombre del fichero de exportación a importar.
Para importar un export incremental se puede efectuar la siguiente
secuencia de pasos:
1.Utilizar la copia más reciente del import para restaurar las definiciones del
sistema:
$ imp userid=sys/passwd inctype=system full=Y file=export_filename
2. Poner los segmentos de rollback online.
3. Importar el fichero de exportación completa más reciente:
$ imp userid=sys/passwd inctype=restore full=Y file=filename
4. Importar los ficheros de exportación en modo acumulación desde la
exportación completa más reciente, en orden cronológico:
$ imp userid=sys/passwd inctype=restore full=Y file=filename
5. Importar los ficheros de exportación en modo incremental desde la
exportación completa o acumulativa más reciente, en orden cronológico:
$ imp userid=sys/passwd inctype=restore full=Y file=filename
Oracle Data Pump in Oracle Database 10g
Oracle Data Pump es una nueva, alternativa más rápida y
más flexible a la "exp" y los servicios públicos "demons"
que se utiliza en las versiones anteriores de Oracle.
Además de la importación de base de datos y la
funcionalidad de exportación de la bomba proporciona un
PL / SQL API y el apoyo a las tablas externas.
Diferencia entre EXP y EXPDP 10g
Hay muchas diferencias entre el utilitario convencional EXP y el nuevo
utilitario EXPDP. Primero que todo aclaramos, que ambos utilitarios
conviven en la versión 10g.
El EXPDP es parte de el "DATA PUMP UTILITY", y sirve para exportar
información de la base de datos. El IMPDP hace la función contraría y la
equivalente al clásico IMP. El DATA PUMP es un componente de
software que cuenta con interface de línea de comandos, archivo de
parámetros, línea interactiva y adicionalmente se le puede hallar dentro
del Database Control ( Herramienta Web Administrativa de la base de
datos ).
El DATA PUMP EXPORT e IMPORT pueden:
•Generar un respaldo ó importación total de la base de datos ( FULL )
•Trabajar a nivel de esquema
•A nivel de tabla
•Tablespaces
•Tablespaces transportable
EXPDP cuenta con un grupo de cláusulas que permite tener un mayor control, sobre
lo que queremos exportar. Nos permite a través de la clausula EXCLUDE por ejemplo,
indicarle que no exporte un conjunto de objetos. Por ejemplo EXCLUDE=PACKAGE ,
no exportaría los paquetes del esquema o la base de datos que estamos
importando. Otro ejemplo EXCLUDE=TABLE:"LIKE '%TMP%'", no exportaría las tablas
que cumplan con contengan las letras "TMP".
La clausula INCLUDE, me permite indicarle que incluya sólo aquel grupo de objetos
que cumplan con una condición dada. INCLUDE= tipo_objeto[:"expresión"].
La clausula CONTENT, establece que tipo de contenido deseo exportar ALL,
METADATA_ONLY, DATA_ONLY.
Primeros pasos
Se debe desbloquear la cuenta sobre la cual vamos hacer la exportación por ejemplo
la cuenta de Scott y crear un directorio de objetos que pueden acceder. El objeto de
la guía es sólo un puntero a un directorio físico, creando en realidad no crea el
directorio físico en el sistema de archivos.
SQL:
CONN sys/password@db10g AS SYSDBA
ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK;
GRANT CREATE ANY DIRECTORY TO scott;
CREATE OR REPLACE DIRECTORY test_dir AS '/u01/app/oracle/oradata/';
GRANT READ, WRITE ON DIRECTORY test_dir TO scott;
Exportaciones / Importaciones
Por tablas:
SQL:
expdp scott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR dumpfile=EMP_DEPT.dmp
logfile=expdpEMP_DEPT.log
impdp scott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR dumpfile=EMP_DEPT.dmp
logfile=impdpEMP_DEPT.log
Por schemas:
SQL:
expdp scott/tiger@db10g schemas=SCOTT directory=TEST_DIR dumpfile=SCOTT.dmp
logfile=expdpSCOTT.log
impdp scott/tiger@db10g schemas=SCOTT directory=TEST_DIR dumpfile=SCOTT.dmp
logfile=impdpSCOTT.log
Base de datos completa
SQL:
expdp system/password@db10g full=Y directory=TEST_DIR dumpfile=DB10G.dmp
logfile=expdpDB10G.log
impdp system/password@db10g full=Y directory=TEST_DIR dumpfile=DB10G.dmp
logfile=impdpDB10G.log
Con la opción: full=Y, nos estamos llevando un respaldo completo d ella base de datos.
Infografía
http://www.infor.uva.es/~jvegas/cursos/bd/oraback/oraback.html
http://www.orasite.com/tutoriales/export-import-oracle-9i.html