Professional Documents
Culture Documents
Copia de seguridad y recuperacin (pequeas bases de datos solamente, dicen <+ 50 GB, si es
ms grande, utilizar RMAN en su lugar)
Mover datos entre bases de datos Oracle en diferentes plataformas (por ejemplo a partir de Solaris
para Windows)
Reorganizacin de los datos / eliminar la fragmentacin base de datos (de exportacin, gota y
mesas re-importacin)
Actualizar las bases de datos de versiones muy antiguas de Oracle (cuando en el lugar las
actualizaciones no son compatibles con la base de datos del asistente de actualizacin ms)
Detectar la corrupcin de base de datos. Asegrese de que todos los datos se pueden leer
El transporte de los espacios de tablas entre bases de datos
Etctera
A partir de Oracle 10g , los usuarios pueden elegir entre utilizar las viejas utilidades imp / exp, o los recin
introducidos DataPump servicios pblicos, llamada expdp y impdp. Estas nuevas utilidades introducen muy
necesarias mejoras en el rendimiento, las exportaciones e importaciones en base a red, etc.
NOTA: En general, se recomienda no utilizar las exportaciones como el nico medio para realizar copias
de seguridad de una base de datos. mtodos de copia de seguridad fsicas (por ejemplo, cuando se
utiliza RMAN) son normalmente mucho ms rpido y compatible con el punto en la recuperacin basada
en el tiempo (aplicar archivelogs despus de recuperarse de una base de datos). Tambin, exp / imp no
es prctico para entornos de base de datos de gran tamao.
exp archivo scott / tiger = log = emp.dmp emp.log mesas = filas emp = s
ndices = sin
exp scott / tiger archivo = tablas emp.dmp = (EMP, departamento);
archivo / tigre imp scott = emp.dmp completa = yes
archivo imp scott / tiger = emp.dmp fromuser = scott scott touser = =
tablas departamento
BUFFER = 10000000
ARCHIVO = account.dmp
COMPLETO = n
PROPIETARIO = scott
SUBVENCIONES = y
COMPRESS = y
NOTA: Si no te gusta utilidades de lnea de comandos, puede importar y exportar datos con la interfaz
grfica de usuario "Administrador de esquema" que se incluye con Oracle Enterprise Manager (OEM).
Para que esto funcione hay que estar en Oracle 7.3 o superior (7.2 tambin podra estar bien). Si la
importacin tiene ms de una tabla, esta declaracin slo mostrar informacin acerca de la tabla actual
est importando.
Mtodo 2:
Utilizar el parmetro de importacin REACCIN = N. Este parmetro le dir IMP para mostrar un punto
por cada N filas importadas. Por ejemplo, la retroalimentacin = 1000 mostrar un punto despus de
cada fila 1000.
En caso de sistema de baja el rendimiento, es mejor agregar el parmetro RecordLength con pequeo
valor para asegurar que gzip tiene tiempo suficiente para extraer los datos antes de imp lo lee:
Ajuste el parmetro BUFFER a un valor alto (por ejemplo, 2Mb - entr como un entero "2000000")
Ajuste el parmetro RecordLength a un valor alto (por ejemplo, 64Kb - introducida como un entero
"64000")
El uso directo = yes (exportacin modo directo)
Detener aplicaciones innecesarias para liberar recursos para su trabajo.
Si ejecuta varias sesiones de exportacin, garantizar que escriben a diferentes discos fsicos.
NO exportar a un sistema de archivos NFS montado. Se llevar para siempre.
IMPORTAR:
Crear una indexfile para que pueda crear ndices despus de haber importado los datos. Para ello,
establezca indexfile a un nombre de archivo y luego de importacin. No hay datos sern
importados, pero se crear un archivo que contiene las definiciones de ndice. Debe editar este
archivo despus y suministrar las contraseas de los esquemas de todas las sentencias
CONNECT.
Coloque el archivo a importar en un disco fsico independiente de los archivos de datos de Oracle
Aumentar DB_CACHE_SIZE (DB_BLOCK_BUFFERS anteriores a 9i) considerablemente en el
archivo SID.ora $ init
Ajuste el LOG_BUFFER de un gran valor y el orculo de reinicio.
Deja de registro de rehacer de archivado si se est ejecutando (ALTER NOARCHIVELOG base de
datos;)
Crear un espacio de tabla grande con un segmento de cancelacin grande por dentro. Establecer
todos los dems segmentos de rollback fuera de lnea (excepto el segmento de cancelacin
SISTEMA, por supuesto). El segmento de cancelacin debe ser tan grande como su mayor mesa
(creo?)
Utiliza COMMIT = N en el archivo de parmetros de importacin, si se lo puede permitir
Utilizar las estadsticas = ninguno en el archivo de parmetros de importacin de evitar requiere
mucho tiempo para importar las estadsticas
Recuerde que debe ejecutar el indexfile creado previamente
Mayo de 1998.
Jess Vegas
Dpto. Informtica
Universidad de Valladolid
jvegas@infor.uva.es
ndice
1 Introduccin al Backup y a la Recuperacin
1.1 Presentacin del Backup
1.2 Presentacin de la Recuperacin
2 Principios de Backup
2.1 Diseo de la BD y Reglas Bsicas de Backup
2.2 Backups Fsicos
2.3 Backups Lgicos
3 Principios de la Recuperacin
3.1 Definiciones y Conceptos
3.2 Mtodos de Recuperacin
3.3 Recuperacin Fsica
3.4 Recuperacin Lgica
Fsicas
son causadas por fallos del hardware, como por ejemplo del disco o
de la CPU.
de Diseo
de Funcionamiento
De entre todas estas posibilidades, el DBA slo puede influir y prever los
errores de funcionamiento, ya que el resto habitualmente no est dentro de sus
responsabilidades y capacidades.
Ventajas:
o Aunque se pierdan los ficheros de datos, siempre se puede recuperar
la BD con una copia antigua de los ficheros de datos y los ficheros
de redo log archivados.
o Es posible realizar backups en caliente.
Inconvenientes:
o Se necesitar ms espacio en disco.
o El trabajo del DBA se incrementa al tener que determinar el destino
del archivado de los redo log.
Backups del SO
1. Parar la BD y el SO
2. Arrancar en modo superusuario.
3. Realizar copia de todos los ficheros del sistema de ficheros
4. Arrancar el sistema en modo normal y luego la BD.
Backups de la BD en Frio
Backups de la BD en Caliente
Errores de Usuario
Como por ejemplo un usuario borrando una fila o eliminando una tabla.
Estos errores se solucionan importando una tabla de una copia lgica
anterior. Si no se dispone de la copia lgica, se puede recuperar la BD en
una instancia auxiliar, exportar la tabla en cuestin de la instancia
auxiliar e importarla en la instancia operativa.
Fallos de Sentencias
Fallos de Procesos
Fallos de la Red
Algunas veces los fallos en la red producen fallos de proceso, que son
tratados por el PMON. Si en el error de red se ve envuelta una
transaccin distribuida, una vez que se reestablece la conexin, el
proceso RECO resuelve los conflictos automticamente.
Fallos de Instancia
Pueden deberse a fallos fsicos o de diseo del software que hacen que
algn proceso background caiga y la instancia con l. La recuperacin
es automtica cuando se levanta la BD, tomandose ms o menos tiempo
en la recuperacin.
Recuperacin de bloques
Recuperacin de threads
Recuperacin fsica
2 Principios de Backup
Backup en Fro
Como este tipo de backup es una copia de los ficheros de la BD, si estos
contienen algn tipo de corrupcin, la traspasaremos a la copia de seguridad
sin detectarla. Por esto es importante comprobar las copias de seguridad.
Backup en Caliente
Parmetros de Export
USERID
el username/password del usuario que efectua
indefinido
el export.
BUFFER
dependiente
El tamao en bytes del buffer utilizado.
del SO
FILE expdat.dmp el nombre del fichero destino.
GRANTS Yes indica si se exportan tambin los derechos.
INDEXES Yes indica si se exportan tambin los ndices.
ROWS
indica si se exportan tambin las filas de las
Yes
tablas, o slo las definiciones de las tablas.
CONSTRAINTS Yes indica si se exportan tambin las restricciones.
COMPRESS Yes indica si se exporta en modo comprimido.
FULL No indica si se exporta la BD entera.
OWNER
una lista de usuarios cuyos objetos se quieren
usuario actual
exportar.
TABLES indefinido la lista de tablas a exportar.
RECORDLENGTH
dependiente
la longitud en bytes del registro del fichero.
del SO
INCTYPE indefinido el tipo de export incremental.
indica si se anota el export incremental en las
RECORD Yes
tablas SYS.INCVID y en SYS.INCEXP.
PARFILE indefinido el fichero de parmetros.
Modos de Export
Modo Tabla
Exporta las definiciones de tabla, los datos, los derechos del propietario,
los ndices del propietario, las restricciones de la tabla y los disparadores
asociados a la tabla.
Modo Usuario
Exporta todo lo del modo de Tabla ms los clusters, enlaces de BD,
vistas, sinnimos privados, secuencias, procedimientos, etc. del usuario.
Modo BD Entera
Adems de todo lo del modo Usuario, exporta los roles, todos los
sinnimos, los privilegios del sistema, las definiciones de los tablespaces,
las cuotas en los tablespaces, las definiciones de los segmentos
de rollback, las opciones de auditora del sistema, todos los disparadores
y los perfiles.
El modo BD entera puede ser dividido en tres casos: Completo, Acumulativo e
Incremental. Estos dos ltimos se toman menos tiempo que el completo, y
permiten exportar slo los cmbios en los datos y en las definiciones.
Completo
Exporta todas las tablas de la BD e inicializa la informacin sobre la
exportacin incremental de cada tabla. Despus de una exportacin
completa, no se necesitan los ficheros de exportaciones acumulativas e
incrementales de la BD anteriores.
3 Principios de la Recuperacin
Vector de Cambio
describe un cambio simple en un bloque de datos de la BD. Entre otros
datos, contiene el nmero de versin, el cdigo de la transaccin, y la
direccin del bloque afectado.
Registro Redo log
es un conjunto de vectores de cambio que describen un cambio atmico
sobre la BD. La transaccin es tambin la unidad de recuperacin.
Evolucin de Redo log por da
se puede calcular ejecutando el comando archive log list en dos das
consecutivos y calculando la diferencia del nmero de secuencia de los
ficheros redo log, multiplicado por el tamao de un fichero redo log:
Existen tres opciones para realizar una recuperacion fsica. La primera es una
recuperacin de BD donde se restaura la BD entera. La segunda es una
recuperacin de tablespace donde, mientras una parte de la BD est abierta, se
puede recuperar un tablespace determinado. Esto significa que sern
recuperados todos los ficheros de datos asociados al tablespace. El tercer tipo es
la recuperacin de un fichero de datos especfico mientras el resto de la BD
est abierta.
Requisitos para Utilizar Recuperacin Fsica
Recuperacin de la BD
Recuperacin de un tablespace
que produce un script que puede ser utilizado para generar un nuevo fichero de
control y recuperar la BD, en caso necesario. El fichero de traza generado es el
siguiente:
USERID
el username/password del usuario que efectua
indefinido
el import.
BUFFER
dependiente
El tamao en bytes del buffer utilizado.
del SO
FILE expdat.dmp el nombre del fichero de exportacin a importar.
indica si se muestran los contenidos del fichero de
SHOW No
exportacin, sin importar ningn dato.
IGNORE
indica si ignorar los errores producidos al importar
Yes
un objeto que ya existe en la BD.
GRANTS Yes indica si se importan tambin los derechos.
INDEXES Yes indica si se importan tambin los ndices.
ROWS
indica si se importan tambin las filas de las
Yes
tablas.
FULL No indica si se importan el fichero entero.
FROMUSER
una lista de los usuarios cuyos objetos se han
Indefinido
exportado.
TOUSER
una lista de los usuarios a cuyo nombre se importan
Indefinido
los objetos.
TABLES indefinido la lista de tablas a importar.
RECORDLENGTH
dependiente
la longitud en bytes del registro del fichero.
del SO
INCTYPE indefinido el tipo de import incremental (SYSTEM o RESTORE).
indica si se efectua un commit despus de
COMMIT No importar cada fila. Por defecto, import efectua
un commit despus de cargar cada tabla.
PARFILE indefinido el fichero de parmetros.
RMAN: Como hacer para Restaurar y/o Recuperar solo los "Tablespaces" esenciales.
Por Joel Prez & Yenugula Venkata RaviKumar (OCM)
Publicado en Junio 2014
Reciban estimados tecnlogos Oracle un cordial saludo. A travs del presente artculo, tendremos la
oportunidad de visualizar y adentrarnos un poco en el tema restauracin/recuperacin de base de datos (
BBDDs ) utilizando la opcin Skip Tablespace.
En el contexto de recuperaciones de BBDDs existen extensas y diversas tcnicas para llevar a feliz termino el
objetivo. Tal cual como un traje hecho a la medida, no se conocer de las medidas hasta no tener al cliente al
frente. Todos los casos siempre son distintos, las situaciones siempre son diversas en su mayora. En una
infraestructura que contenga una BBDD jams sabremos que va a fallar, ni bajo que condiciones ocurrir. De
nosotros depender tener la experticia a mano para resolver el evento con rapidez, sapiencia y eficiencia.
Los comandos y opciones de RMAN son como las clases distintas de bistures para un cirujano. Se utilizan de
forma adecuada y justa de acuerdo al caso.
Planteemos el siguiente escenario: da 31 de cualquier mes del ao. 6:00pm de la tarde. Da oscuro y lluvioso
con mucha existencia de rayos. Un rayo impacta cerca de las instalaciones elctricas de la compaa y causa
un evento de desnivel de energa elctrica. La infraestructura de servidores, SAN y dems componentes no
estaban protegidos para desniveles de energa. Todos los componentes ( Servidores, SAN ) tuvieron cadas
abruptas de energa elctrica. Cuando ya la misma estaba restablecida, se decide encender los equipos y
aparece el siguiente mensaje al ejecutar el startup de la BBDD; . problemas con el datafile 1, ORA-01110:
data file 1. el de system . BBDD de 400GB ( 100GB en data con perfil transaccional OLTP activo y
300GB en histricos ).
Tiempo de Recuperacin total estimado : 8 horas.
Misin: recuperar la BBDD lo ms pronto posible para poder realizar el cierre del mes antes de las 12:00 de la
media noche.
Particularidad del caso: solo 100GB de data son los ms importantes y claves para el cierre, los otros 300GB
son de histricos. Ambas divisiones del negocio ( Transaccional e Histrico ) se encuentran en Tablespaces
bien distribuidos.
Pregunta: hay alguna opcin para recuperar la BBDD solo con los Tablespaces necesarios para el cierre con
opcin a recuperar el resto posteriormente ?
Respuesta: si si hay una opcin: SKIP TABLESPACE de RMAN
Escenario: tenemos un caso de fallo total de la BBDD respecto a sus datafiles, deseamos recuperar de
forma inmediata solo aquellos crticos para el negocio y posteriormente recuperaremos el resto manteniendo
una consistencia lineal en la historia de la data. Veamos como hacerlo:
Nota: se utilizo Oracle Database 10gR2 para el presente caso pero la misma es valida para todas las
versiones superiores de Oracle incluyendo Oracle Database 12c.
BBDD Origen: MYDB
Datafiles en Filesystem: /tmp/MYDB
Modo Archive: Activo
Visualizacin de Datafiles y Tablespaces
Reconocimiento de Datafiles:
[oracle@MyjpServer ~]$ export ORACLE_SID=MYDB
[oracle@MyjpServer ~]$
[oracle@MyjpServer ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Wed Aug 8 15:10:36 2012
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/tmp/MYDB/users01.dbf
/tmp/MYDB/sysaux01.dbf
/tmp/MYDB/undotbs01.dbf
/tmp/MYDB/system01.dbf
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
6 rows selected.
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/tmp/MYDB/users01.dbf
/tmp/MYDB/sysaux01.dbf
/tmp/MYDB/undotbs01.dbf
/tmp/MYDB/system01.dbf
/tmp/MYDB/tbsp_jp01.dbf
SQL>
Creacion de Usuario jp
El usuario jp contendr data de muestra que se utilizara para comprobar el concepto de recuperacin parcial
de la BBDD.
SQL> create user jp identified by jp
2 default tablespace TBSP_JP
3 quota unlimited on TBSP_JP;
User created.
Grant succeeded.
SQL>
Table created.
1 row created.
SQL> commit;
Commit complete.
SQL>
SQL> select OWNER, TABLESPACE_NAME from dba_segments
2 where SEGMENT_NAME='MYJPTABLE';
OWNER TABLESPACE_NAME
------------------------------ ------------------------------
JP TBSP_JP
SQL> ho rm /tmp/MYDB/*.dbf
SQL>
SQL> ho ls -lt /tmp/MYDB/
total 174504
-rw-r----- 1 oracle oinstall 7061504 Aug 8 15:25 control01.ctl
-rw-r----- 1 oracle oinstall 7061504 Aug 8 15:25 control02.ctl
-rw-r----- 1 oracle oinstall 7061504 Aug 8 15:25 control03.ctl
-rw-r----- 1 oracle oinstall 52429312 Aug 8 15:24 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Aug 8 15:24 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Aug 8 15:24 redo03.log
SQL>
Se intenta consultar la tabla del schema jp. Obtenemos el mensaje de error por crash de instancia. Se
intenta realizar el proceso de startup y surge el error esperado relacionado con la no ubicacin del primer
datafile que el mecanismo de BBDDs Oracle comprueba.
SQL> exit;
SQL> startup
ORACLE instance started.
Total System Global Area 583008256 bytes
Fixed Size 2097984 bytes
Variable Size 159386816 bytes
Database Buffers 415236096 bytes
Redo Buffers 6287360 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/tmp/MYDB/system01.dbf'
Recover Database
Si intentamos aplicar la sentencia de recover database sin especificar el tablespace que no se restauro,
obtendremos el mensaje de que el mismo debe ser restaurado. Para la aplicacin de esta tcnica, el recover
debe poseer la misma clausula aplicada al restore database.
RMAN> recover database;
Starting recover at 08/08/2012
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 08/08/2012 15:31:06
RMAN-06094: datafile 5 must be restored
RMAN> recover database skip tablespace tbsp_jp;
Startup
Una vez aplicada la tcnica, procedemos a la apertura de la BBDD. El mecanismo de consistencia de
controlfiles-datafiles no esta anuente de nuestro propsito y realiza el chequeo de todos los datafiles existente
en el diccionario de datos. Siendo as, obtenemos el mensaje de que el Datafile 5 no es identificable en el
sistema operativo.
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 583008256 bytes
Fixed Size 2097984 bytes
Variable Size 159386816 bytes
Database Buffers 415236096 bytes
Redo Buffers 6287360 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/tmp/MYDB/tbsp_jp01.dbf'
Datafile Offline
A todos los Datafiles que deseemos obviar en la recuperacin, debemos establecerle estatus offline
cuando la instancia se encuentre en modo mount. De esta manera la BBDD podr aperturarse de forma
perfecta. Al final de esta etapa tendremos la BBDD abierta con la recuperacin de todos los tablespaces a
excepcin del tablespace tbsp_jp
SQL> alter database datafile 5 offline;
Database altered.
SQL>
SQL>
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 583008256 bytes
Fixed Size 2097984 bytes
Variable Size 159386816 bytes
Database Buffers 415236096 bytes
Redo Buffers 6287360 bytes
Database mounted.
Database opened.
SQL>
SQL> select * from dual;
D
-
X
SQL>
Continuidad de Trabajo
La BBDD podr seguir trabajando de forma perfecta acumulando data de forma consistente
SQL> alter system switch logfile;
System altered.
SQL> r
1* alter system switch logfile
System altered.
SQL>
Nota Importante: esta tcnica solo se podr llevar a cabo siempre y cuando no exista la necesidad de abrir la
BBDD en modo resetlogs. Si por algn motivo la BBDD tuviese que apertura se en modo resetlogs ya la
tcnica no aplicara, debido a que el Controlfile obtendra un nuevo nivel de incarnation y los Backups
anteriores ya no tendran validez. Para lograr una recuperacin sin necesidad de apertura de la BBDD en
modo resetlogs se tendr que disponer de forma perfecta del ultimo grupo de redo log en estatus current al
momento de la falla. Si hubiese perdida de al menos el grupo de Redo Log en estatus current al momento
de la falla, se tendr que restaurar completamente la BBDD y siendo ese el escenario ya no se podra realizar
una recuperacin parcial con opcin a recuperacin complementaria posterior tal cual como se desarrollo en
el articulo.
Conclusin
Voila de esta manera experimentamos una recuperacin parcial de una BBDD en base a un objetivo de
restablecimiento pronto de servicios. La misma estaba basada en una arquitectura lgica de negocio de
separacin de Tablespaces ( OLTP & DWH Histricos ).
Para una empresa que posea tiempos de recuperaciones muy lentos, causados por hardware, disco, SAN,
etc. Esta tcnica podra representar una opcin rpida de poseer disponible parte de la BBDD sin necesidad
de depender de un restaurado total.
Hago remembranzas de una ocasin cuando tuve un caso parecido; un cliente tenia una BBDD de
aproximadamente 1TB. Tuvo una falla y la recuperacin tardaba 2 das aproximadamente. En esa caso se
recuperaron los Tablespaces claves de una BBDD Oracle ( system, undo, sysaux, etc ) y los claves del
negocio y de forma progresiva se fue restaurando el resto de los Tablespaces. Una vez abierta la BBDD se
establecio recuperaciones de Tablespaces paralelas a cargo de los nodos del RAC y as se acortaron los
tiempos. Era una infraestructura de RAC, en un nodo se establecieron las recuperaciones de ciertos
Tablespaces y en el otro nodo se establecieron los restantes. Los cuellos de botellas formados por exceso
de trabajo a nivel de I/O eran recprocos porque ambos nodos posean el storage compartido como es
natural en RAC pero el consumo de CPU en la actividad si era individual para cada nodo.
As como este caso podrn existir muchos ms. Lo importante para los diversos escenarios es conocer la
naturaleza implcita de cada uno de ellos, poseer un amplio abanico de tcnicas y comandos para poder
ajustarse a las variantes del mismo.
Joel es un experto DBA con ms de 12 aos de experiencia, especializado en bases de datos con especial
nfasis en la soluciones de alta disponibilidad (RAC, Data Guard, y otras). Es un conferencista habitual en
eventos de Oracle como: OTN LAD TOUR y otros. Consultor Internacional con trabajos en ms de 20 pases
alrededor del mundo. Fue el primer latinoamericano en ser nombrado "Experto OTN" en el ao 2003, Oracle
ACE ao 2004 y actualmente Oracle ACE Director.