¿Cómo transferir datos usando los comandos expdp e impdp?


29

Soy un novato de Oracle, y mi intención es transferir todos los datos y metadatos de un esquema a otro dentro de una base de datos Oracle. Estoy planeando usar bombas de datos expdpy impdpcomandos. Tengo preguntas sobre esto:

  • ¿Puedo crear un esquema de destino sin un usuario o debería crear un usuario primero (que también crea un esquema)?
  • ¿Puedo ejecutar expdpy impdpcomandos usando la cuenta SYS (como sysdba)? ¿Es ese un método preferido?
  • ¿Esta declaración toma todos los objetos (datos y metadatos) de un esquema y los mueve a un esquema diferente?

    expdp \"/ as sysdba\" schemas=<schemaname> directory=dumpdir dumpfile=<schemaname>.dmp logfile=expdp_<schemaname>.log  

    Entonces, ¿el esquema de destino es una copia exacta del esquema de origen después del impdpcomando?

Respuestas:


31

impdp creará el usuario si aún no está presente, por lo que no tiene que preocuparse por ello a menos que no sea lo que desea.

No ejecute impdbo expdpcomo sysdba, solo haga eso si el soporte de Oracle lo solicita en circunstancias específicas. Use un usuario común para eso, uno al que se le haya otorgado el dbarol, por ejemplo. (Existen los [IMPORT|EXPORT]_FULL_DATABASEprivilegios específicos para este tipo de cosas, también deberá otorgar acceso a los objetos del directorio de Oracle).

Una exportación de esquema completo (metadatos y contenido) se vería así:

expdp user/pass schemas=<schemaname> directory=dumpdir \
      dumpfile=<schemaname>.dmp \
      logfile=expdp_<schemaname>.log

Si desea importar a un usuario / esquema diferente (la base de datos de destino puede ser la misma que la fuente), puede usar:

impdp user/pass schemas=schema1 directory=dumpdir \
      remap_schema=schema1:schema2 \
      dumpfile=schema1.dmp \
      logfile=impdp_schema2.log

Si no desea una importación completa, puede configurar algunos filtros tanto en datos como en metadatos. Consulte Filtrado durante las operaciones de importación .

La Guía de utilidades tiene todos los detalles, le recomiendo leer al menos la parte general.


2

Para importar las tablas truncadas, es decir, solo desea que los datos se importen de nuevo a la tabla:

impdp user/pass TABLES=dept DIRECTORY=TEST_dir dumpfile=TEST.dmp logfile=expdpTEST.log TABLE_EXISTS_ACTION=REPLACE

Encima de mi mesa está la deptque quiero importar. Lo he truncado antes. Desde el archivo de volcado que es TEST.dmp, y logfileque es expdpTEST.log, quiero que solo se importen los datos (la estructura de la tabla será la misma, por lo que usaremos el parámetro TABLE_EXISTS_ACTION).

Si ha truncado 2 tablas, por ejemplo , empy dept, y la emptabla tiene dept_idcomo clave externa, debe importar deptprimero la tabla y luego la emptabla para evitar errores durante la importación.

más información http://satya-dba.blogspot.in/2009/05/datapump.html

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.