COPIAS DE SEGURIDAD

EXPORTAR USUARIO (BASE DE DATOS)

$>exp USUARIO/CONTRASEÑA@BASEDEDATOS FILE=ARCHOVO.EXP LOG=ARCHOVO.EXP.LOG FULL=Y TABLES=(EMP,DEPT,MGR) buffer=300000 ROWS=yes/no
  • Se puede especificar una condicion para no exportar toooda la tabla:

exp scott/tiger file=ARCHOVO.EXP tables=emp query=\”where deptno=10\”

  • Tambien se puede exportar tan sólo una parte de los datos
exp scott/tiger tables=emp query=\"where deptno=10\"

Parametros del export

  • buffer Especifica el tamaño en bytes del bufer usado para procesar las lineas.
  • consistent (y/n) Especifica que la transacción sea sólo la orden del export para asegurar la consistencia de los datos. Esta opción debe ser establecida a y si hay actividad mientras se realiza el export. Igualmente debes asegurarte que tienes suficiente espacio en el segmento de undo para no tener un error ORA-1555 Snapshot too old error*.
  • constraints (y/n) Especifica si se deben o no exportar tambien las constraints de las tablas.
  • direct (y/n) Determina si se debe usar un path directo o convencional para el export. Dicreto exporta a traves de sql mejorando así el rendimiento.
  • feedback (0)Determina con que frecuencia se refresca el chivato. Un valor de feedback=10 refrescará la información cada 10 segundos. Un valor feedback=n pondrá un punto por cada n lineas procesadas
  • file Especificar el nombre del archivo de export. Puedes especificar multiples archivos separandolos por comas (,). Cuando el export haya llenado el archivo con el tamaño máximo especificado continuará con el siguiente.
  • filesize Especifica el tamaño máximo del archivo de export especificado en bytes.
  • full Se exporta TODO el usuario.
  • grants (y/n) Especifica si se exportarán los grants.
  • help Muestra la ayuda.
  • indexes (y/n) Especifica si se exportarán los índices.
  • log Especifica el archivo que contendrá los mensajes del log
  • object_consistent (y/n) Especifica si el export usa SET TRANSACTION READ ONLY para asegurarse de que los datos que van a ser exportados son consistentes.
  • owner Se exportarán sólo los objetos de un determinado usuario.
  • parfile El nombre del archivo que contiene los parametros para el export. Ese archivo se puede usar para no tener que especificar todas las opciones en la linea de comando.
  • query Permite realizar una seleccion de las lineas que serán exportadas basandose en una clausula where de SQL.
  • recordlength Especifica el tamaño de la grabación en el archivo en bytes. Este parametro afecta al volumen de datos que se acumulan antes de grabarlos en el disco.
  • resumable (y/n) Habilita y desabilita la posiblilidad de parar y continuar. Cuando se especifica que si se debe especificar resumable_name y resumable_timeout.
  • resumable_name Cadena definida por el usuario que sive para identificar un comando resumable que ha sido suspendido.
  • resumable_timeout (7200 segundos) El tiempo máximo en el que un error de export debe ser arreglado.
  • rows (y/n) Especifica si se deben exportar las filas de las tablas o no. ( si se exportarán tambien los datos o sólo la estructura de la tabla)
  • statistics (ESTIMATE/COMPUTE/NONE) Indica el nivel de estadisticas que se generarán con el export.
  • tables Sirve para especificar las tablas que se van a exportar en modo de lista separada por comas.
  • tablespaces Indica que el tipo de export es tablespace-mode, en el cual se exportarán todas las tablas asignadas a cada tablespace. Esta opción requiere que se realize junto con EXP_FULL_DATABASE role.
  • transport_tablespace Habilita el export del metadata necesitado para tablespaces transportables.
  • triggers (y/n) Indica si se deben exportar tambien los triggers.
  • userid Especifica el usuario/contraseña del usuario que hará el export.
  • volsize Especifica el numero máximo de bytes que ocupará el archivo de export.

IMPORTAR USUARIO (BASE DE DATOS)

$>imp USUARIO/CONTRASEÑA@BASEDEDATOS file=ARCHIVO_DE_COPIA_DE_SEGURIDAD.exp commit=y log=ARCHIVO_DE_LOG_DESEADO.log buffer=300000 ignore=n fromuser=USUARIO_QUE_HIZO_LA_COPIA touser=USUARIO_QUE_RESTAURA_LA_COPIA''

¿Quieres ver a que velocidad se importa ?

select substr(sql_text,instr(sql_text,'INTO "'),30) table_name,
       rows_processed,
       round((sysdate-to_date(first_load_time,'yyyy-mm-dd hh24:mi:ss'))*24*60,1) minutes,
       trunc(rows_processed/((sysdate-to_date(first_load_time,'yyyy-mm-dd hh24:mi:ss'))*24*60)) rows_per_min
from   sys.v_$sqlarea
where  sql_text like 'INSERT %INTO "%'
  and  command_type = 2
  and  open_versions > 0;

Parametros del import

El import acepta los siguientes parametros :

The import modes are the same as the export modes (Full, User, Table, Tablespace) previously described. Imports support the following options:

  • buffer Especifica el tamaño en bytes del buffer usado para insertar los datos (el máximo es un poco mas que 30000).
  • commit (y/n) Especifica si el import debe hacer un commit despues de insertar cada array. Por defecto se hace un commit despues de importar cada tabla
  • compile (y/n) Le dice al import si compilar o no los procedimientos almacenados que haya en el archivo.
  • constraints (y/n) Si queremos que se importen tambien las constraints sobre los datos de las tablas.
  • datafiles Se usa solo con transport_tablespace. Este parametro especifica una lista de datafiles que serán trasnsportadas a la base de datos.
  • destroy (y/n) Determina si datafiles pre-existentes deben ser reutilizados o no. Un valor y hará que el import incluya la opción de reutilizar el datafile en la orden create tablespace.
  • feedback [0] Determina con que frecuencia se refresca el chivato. Un valor de feedback=10 refrescará la información cada 10 segundos. Esta opcion se aplica a todas las tablas del import. Si lo que quieres es ver a que velocidad se realiza el import puedes ejecutar esta consulta:
