1. Introducción
Después de instalar con más pena que gloria el dichoso Oracle 12C, hoy intento abrir la pantallita con el navegador a la dirección https://localhost:5500/em y no encuentra el servidor. Tierra trágame!.
Despues de buscar en Google, encuentro esta página nada aclaradora de Oracle, donde me encuentro con este código, que solamente voy a utilizar una línea:
Ahora, abro una ventana y ejecuto
y ya puedo acceder. Parece ser que así se arranca el servicio.
Tengo que restaurar 2 bases de datos Oracle. Para ello se me proporciona estos ficheros:
Despues de buscar en Google, encuentro esta página nada aclaradora de Oracle, donde me encuentro con este código, que solamente voy a utilizar una línea:
#!/bin/ksh -p . /lib/svc/share/smf_include.sh export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export PATH=$PATH:$ORACLE_HOME/bin function startup { dbstart $ORACLE_HOME } function shutdown { dbshut $ORACLE_HOME } case $1 in start) startup ;; stop) shutdown ;; *) echo "Usage: $0 { start | stop }" >&2 exit $SMF_EXIT_ERR_FATAL ;; esac exit $SMF_EXIT_OK
Ahora, abro una ventana y ejecuto
dbstart $ORACLE_HOME
y ya puedo acceder. Parece ser que así se arranca el servicio.
Tengo que restaurar 2 bases de datos Oracle. Para ello se me proporciona estos ficheros:
2 Ficheros de parámetros
- imp_EMPRESA.PAR
- imp_ADE_EMPRESA.PAR
1 Fichero de datos de una copia de seguridad
- EMPRESA_01.DUMP
4 Ficheros de datos de otra copia de seguridad
- ADE_EMPRESA_GTTL_01.dmp
- ADE_EMPRESA_GTTL_02.dmp
- ADE_EMPRESA_GTTL_03.dmp
- ADE_EMPRESA_GTTL_04.dmp
2 Ficheros log
- ADE_EMPRESA_GTTL.log
- exp_EMPRESA.log
2. Instrucciones previas
1. Se nos requiere tener instalada una versión de oracle 11 ó 12. Que en el post anterior se cargó.
2. Parece ser que es conveniente crear algun ROL. Para ello entrar en el SQL DEVELOPER y darle
CREATE ROLE LECTORES NOT IDENTIFIED;
3. Puede que pida otro ROLE. Si hace falta se debería crear de la misma manera.
4. Es aconsejable crear estos TABLESPACEs para la BD de gestión. siendo los marcado en rojo los mas importantes:
DATOS10, DATOS11, DATOS12,
INDICES10, INDICES11,
STAT, LOBSTS, USERS, TOOLS
Se nos indica que solo el tablespace USER debe ser creado y con un espacio de 40 GB y expandible.
NOTA: El tablespace USER ya está creado por omisión cuando instalamos Oracle 12C!!
5. Para la BD Documental se piden estos TABLESPACEs:
ARCHDIG, LOBDTS, LOBIDX,
INDICES, DATOS
Pero estamos en la misma situación, ya que se arreglar para utilizar solamente el tablespace USER definido anteriormente. Pero como no quiero estropear la instalación que tanto me costó hacer, voy a crearme un tablespace llamado XIMOTS.
6. Para crear un tablespace se utiliza la orden en el SQL Developer:
CREATE TABLESPACE XIMOTS DATAFILE '/u01/app/oracle/oradata/orcl/ximots01.dbf' SIZE 30000M AUTOEXTEND ON ONLINE;
Donde los parametros asignados son:
XIMOTS: Nombre del Tablespace
'/u01/app/oracle/oradata/orcl/ximots01.dbf': Ruta del fichero (el fichero en si, puede no existir, pero si la carpeta donde ubicarlo). Normalmente lo ubicaremos junto a los demás.
30000M: Tamaño inicial del Tablespace. Ojo, nos hacen falta 40GB, por tanto 40000MB, pero hay que crearlo mas pequeño pues nos pasamos del tamaño máximo!!!
Podemos ver el tamaño de los tablespaces siguiendo las instrucciones de Snipplr. Para ello ejecutamos en SQL Developer:
Y vemos que se ha creado correctamente
7. Parece ser que los datos se cargarán en un usuario (parece ser que Oracle confunde esquemas, bases de datos con usuarios!!) que le dará por nombre OPS$RGTTORA
8. Parece ser que lo mas cómodo es usar Ficheros de Parámetros, que són los 2 primeros ficheros que nos dan
Como puede verse, se está remapeando todos los tablespaces a XIMOTS, por tanto solo se debe de crear esta tablespace.
Tambien se ha remapeado el usuario OPS$GTTORA a EMPRESA
2. Buscar el directorio "DATA_DUMP_DIR". Para ello ejecutar esta sentencia en el SQL Developer:
Y nos da el siguiente directorio
/u01/app/oracle/admin/orcl/dpdump/
3. Una vez localizado este directorio, copiar en ese directorio el fichero de parámetros y el de datos:
imp_EMPRESA.PAR
EMPRESA_01.DUMP
4. En un ventana terminal de sistema y con usuario oracle, lanzar
impdp SYSTEM/CONTRASEÑA@orcl parfile= imp_EMPRESA.par
siendo @orcl el nombre del SID que se creo.
Si no nos acordamos se puede comprobar así con SQLDeveloper
select instance_name from v$instance;
Pero nos falla y sale este error
LRM-00109: could not open parameter file 'imp_EMPRESA.par'
LRM-00113: error when processing file 'imp_EMPRESA.par'
A continuación, en el terminal me situo en el directorio
/u01/app/oracle/admin/orcl/dpdump/
y ejecuto la dichosa orden y voila! A funcionar
Tras el proceso se generará un fichero log con el resultado imp_EMPRESA.log
5. Análogamente se hacen los mismos pasos para la otra BD ADE_EMPRESA, con la diferencia de que hay 4 ficheros de backup.
Para ello en un terminal ejecutamos
sqlplus / as sysdba
y una vez dentro
SQL> drop user empresa cascade;
A veces hace caso y otras no, pero cuando hace caso tarda muchísimo.
Oracle Database Concepts.
René Nyffenegger.
Carlos García de Marcos (Adictos al trabajo)
Oracle Data Pump Import.
StackOverflow.https://stackoverflow.com/questions/15664924/dropping-connected-users-in-oracle-database
CREATE TABLESPACE XIMOTS DATAFILE '/u01/app/oracle/oradata/orcl/ximots01.dbf' SIZE 30000M AUTOEXTEND ON ONLINE;
Donde los parametros asignados son:
XIMOTS: Nombre del Tablespace
'/u01/app/oracle/oradata/orcl/ximots01.dbf': Ruta del fichero (el fichero en si, puede no existir, pero si la carpeta donde ubicarlo). Normalmente lo ubicaremos junto a los demás.
30000M: Tamaño inicial del Tablespace. Ojo, nos hacen falta 40GB, por tanto 40000MB, pero hay que crearlo mas pequeño pues nos pasamos del tamaño máximo!!!
Podemos ver el tamaño de los tablespaces siguiendo las instrucciones de Snipplr. Para ello ejecutamos en SQL Developer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | SELECT df.tablespace_name, df.file_name, df.bytes/1024 Allocated_kb, free.free_kb, Round(free.free_kb/(df.bytes/1024)*100) Percent_Free FROM dba_data_files df, (SELECT file_id, SUM(bytes)/1024 free_kb FROM dba_free_space GROUP BY file_id) free WHERE df.file_id=free.file_id ORDER BY Percent_Free; |
Y vemos que se ha creado correctamente
7. Parece ser que los datos se cargarán en un usuario (parece ser que Oracle confunde esquemas, bases de datos con usuarios!!) que le dará por nombre OPS$RGTTORA
8. Parece ser que lo mas cómodo es usar Ficheros de Parámetros, que són los 2 primeros ficheros que nos dan
3. Instrucciones de carga
1. Editar el contenido del fichero de parámetros imp_EMPRESA.PAR:DIRECTORY=DATA_PUMP_DIR DUMPFILE=EMPRESA_%U.DUMP LOGFILE=imp_EMPRESA.log REMAP_TABLESPACE=DATOS10:XIMOTS,DATOS11:XIMOTS,DATOS12:XIMOTS,INDICES10:XIMOTS,INDICES11:XIMOTS,STAT:XIMOTS,LOBSTS:XIMOTS,TOOLS:XIMOTS,USERS:XIMOTS REMAP_SCHEMA=OPS$GTTORA:EMPRESA CONTENT=ALL
Como puede verse, se está remapeando todos los tablespaces a XIMOTS, por tanto solo se debe de crear esta tablespace.
Tambien se ha remapeado el usuario OPS$GTTORA a EMPRESA
2. Buscar el directorio "DATA_DUMP_DIR". Para ello ejecutar esta sentencia en el SQL Developer:
SELECT directory_path
FROM dba_directories
WHERE directory_name = 'DATA_PUMP_DIR';
Y nos da el siguiente directorio
/u01/app/oracle/admin/orcl/dpdump/
3. Una vez localizado este directorio, copiar en ese directorio el fichero de parámetros y el de datos:
imp_EMPRESA.PAR
EMPRESA_01.DUMP
4. En un ventana terminal de sistema y con usuario oracle, lanzar
impdp SYSTEM/CONTRASEÑA@orcl parfile= imp_EMPRESA.par
siendo @orcl el nombre del SID que se creo.
Si no nos acordamos se puede comprobar así con SQLDeveloper
select instance_name from v$instance;
Pero nos falla y sale este error
LRM-00109: could not open parameter file 'imp_EMPRESA.par'
LRM-00113: error when processing file 'imp_EMPRESA.par'
A continuación, en el terminal me situo en el directorio
/u01/app/oracle/admin/orcl/dpdump/
y ejecuto la dichosa orden y voila! A funcionar
Tras el proceso se generará un fichero log con el resultado imp_EMPRESA.log
5. Análogamente se hacen los mismos pasos para la otra BD ADE_EMPRESA, con la diferencia de que hay 4 ficheros de backup.
4. Posibles problemas.
1. Si sale mal la copia y queremos volver a realizarla, podemos eliminar la el "usuario" EMPRESA.
Para ello en un terminal ejecutamos
sqlplus / as sysdba
y una vez dentro
SQL> drop user empresa cascade;
A veces hace caso y otras no, pero cuando hace caso tarda muchísimo.
5. Bibliogragía aconsejada
Oracle Database Concepts.
René Nyffenegger.
Carlos García de Marcos (Adictos al trabajo)
Oracle Data Pump Import.
StackOverflow.https://stackoverflow.com/questions/15664924/dropping-connected-users-in-oracle-database
No hay comentarios :
Publicar un comentario