Es decir, nos hemos traido una BBDD de Oracle desde el cliente en un archivo .dmp (ya explicamos hace unos días como se creaban estos ficheros .dmp) y ahora queremos meterla (la BBDD, degeneraus!) en nuestro Oracle.
FACIL, y además sin utilizar el Toad. Abre el MSDOS, te pones en el directorio donde tengas el export. Normalmente, un fichero con extensión “.dmp”.
Ahora, por otro lado, abres el Security Manager de Oracle, entrando como administrador al servidor donde quieres hacer la carga. (Ejemplo: user->Usuario password->Pas servicio->Service).
Nos situamos en seguridad–>usuarios. Selecciona el usuario en el que quieras cargar el export (como ejemplo utilizaremos el esquema Cargas) y pulsa botón derecho, en el menu contextual seleccionamos “Crear como” (“Create like” en marciano) Y le ponemos el mismo nombre y password que tiene el usuario que hemos utilizado de origen (trankis, que no peta, seguir leyendo y vereis porque). Lo dejas así, no pulses en aplicar, ni en aceptar ni en ná. Es decir, sin crearte una copia del usuario vamos a dar el paso siguiente, que es eliminarlo. Te vas a MSDOS y tecleas:
- c:\>sqlplus Usuario/Pas@Service
Con ello te conectas a la base de datos mediante SQL*Plus. En el prompt tecleas:
- sql>drop user cargas cascade;
[!] ah! no la cagues como yo y pon al final de la linea el ; que NO es decoracion!
Le damos al intro y al de unos segundicos nos aparecerá algo como “usuario borrado” o su equivalente en marciano. Que no! Que no me se ha ido la olla, trankilos. ¿No te acuerdas que antes de eliminar al usuario Cargas, desde el Security Manager de oracle le hemos dado al Create Like? je je pues eso, vete de nuevo al Security Manager (recuerda que lo tienes abierto) y ejecuta el “Crear como” que tienes abierto desde el primer paso. Simplemente pulsas aplicar, y … tatxan! aparecera un mensajiko que diga “usuario creado correctamente” (o su equivalente en marciano).
Una vez creado, seleccionas el usuario. En la parte derecha, se abriran varias pestañas. Te pones en la de roles/privilegies. Seleccionas tipo de privilegio->privilegios de sistema. En la parte de abajo seleccionas el único que hay y le das a la flecha que apunta hacia arriba (quitar ese privilegio) y le das al aplicar.
Ahora te posicionas en la pestaña de Cuotas, y compruebas que los tablespace para ese esquema más el temporal estan unlimited, sino, eliges unlimited para todos los tablespaces asignados al usuario más el temporal (hay un pequeño bug en el Oracle, ya que normalmente si le clickas directamente a cuotas sin cambiar de usuario no sale nada, para que te salga, simplemente miras la cuota de otro usuario cualquiera y luego vuelve al usuario que te interesa). Le das otra vez al apply.
Ahora te pasas a la ventana de Msdos en la que tenias el SQL*Plus y escribes:
osea que nos vamos, que salimos, que cerramos el SQL*Plus
ahora te vas al msdos y tecleas:
Para ORACLE 8:
- c:\>imp80 Usuario/Pas@Service file=archivo.dmp log=kk.log fromuser=EsquemaOrigen touser=cargas commit=y ignore=y
Para ORACLE 9i:
- c:\>imp Usuario/Pas@Service file=archivo.dmp log=kk.log fromuser=EsquemaOrigen touser=cargas commit=y ignore=y
esto hace que se cargue desde el export (archivo.dmp) todos los objetos del usuario (EsquemaOrigen, cliente origen del export en el cliente) sobre el nuestro usuario (Cargas, usuario que nosotros utilizamos).
Cuando termine, que tarda un ratiko, y tras verificar que no produce errores, te vas al SQL worksheet de oracle y lanza la siguiente instrucción:
- select ‘alter index ‘||index_name||’ rebuild tablespace ayra_idx;’ from user_indexes where tablespace_name<>‘AYRA_IDX’;
Esto genera las sentencias SQL necesarias para para mover los indices a su ubicación correcta. (Aunque desde la instalacion del Oracle 9i se cambio la forma de hacer el export, o bien se cambio la configuración del oracle en nuestro servidor o por lo que sea para que este paso no fuera necesario y no hacerlo ya que lo hace solo anteriormente, de todas maneras si te toca hacer un export, con consultarle al vguru de Oracle del curro en el que estes, si hay o no hay que hacerlo vale). Te copias todas esas sentencias y las ejecutas con el propio SQL WorkSheet. Cuando termine estará listo.
…. y con esto y un bizkotxo hasta mañana a las 8!