select rows_processed 
from v$sqlarea
where sql_text like 'INSERT %INTO "%'
and command_type = 2
and open_versions > 0;
  • file El nombre del archivo que contiene el export. si tienes variaos archivos puedes ponerlos separados por comas.
  • filesize El tamaño máximo del archivo, especificado en bytes.
  • fromuser El usuario que realizó el export. Si son varios los puedes listar con una coma.
  • full Importar el archivo de export entero.
  • grants (y/n) Importar tambien los grants.
  • help Muestra la ayuda.
  • ignore (y/n) Especifica como tratar las excepciones sobre objetos ya existentes. Si se especifica ignore=n significa que no se importarán objetos ya existentes. Si se especifica ignore=y se agregarán los datos a las tablas ya existentes.
  • indexes (y/n) Determina si los indeces son importados o no.
  • indexfile Especifica el nombre del archivo que contendrá los índices.
  • log Especifica el nombre del archivo de log.ç
  • parfile Sirve para especificar un archivo que contendrá todos los parametros para no tener que especificarlos en la linea de comandos.
  • recordlength Especifica el tamaño del record en bytes. Este parametro se usa sólo cuando transferimos archivos entre sistemas operativos que usan valores distintos.
  • resumable (y/n) Activa o desactiva la posiblad de continuar una vez parado. Si se establece a Y entonces se usa resumable_name y resumable_timeout.
  • resumable_name Cadena definida por el usuario para ayudar a identificar un valor de continuación cuando el sistema ha sido suspendido. Este parametro se ignora a no ser que se haya establecido resumable = Y.
  • resumable_timeout (7200 segundos) El periodo de tiempo en el que un error debe ser arreglado. Este parametro se ignora a no ser que se haya establecido resumable = Y.
  • rows (y/n) indica si se deben importar o no las filas (los datos) de las tablas.
  • show (y/n) cuando se establece a y la DDL se muestra.
  • skip_unusable_indexes (y/n) Determina cuando el import debe ignorar la reconstruccion de los indices que han quedado inutilizables.
  • statistics [ALWAYS] Determina el nivel de optimización de las estadisticas que se generan al importar. Las opciones son ALWAYS, NONE, SAFE and RECALCULATE. ALWAYS importa las estadisticas independientemente de su validez. NONE no importa nada. SAFE importa sólo aquellas que parecen ser validas o si no las recalcula. RECALCULATE las genera siempre nuevas.
  • streams_configuration (y/n) Determina si cualquer cadena de metadata presente en el export es importado.
  • streams_instantiation (y/n) Especifica si se importan las cadenas de metadata de instancia presentes en el export.
  • tables Especifica que el tipo del export es de tablas y lista las que contiene.
  • tablespaces Cuando transport_tablespace=y , este parametro lista los tablespaces existentes.
  • touser Especifica una lista de usuarios a los que se importará el contenido del export.
  • transport_tablespace (y/n) Cuando se especifica a y el tablespace de transporte será importado tambien.
  • tts_owners – Cuando transport_tablespace=Y, este parametro lista los usuarios que tenrán los datos que haya en el tablespace de transporte.
  • userid Especifica el userid/password del usuario que hace el import.
  • volsize Especifica el volument máximo de bytes en cada volumen.
  • imp help=y te dará la ayuda

EJEMPLO

Util por ejemplo para traerte una cópia de la base de datos de un ordenador a otro. Presupongo que tienes guardado en un sql la estructura de la base de datos ( usuairo para Oracle) Primero hago el export

exp usuario/contraseña@maquina file=export.exp log=el_log.log buffer=3000000 

Luego me conecto como usuario system ( root) y me cargo el usuario de base de datos (osea la base de datos) para luego a traves del script sql_con_la_estructura_de_la_base.sq2 recrear las tablas

sqlplus system/contraseña@máquina
SQL> drop user base_que_queremos_machacar cascade ;
SQL> user dropped
SQL>@sql_con_la_estructura_de_la_base.sq2
SQL>exit

Una vez hecho esto ya puedo importar los datos en las nuevas tablas vacías.

imp usuario/contraseña@maquina file=export.exp commit=y log=log.log buffer=1000000 ignore=n fromuser=usuario_que_hizo_el_export touser=nuevo_usuario

o

imp usuario/contraseñal@maquina  file=archivo.exp commit=y log=log.log buffer=1000000 full=y

A tomar en cuenta

Tras hacer un import de una base de datos los objetos PL/SQL almacenados se van importando y compilando según el orden en que fueron exportados. Eso puede significar que se intente compilar un objeto que depende de otro que todavía no se ha importado. Por lo que tendremos errores de compilación. Para ello existe el procedimiento utlrp.sql ubicado en ORACLE_HOME/rdbms/admin . Este procedimiento lo que hace es recompilar todos los objetos de la instancia. Al hacerlo una vez acabado el import ya no tendrémos porblemas de dependencias.

* NOMBRE: utlrp.sql
*  UBICACION: $ORACLE_HOME/rdbms/admin
 
ora/copsec.txt · Última modificación: 2008/05/13 10:00 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki