08 septiembre 2009

Realizar un import en un tablespace distinto al del export

Hoy toca una de Oracle.


Un cliente bastante "tocapelotas" me dice que un esquema y todos sus objetos deben de ir colocados en un tablespace que el ha creado para tal proposito y nuestro proceso de instalación los ha dejado en el tablespace SYSTEM (tablespace por defecto en Oracle).

Pero el problema residia en que el export generado para luego realizar el import en los servidores del cliente sus objetos estaban en el tablespace SYSTEM y cuando realizabas el import todos los objetos iban a ese tablespace en lugar de ir al que quería el cliente. La solución para este problema lo encontré indagando por la red y he aquí la solución:

1/ Crear un usuario asignadole un tablespace destino:
create user usr_destino identified by pass_destino default tablespace tbs_destino temporary tablespace tmp;

2/ Darle al usuario solamente permisos de connect:
grant connect to usr_destino;

3/ El usuario creado ha de tener cuota ilimitada en el tablespace destino:
alter user usr_destino quota unlimited on tbs_destino;

4/ El usuario creado no ha de tener cuota en el tablespace origen:
alter user usr_destino quota 0k on tbs_origen;

5/ Hacer el import del dmp con el usuario system o con un usuario con permisos dba.

6/ Darles permiso de resource al usuario.
grant resource to usr_destino;




No hay comentarios: