Importar Tablespaces

Quisiera que me ayudaran para saber los parámetros que debo utilizar para realizar el EXPORT/IMPORT de un tablespace en especifico, sin necesidad de hacer un Full export o full import.
Los tablespaces ya los tengo armados en una Base de Datos, pero se encuentran vacíos por lo que quiero realizar el import tomándolo de una Base de datos de otro servidor.

1 respuesta

Respuesta
1
No puedes exportar un tablespace simplemente e importarlo en otra base de datos (en realidad si, pero y a te comentaré).
Las opciones que hay son exp/imp de tablas, esquemas (todos los objetos de un usuario) y full.
No se cual es la version de base que tengas pero esas son las opciones "normales" que tienes, que si ejecutas EXP HELP=YES, va a tirarte las referencias del comando.
Si quieres exportar todos los objetos de un usuario tienes que hacer algo así:
EXP usuario_dba_u_operador@db
FILE=/ruta/archivo.dmp FILE=/ruta/archivo.log OWNER=usuario_dueño_de_objetos
Y el import:
IMP FROMUSER=(usuario_dueño_de_objetos) TOUSER=(puede_ser_otro_usuario) ILE=/ruta/archivo.dmp FILE=/ruta/archivo.log
La alternativa de la que hablaba más arriba tiene que ver con los tablespaces transportables. El procedimiento cambia porque en realidad no se genera un archivo dmp con los datos y los metadatos, sino que sólo se generan los metadatos y hay que copiar (y transferir) todos los datafiles del tablespace en cuestión.
Para poder transferir un tablespace hay que verificar que esté autocontenido (puede haber índices o tablas referenciadas en otros tablespaces)
1-   (SERVIDOR ORGIEN) El chequeo se hace con EXEC DBMS_TTS.TRANSPORT_SET_CHECK(ts_list => ('TBS_DATOS, TBS_INDICES'), incl_constraints => TRUE);
2- (SERVIDOR ORGIEN) Si está todo autocontenido (se verifica en SELECT * FROM transport_set_violations), hay que poner el tablespace en READ ONLY para poder generar el archivo de metadatos.
3-  EXP usuario_sysdba@db as sysdba TRANSPORT_TABLESPACE=y
TABLESPACES=(TBS_DATOS, TBS_INDICES)
FILE=/ruta/archivo.dmp FILE=/ruta/archivo.log
4- (SERVIDOR ORGIEN) Poner el tablespace en READ WRITE para que puedan seguir trabajando (SERVIDOR ORIGEN
5-  Importar el tablespace (todos los usuarios en cuestion tienen que existir)
IMP usuario_sysdba@db as sysdba TRANSPORT_TABLESPACE=y
TABLESPACES=(TBS_DATOS, TBS_INDICES)
FILE=/ruta/archivo.dmp FILE=/ruta/archivo.log
6- (SERVIDOR NUEVO) poner el tablespace en modo READ WRITE.
PD: Si sólo tienes unos pocos usuarios, es más fácil usar el método el exp normal con la lista de usuarios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas