200 likes | 407 Views
Exportación e Importación EXP/IMP Oracle. David E. Abril Molina Oracle III Universidad Libre. ¿QUÉ ES UN EXPORT/IMPORT EN ORACLE?
E N D
Exportación e Importación EXP/IMP Oracle David E. Abril Molina Oracle III Universidad Libre
¿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 "RowMigration & RowChaining" • 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 exportscompletos, incrementales y acumulativos. ·Los backupsrelizados 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.
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.
Para importar un export incremental se puede efectuar la siguiente secuencia de pasos: • Utilizar la copia más reciente del import para restaurar las definiciones del sistema: $ imp userid=sys/passwdinctype=system full=Y file=export_filename 2. Poner los segmentos de rollbackonline. 3. Importar el fichero de exportación completa más reciente: $ imp userid=sys/passwdinctype=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/passwdinctype=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/passwdinctype=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: expdpscott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR dumpfile=EMP_DEPT.dmp logfile=expdpEMP_DEPT.log impdpscott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR dumpfile=EMP_DEPT.dmp logfile=impdpEMP_DEPT.log Por schemas: SQL: expdpscott/tiger@db10g schemas=SCOTT directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log impdpscott/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 Gracias !!