SQL: Exportación de la BD

Autenticarse como usuario "oracle". Podemos hacerlo rápidamente desde el usuario root:
sudo -i
su oracle
Conviene realizar todas las operaciones desde el mismo directorio. Así será más cómodo referenciar a los ficheros necesarios (por ejemplo, /oracle/export)

De forma interactiva

1. $ORACLE_HOME/bin/exp
2. Usuario: system; Contraseña: ****
3. Tamaño del buffer: Cantidad máxima de bytes (por ejemplo, 50000)
4. Archivo: 'expdat.dmp' (este es el nombre por defecto)
5. Elegir la opción por defecto en el resto de preguntas

Usando un fichero de parámetros

Si queremos evitar este proceso interactivo, podemos usar un fichero de parámetros (con extensión 'par'). Este es un ejemplo: exportacion.par
userid=system/****
full=y
file=/oracle/export/full_20_00.dmp
log=/oracle/export/full_20_00.log
consistent=y
buffer=50000
direct=y
Donde cada parámetro significa:

userid: Usuario y contraseña del usuario system
full: Indicación de si queremos una exportación completa (esquemas, datos, usuarios, permisos...)
file: Fichero de exportación
log: Fichero de log del proceso de exportación
consistent: Indicación de si queremos recoger los cambios realizados
durante el proceso de exportación
buffer: Memoria a emplear en el proceso
direct: (aumenta la velocidad del proceso)

Así podríamos usarlo:
exp parfile=exportacion.par

De forma programada

1. Creamos un fichero con la asignación variables de entorno. Esto es necesario para su lectura desde el cron. Este es un ejemplo (entorno.txt):
#ORACLE_BASE=/app/oracle; export ORACLE_BASE
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server ; export ORACLE_HOME
ORACLE_SID=XE; export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin; export PATH
PATH=$PATH:/usr/ccs/bin; export PATH
LANGUAGE=spanish_spain.AL32UTF8
NLS_LANG=spanish_spain.AL32UTF8
export LANGUAGE NLS_LANG
ORACLE_OWNER=oracle;export ORACLE_OWNER

2. Creamos un script para llevar a cabo todo el proceso (copia.sh)
. /oracle/export/entorno
cd /oracle/export
$ORACLE_HOME/bin/exp parfile=/oracle/export/exportacion.par

3. Creamos un cron (cron.txt):
#Min.   Horas   Dia     Mes     Dia S   Comando
#(0-59) (0-23)  (1-31)  (1-12)  (0-6)
#------ ------  ------  ------  ------  --------------------------------
00      20      *       *       *       /oracle/export/copia.sh >/oracle/export/exportacion.log 2>&1

4. Incluimos el cron en el conjunto de tareas programadas:
crontab cron.txt

5. Podemos visualizar la lista de tareas ejecutadas como cron:
crontab -l

Así, la relación de llamadas en los ficheros usados como ejemplo quedaría: 'cron.txt' define el cron que ejcutará a 'copia.sh' que a su vez usará a 'exportacion.par' y a 'entorno'.

0 comentarios: