Proyecto 6. Copias de seguridad y restauración.

Anuncio
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Objetivos:
- Conocer los procedimientos para la realización de copias de seguridad lógicas o físicas
desde línea de comandos o desde Enterprise Manager y los correspondientes
procedimientos de restauración de la base de datos completa o de parte de ella.
- Conocer las vistas dinámicas que informan sobre el estado real de los ficheros de
datos.
- Conocer la forma de configurar ORACLE para que se hagan copias automáticas de los
ficheros de control.
- Aprender a clonar una base de datos usando RMAN en un servidor distinto.
- Conocer las políticas de copias de seguridad más habituales y la forma de
automatizarlas.
- Aprender a redactar una documentación concisa y útil sobre procedimientos de
administración.
1
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
INTRODUCCIÓN:
Planear una buena política de copias de seguridad es la mejor forma de conservar la
información ante un error físico del sistema. Esta tarea es imprescindible para conservar la
integridad de la base de datos ante una “catástrofe”.
Utilizaremos Oracle 11g sobre Windows2003 Server.
PROCEDIMIENTOS PARA LA CREACION DE COPIAS:
Las copias de seguridad o backups pueden ser físicas y lógicas:
-Las físicas se realizan cuando se copian los ficheros que soportan la BD. Entre estos se
encuentran los backups del SO, los backups en frío y los backups en caliente.
Backups del SO
Este tipo de backup implica parar la BD en modo normal y esto la hace
inaccesible el sistema mientras se lleva a cabo.
Backups de la BD en Frio
Los backups en frio implican parar la BD en modo normal y copiar todos los
ficheros sobre los que se asienta. Antes de parar la BD hay que parar también todas las
aplicaciones que estén trabajando con la BD. Una vez realizada la copia de los ficheros,
la BD se puede volver a arrancar.
Backups de la BD en Caliente
El backup en caliente se realiza mientras la BD está abierta y funcionando en
modo ARCHIVELOG. Habrá que tener cuidado de realizarlo cuando la carga de la BD
sea pequeña. Este tipo de backup consiste en copiar todos los ficheros correspondientes
a un tablespace determinado, los ficheros redo log archivados y los ficheros de control.
-Las lógicas sólo extraen información de las tablas utilizando comandos SQL y utilizando las
herramientas export e import.
Backups Lógicos con Export/Import
Estas utilidades permiten al DBA hacer copias de determinados objetos de la
BD, así como restaurarlos o moverlos de una BD a otra. Estas herramientas utilizan
comandos del SQL para obtener el contenido de los objetos.
NOTA: Una vez que se ha planeado una estrategia de backup y se ha probado, conviene
automatizarla para facilitar así su cumplimiento.
2
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
MODE ARCHIVELOG:
El modo archivelog de una base de datos Oracle protege contra la pérdida de datos
cuando se produce un fallo en el medio físico.
1.
Se puede realizar una copia de seguridad mientras la base de datos está on-line.
2.
Con este modo de base de datos se puede restaurar una copia de seguridad de los
archivos dañados utilizando estos archivos para actualizar los archivos mientras están online.
3.
Se puede recuperar la base de datos en un número de cambio del sistema específico.
4.
Se puede restaurar la base de datos en un punto específico en el tiempo.
Alguna de las consecuencias que tiene desactivarlo son las siguientes:
1.
Las copias de seguridad ya no se pueden hacer on-line (habría que aplicar otro tipo de
copias de seguridad).
2.
No se podrá recuperar la base de datos en un tiempo concreto.
NOTA: Esta decisión tiene que ser aprobada por el DBA (según la política de backup que
se adopte).
Teniendo en cuenta estas características básicas del modo archivelog de base de datos Oracle,
vamos a exponer cómo se activa y cómo se desactiva:
1. ¿En que modo trabaja nuestra BD?:
El comando archive log list nos muestra si la base de datos está en modo archivelog o
noarchivelog y si el archivado automático está funcionando:
3
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
2. Activando el modo Archivelog:
1. Para que el modo archivelog esté activado, el init.ora debe de estar arrancado con los
siguientes parámetros. Este archivo en windows deberia encontrarse en:
<ORACLE_HOME>\database\INIT<sid>.ORA
Editar INIT.ORA
log_archive_start=true
log_archive_dest_1='location=E:\backups_oracle\arch_log\' REOPEN=5
log_archive_format = arch_%t_%s.arc
*log_archive_dest_1= es el destino donde vas a archivar los .arc
En mi instalación de Oracle 11g este fichero no está generado, para generarlo:
SQL>CREATE PFILE FROM SPFILE;
Tambien podriamos hacer las modificaciones en el SPFILE<SID>.ORA pero este
fichero es muy delicado y sus modificaciones se realizan mediante comandos como:
SQL> ALTER SYSTEM parametro = valor SCOPE=[spfile, memory, both]
*La clausula scope especifica donde quiere que se recoja el cambio; spfile(graba los nuevos
valores en spfile.ora), memory(aplica el cambio solo en la memoria) o both(graba las modificaciones en
spfile.ora y lo aplica en memoria).
*Para log_archive_start necesitamos scope=spfile ya que es un parametro estático y necesita
reiniciar la BD para que el cambio surja efecto. Al contrario log_archive_dest es dinámico y para su
modificacion no necesitamos reiniciar la BD.
Modificando SPFILE<SID>.ORA
SQL> ALTER SYSTEM set log_archive_start=true scope=spfile
SQL> ALTER SYSTEM set log_archive_dest_1='location=E:\backups_oracle\arch_log\' scope=both;
2. Si la base de datos está funcionando y esos parámetros están en el init.ora paramos la
base de datos con un
> shutdown immediate
NOTA: Previamente habría que haberse conectado, con privilegios adecuados, a la
base de datos sobre la que se quiere realizar el cambio.
4
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
3. A continuación montamos la base de datos:
> startup mount
4. Después de haber montado la base de datos ejecutamos el siguiente comando para
comunicarle a la base de datos que arrancamos en modo archive log, pero si el init.ora tiene
el paramentro log_archive_start=true, este modo arrancara automaticamente:
> alter database archivelog;
5. Y después abrimos la base de datos:
> alter database open;
6. Para finalizar, activamos el archivado automático, Al hacer el paso 3 realiza este
automaticamente:
> alter system archive log start;
Con esto ya tendríamos configurado el modo archivelog de una base de datos Oracle.
5
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
3. Desactivando el modo Archivelog:
Para desactivar el modo archive log de una base de datos (teniendo en cuenta las consecuencias
que esto conlleva) seguimos los siguientes pasos:
1. Nos conectamos a la base de datos en la cual queremos parar el modo de archivado y la
paramos mediante el comando:
> shutdown immediate
2. Montamos la base de datos mediante el comando:
> startup mount
3. Desactivamos el modo archivelog:
> alter database noarchivelog
4. Abrimos la base de datos:
> alter database open
5. Desactivamos el archivado automático. Al hacer el paso 3 realiza este automaticamente:
> alter system archive log stop
Con esto ya tendriamos desactivado el modo archive log de una base de datos Oracle.
6
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
BACKUPS FISICOS(Desde linea de Comandos):
Vamos a exponer como realizar copias de seguridad fisicas en frio y en caliente y su
posible restauración ante un desastre. Para esta ultima(copia en caliente) deberemos tener
activado el modo Archive Log.
BACKUPS EN FRIO:
El primer paso es parar la BD con el comando shutdown normal. Si la BD se tiene que
parar con inmediate o abort debe rearrancarse con el modo RESTRICT y vuelta a parar en modo
normal. Después se copian los ficheros de datos, los de redo log y los de control, además de los
redo log archivados y aún no copiados.
Una buena idea es automatizar todo este proceso con los scripts correspondientes, de
modo que no nos olvidemos de copiar ningún fichero. Pero ahora nos centraremos en realizar la
copia manualmente para analizar cada procedimiento.
Como este tipo de backup es una copia de los ficheros de la BD, si estos contienen
algún tipo de corrupción, la traspasaremos a la copia de seguridad sin detectarla. Por esto es
importante comprobar las copias de seguridad.
Los pasos que hay que seguir para realizar un backup en frió serían:
1.
Conocer y listar la ubicación de los datafiles, controlfiles, redo log y redo log
archivados:.
Esto se puede hacer ejecutando:
select file_name from dba_data_files;
select name from v$controlfile;
7
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
select member from v$logfile;
select name from v$archived_log;
2.
Tirar la base de datos mediante shutdown normal o shutdown inmediate.
3.
Copiar los archivos datafiles, controlfiles y logfiles a un medio de backup preferido
como cinta, disco duro, otra máquina, etc.
Ademas si nos interesa podemos hacer una copia de init.ora.
$>COPY E:\oracle\app\Administrador\product\11.1.0\db_1\database\INITorcl.ORA E:\backups_oracle\binit.ora
Mediante simbolo de sistema podemos exportar la variable ORACLE_FICHEROS para
no tener que trabajar con rutas tan largas ya que en este caso los ficheros de los que necesitamos
hacer copia estan en la misma ruta.
$>SET ORACLE_FICHEROS=E:\ORACLE\APP\ADMINISTRADOR\ORADATA\ORCL\
DATAFILES:
$>COPY %ORACLE_FICHEROS%\USERS01.DBF E:\backups_oracle\bUSERS01.DBF
$>COPY %ORACLE_FICHEROS%\UNDOTBS01.DBF E:\backups_oracle\bUNDOTBS01.DBF
$>COPY%ORACLE_FICHEROS%\SYSAUX01.DBF E:\backups_oracle\bSYSAUX01.DBF
$>COPY%ORACLE_FICHEROS%\SYSTEM01.DBF E:\backups_oracle\bSYSTEM01.DBF
8
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
$>COPY%ORACLE_FICHEROS%\EXAMPLE01.DBF E:\backups_oracle\bEXAMPLE01.DBF
CONTROLFILE:
$>COPY %ORACLE_FICHEROS%\CONTROL01.CTL E:\backups_oracle\bCONTROL01.CTL
$>COPY %ORACLE_FICHEROS%\CONTROL02.CTL E:\backups_oracle\bCONTROL02.CTL
$>COPY %ORACLE_FICHEROS%\CONTROL02.CTL E:\backups_oracle\bCONTROL02.CTL
LOGFILE:
$>COPY %ORACLE_FICHEROS%\REDO01.LOG E:\backups_oracle\bREDO01.LOG
$>COPY %ORACLE_FICHEROS%\REDO02.LOG E:\backups_oracle\bREDO02.LOG
$>COPY %ORACLE_FICHEROS%\REDO03.LOG E:\backups_oracle\bREDO03.LOG
LOG ARCHIVED FILE:
A este tipo de log se le puede especificar varios destinos por lo que no hace falta estar
copiandolos de un sitio a otro, solo definirle el destino deseado al activar el modo archive log.
9
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
BACKUPS EN CALIENTE:
Este metodo es practicamente igual que el anterior, a diferencia de que; no necesita
parar la base de datos, tan solo deberemos desactivar los tablespaces de los que se esten
haciendo copia en ese momento, y tener activado el modo Archive Log.
Para ello deberemos seguir los siguientes pasos:
DATAFILES
1.
Primero tenemos que ver que datafiles tenemos en nuestra base de datos, para ellos
podemos realizar la siguiente consulta a la tabla dba_data_files.
select tablespace_name,file_name from dba_data_files order by tablespace_name;
2.
Para cada uno de los datafiles asociados a un tablespace hacemos lo siguiente:
SQL>Alter tablespace <nonbre_tablespace> begin backup;
-Copiamos a otro sitio todos los datafiles, con la utilidad COPY del SO, tal como vimos en las
copias en frio.
Ejem:
$>COPY %ORACLE_FICHEROS%\USERS01.DBF E:\backups_oracle\bUSERS01.DBF
...
SQL>Alter tablespace end backup;
SQL>Alter system switch logfile;
Como observamos bloqueamos el tablespace, copiamos todos los datafiles al lugar
donde queramos realizar el backup y por último desbloqueamos el tablespace y forzamos los
redo.
10
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
ARCHIVOS DE LOG
Esto es tan sencillo como copiar todos los ficheros archivelog a otra ubicación con la
utilidad del sistema operativo (xcopy).
Una vez que se ha realizado el respaldo ( backup ) de estos ficheros pueden ser borrados
de la ubicación original en caso de que queramos librerar un poco de espacio, ya que contienen
las ultimas transacciones y si en algún caso queremos realizar una recuperación en el tiempo
tenemos todos estos archivos guardados para cuando la recuperación los pida.
Si trabajamos con el destino predeterminado que en Oracle 11g es:
E:\oracle\app\Administrador\flash_recovery_area\ORCL\ARCHIVELOG>
E:\oracle\app\Administrador\flash_recovery_area\ORCL> XCOPY ARCHIVELOG E:\backups_oracle /E
Con este ultimo comando copiamos la carpeta contenedora de todos los archivos de log
recursivamente(/E), llevando estas al destino elegido.
En este documento al activar el modo archive log hemos definido una ruta donde se irán
generando los archivos de log, con el formato predeterminado en los parametros de spfile.ora.
INIT.ORA
Es recomendable tener una copia del init.ora en algún sitio (con realizar esta copia cada
vez que cambie este archivo sería suficiente).
Como vimos con los backups en frio, copiamos el init.ora de la siguiente forma:
$>COPY E:\oracle\app\Administrador\product\11.1.0\db_1\dbs\init.ora E:\backups_oracle\binit.ora
CONTROFILE
Es recomendable tener una copia de los ficheros de control de la base de datos.
Este backup se puede realizar de la siguiente forma:
Alter database backup controlfile to destino nombredelfichero;
Alter database backup controlfile to 'E:\backups_oracle\bCONTROL';
Si queremos tener un backup legible de estos ficheros para crear uno nuevo en caso de
pérdida, la sentencia a ejecutar es la siguiente:
Alter database backup controlfile to trace as 'destino/fichero';
Alter database backup controlfile to trace as 'E:\backups_oracle\bCONTROL1';
11
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
RECUPERACIÓN DE LA BD:
Para recuperar la base de datos a un estado anterior esta tiene que estar puesta en modo
archivelog y tener los archivelog correspondientes a las transacciones que queramos recuperar
para poder volver al punto en el tiempo indicado.
Teniendo en cuenta que nuestra base de datos está levantada los pasos a seguir son los
siguientes:
1. Nos conectamos a la base de datos
2. Bajamos la instancia de base de datos
SQL > shutdown immediate
3. Levantamos la instancia en modo mount
SQL > startup mount
4. Recuperamos la base de datos hasta la fecha indicada (punto en el tiempo al cual
queremos retroceder)
SQL > recover database until time '2009-02-10:22:59:04'
Con esto hemos conseguido recuperar la instancia en el momento indicado en la fecha
('2007-01-10:22:59:04' à 10 de enero de 2007 a las 22 horas 59 minutos y 4 segundos)
Con relación a la fecha el formato por defecto es el siguiente: 'YYYY-MMDD:HH24:MI:SS'
La sintaxis de este comando:
RECOVER [AUTOMATIC] [FROM 'localizacion'] [BD]
[UNTIL CANCEL]
[UNTIL TIME fecha]
[UNTIL CHANGE entero]
[USING BACKUP CONTROLFILE]
12
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Las opciones entre corchetes son opcionales:
AUTOMATIC hace que la recuperación se haga automáticamente sin preguntar al DBA
por el nombre de los ficheros redo log. También se puede utilizar para este cometido el
comando set autorecovery on/off. Los ficheros redo log deben estar en la localización
fijada en LOG_ARCHIVE_DEST y el formato del nombre de los ficheros debe ser el
fijado en LOG_ARCHIVE_FORMAT.
FROM se utiliza para determinar el lugar donde están los ficheros redo log, si es distinto
del fijado en LOG_ARCHIVE_DEST.
UNTIL sirve para indicar que se desea realizar una recuperación incompleta, lo que implica
perder datos. Solo se dará cuando se han perdido redo log archivados o el fichero de
control. Cuando se ha realizado una recuperación incompleta la BD debe ser abierta con el
comando alter database open resetlogs, lo que produce que los redo log no aplicados no se
apliquen nunca y se inicialice la secuencia de redo log en el fichero de control. Existen tres
opciones para parar la recuperación:
• UNTIL CANCEL permite recuperar un redo log cada vez, parando cuando se
teclea CANCEL.
• UNTIL TIME permite recuperar hasta un instante dado dentro de un fichero de
redo log
• UNTIL CHANGE permite recuperar hasta un SCN dado.
• USING BACKUP CONTROLFILE utiliza una copia de seguridad del fichero
de control para gobernar la recuperación.
-RECUPERACIÓN DE UN TABLESPACE
La BD debe estar abierta, pero con el tablespace a recuperar offline. El comando de
recuperación es el siguiente:
RECOVER [AUTOMATIC] [FROM 'localizacion']
TABLESPACE nombre_tablespace [, nombre_tablespace]
-RECUPERACION DE UN FICHERO DE DATOS
La BD debe estar abierta o cerrada, dependiendo del fichero a recuperar. Si el fichero a
recuperar es de un tablespace de usuario la BD puede estar abierta, pero con el fichero a
recuperar offline. Si el fichero es del tablespace SYSTEM la BD debe estar cerrada, ya que no
puede estar abierta con los ficheros del SYSTEM offline. El comando de recuperación es el
siguiente:
RECOVER [AUTOMATIC] [FROM 'localizacion']
DATAFILE nombre_fichero [, nombre_fichero]
13
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
BACKUPS LÓGICOS(Desde linea de Comandos):
Este tipo de backups copian el contenido de la BD pero sin almacenar la posición física
de los datos. Se realizan con la herramienta export que copia los datos y la definición de la BD
en un fichero en un formato interno de Oracle.
Para realizar un export la BD debe estár abierta. Export asegura la consistencia en la
tabla, aunque no entre tablas. Si se requiere consistencia entre todas las tablas de la BD entonces
no se debe realizar ninguna transacción durante el proceso de export. Esto se puede conseguir si
se abre la BD en modo RESTRICT.
Entre las ventajas de efectuar un export están las siguientes:
Se puede detectar la corrupción en los bloques de datos, ya que el proceso de export fallará.
Protege de fallos de usuario, por ejemplo si se borra una fila o toda una tabla por error es
fácil recuperarla por medio de un import.
Se puede determinar los datos a exportar con gran flexibilidad.
Se pueden realizar exports completos, incrementales y acumulativos.
Los backups relizados con export son portables y sirven como formato de intercambio de
datos entre BDs y entre máquinas.
Una de las desventajas de realizar backups lógicos con export es que son mucho más lentos que
los backups físicos.
14
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Parámetros de Export
Parámetro
Defecto
Descripción
USERID
indefinido
el username/password del usuario que efectua el
export.
BUFFER
dependiente
SO
FILE
expdat.dmp
el nombre del fichero destino.
GRANTS
Yes
indica si se exportan también los derechos.
INDEXES
Yes
indica si se exportan también los índices.
ROWS
Yes
indica si se exportan también las filas de las
tablas, o sólo las definiciones de las tablas.
del
El tamaño en bytes del buffer utilizado.
CONSTRAINTS Yes
indica si se exportan también las restricciones.
COMPRESS
Yes
indica si se exporta en modo comprimido.
FULL
No
indica si se exporta la BD entera.
OWNER
usuario actual
una lista de usuarios cuyos objetos se quieren
exportar.
TABLES
indefinido
la lista de tablas a exportar.
RECORDLENGT dependiente
H
SO
del
la longitud en bytes del registro del fichero.
INCTYPE
indefinido
el tipo de export incremental.
RECORD
Yes
indica si se anota el export incremental en las
tablas SYS.INCVID y en SYS.INCEXP.
PARFILE
indefinido
el fichero de parámetros.
15
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Modos de Export
Existen tres modos de realizar una exportación de datos:
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 más los clusters, enlaces de BD, vistas, sinónimos
privados, secuencias, procedimientos, etc. del usuario.
Modo BD Entera
Además de todo lo del modo Usuario, exporta los roles, todos los sinónimos, los
privilegios del sistema, las definiciones de los tablespaces, las cuotas en los tablespaces,
las definiciones de los segmentos de rollback, las opciones de auditoría 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 sólo los cámbios en los datos y en las definiciones.
Completo
Exporta todas las tablas de la BD e inicializa la información sobre la exportación
incremental de cada tabla. Después de una exportación completa, no se necesitan los
ficheros de exportaciones acumulativas e incrementales de la BD anteriores.
$ exp userid=system/manager full=y inctype=complete constraints=Y file=full_export_filename
Acumulativo
Exporta solo las tablas que han sido modificadas o creadas desde la última exportación
Acumulativa o Completa, y registra los detalles de exportación para cada tabla exportada.
Después de una exportación acumulativa, no se necesitan los ficheros de exportaciones
incrementales de la BD anteriores.
$expuserid=system/manager full=y inctype=cumulative constraints=Y file=cumulative_export_filename
Incremental
Exporta todas las tablas modificadas o creadas desde la última exportación Incremental,
Acumulativa o Completa, y registra los detalles de exportación para cada tabla exportada.
Son interesantes en entornos en los que muchas tablas permanecen estáticas por periodos
largos de tiempo, mientras que otras varían y necesitan ser copiadas. Este tipo de
exportación es útil cuando hay que recuperar rápidamente una tabla borrada por
accidente.
$ exp userid=system/manager full=y inctype=incremental constraints=Y file=incremental_export_filename
16
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
RECUPERACION DE BACKUPS LÓGICOS:
Oracle dispone de la herramienta import para restaurar los datos de una BD a partir de los
ficheros resultados de un export. Import lee los datos de los ficheros de exportación y ejecuta las
sentencias que almacenan creando las tablas y llenándolas de datos.
Parámetros del Import
Parámetro
Defecto
Descripción
USERID
indefinido
el username/password del usuario que efectua el
import.
BUFFER
dependiente
SO
FILE
expdat.dmp
el nombre del fichero de exportación a importar.
SHOW
No
indica si se muestran los contenidos del fichero de
exportación, sin importar ningún dato.
IGNORE
Yes
indica si ignorar los errores producidos al importar un
objeto que ya existe en la BD.
GRANTS
Yes
indica si se importan también los derechos.
INDEXES
Yes
indica si se importan también los índices.
ROWS
Yes
indica si se importan también las filas de las tablas.
FULL
No
indica si se importan el fichero entero.
FROMUSER
Indefinido
una lista de los usuarios cuyos objetos se han
exportado.
TOUSER
Indefinido
una lista de los usuarios a cuyo nombre se importan los
objetos.
TABLES
indefinido
la lista de tablas a importar.
RECORDLENGTH
dependiente
SO
INCTYPE
indefinido
el tipo de import incremental (SYSTEM o RESTORE).
COMMIT
No
indica si se efectua un commit después de importar
cada fila. Por defecto, import efectua un commit
después de cargar cada tabla.
PARFILE
indefinido
el fichero de parámetros.
del
del
El tamaño en bytes del buffer utilizado.
la longitud en bytes del registro del fichero.
17
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Para importar un export incremental se puede efectuar la siguiente secuencia de pasos:
1. Utilizar la copia más reciente del import para restaurar las definiciones del sistema:
$ imp userid=sys/passwd inctype=system full=Y file=export_filename
2. Poner los segmentos de rollback online.
3. Importar el fichero de exportación completa más reciente:
$ imp userid=sys/passwd inctype=restore full=Y file=filename
4. Importar los ficheros de exportación en modo acumulación desde la exportación
completa más reciente, en orden cronológico:
$ imp userid=sys/passwd inctype=restore full=Y file=filename
5. Importar los ficheros de exportación en modo incremental desde la exportación completa
o acumulativa más reciente, en orden cronológico:
$ imp userid=sys/passwd inctype=restore full=Y file=filename
18
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
BACKUPS DESDE ENTERPRISE MANAGER:
Una vez logueados en EM, iremos al apartado “Disponibilidad” y apuntaremos a
“Planificar Copia de Seguridad”.
Como vemos nos da 2 opciones a elegir. En este documento analizaremos la opción
personalizada con toda la la base de datos.
Dedeberemos conectarnos con los credenciales de host para realizar esta tarea.
19
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Como es la primera copia que realizamos deberiamos elegir “Copia de Seguridad
Completa”
Para el modo de copia elegiremos si deseamos hacer la copia con la base de datos
abierta o cerrada.
En las opciones avanzadas tan solo añadiremos que realize copia tambien de los archive
logs.
20
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
En este paso elegiremos el destino de la copia. Como no dispongo de dispositivo de
cintas paso a continuar explicando la opción “Disco”. (La ubicación que ha tomado para la
opción “Disco” esta asignada desde RMAN).
21
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Introducimos nombre si lo deseamos y la descripción, y lo planificamos para que se
realize una vez y de forma inmmediata.
22
Proyecto 6. Copias de seguridad y restauración.
Revisamos que todo esté correcto y ejecutamos el trabajo.
Si todo a ido bien deberia aparecer esto:
23
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
RECUPERACIÓN DESDE ENTERPRISE MANAGER:
Para realizar una recuperación desde EM, iremos a “Disponibilidad” y seleccionamos
Realizar Recuperción.
En ambitos de recuperación podemos seleccionar toda o parte de la base de datos para
recuperar.
Para el ejemplo hemos borrado el datafile USERS01.DBF(OFFLINE) despues de
realizar el backup y ahora vamos a intentar recuperarlo. Para ello usaremos la copia que
acabamos de realizar.
Iniciamos oracle en modo mount y arrancamos EM.
Al no poder iniciar nos encontramos con esto una vez logueados.
24
Proyecto 6. Copias de seguridad y restauración.
Pinchamos en Realizar Recuperación.
Introducimos los credenciales de host.Continuar
Nos conectamos como sysdba.
25
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
En el ambito de recuperación elegimos Archivos de Datos y en el tipo de operación
restaurar hasta hora actual. Pinchamos en recuperar.
26
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Vemos como EM localiza la ruta en conflicto y te la presenta para seleccionarla.
Siguiente.
También podemos definir el destino de la restauración. Para el ejemplo nos interesa que
se ubiquen en el mismo directorio.
27
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Podemos revisar los parametros RMAN para ver y comprender las acciones realizadas
por debajo de EM. Una vez todo revisado procedemos a ejecutar.
Esto lo que hara será tomar del backup el fichero y llevarlo al destino aplicandole los
cambios hasta el momento de la perdida permitiendo asi el inicio normal de la BD con
tablespace online.
Una vez finalizado podemos pinchar en Abrir Base de Datos y esta se reiniciara y se
abria automaticamente despues de ver insertado nuestros credenciales.
.
28
Proyecto 6. Copias de seguridad y restauración.
VISTAS DINÁMICAS:
V$DATAFILE(Fichero de datos)
V$TABLESPACE(Tablespaces)
29
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Proyecto 6. Copias de seguridad y restauración.
V$CONTROLFILE(Ficheros de Control)
V$LOGFILE(Ficheros Redo Log)
30
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
V$ARCHIVED_LOG(Archivado de Logs)
V$PARAMETER(Interesante vista para ver los parametros de Oracle)
31
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
AUTOBACKPS CONTROLFILE:
Para activar los backup automaticos de los ficheros de control podemos recurrir a
RMAN.
ACTIVANDO:
1.Abrimos una ventana de RMAN(C:\rman target <user/pwd>@<SID>
2.Una vez dentro, si queremos, podemos ejecutar un show all para ver los valores por
defecto.
3.Especificamos la ruta destino:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE
TYPE DISK TO 'E:\backups_oracle\AUTO_backup\ORCL_%F.ctl.bck';
4.Activamos haciendo lo siguiente:
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON;
NOTA: No se generaran los backups hasta que haya un cambio en la estructura de la BD.
DESACTIVANDO:
Para desactivar entramos en RMAN y ejecutamos:
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP OFF;
32
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
CLONACIÓN DE LA BD CON RMAN:
1.- Se debe generar un listener, el cual contenga las entradas de la instancia nueva y claro, el
origen de donde sacaremos los datos.
LISTER11G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle11g.inmotion.cl)(PORT = 1521))
)
SID_LIST_LISTER11G =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = copia)
(ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1)
(SID_NAME = copia)
)
)
2.- Al momento
de levantar el listener, debe estar proporcionando disponibilidad a ambos
servicios.
3.- Se debe añadir la siguiente entrada al archivo tnsnames.ora
copia =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle11g.inmotion.cl)(PORT
= 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = copia))
)
4. -Se debe generar un archivo de password, dado que el DUPLICATE ACTIVE DATABASE
se conecta mediante SYSDBA a la instancia remota. Como observación , la password debe ser
exactamente la misma , entre la instancia de origen y la de destino.
5.- Se debe iniciar la instancia auxiliar en estado NOMOUNT , en esta instancia es donde
quedarán los datos de la primaria.
6.- Nos conectamos a RMAN , con la instancia primaria , la base de datos debe estar abierta.
7.- Nos conectamos a través de RMAN a la instancia auxiliar.
8.- Se deben generar todos los directorios nuevos que vamos a utilizar en nuestra nueva
instancia
9.- Ahora podemos ejecutar nuestro comando DUPLICATE DATABASE mediante RMAN , de
la siguiente forma.
33
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
run {
set newname for datafile '/u01/app/oracle/oradata/orcl/users01.dbf'
'/u01/app/oracle/oradata/copia1/users01.dbf';
set newname for datafile '/u01/app/oracle/oradata/orcl/undotbs01.dbf'
'/u01/app/oracle/oradata/copia2/undotbs01.dbf';
set newname for datafile '/u01/app/oracle/oradata/orcl/sysaux01.dbf'
'/u01/app/oracle/oradata/copia3/sysaux01.dbf';
set newname for datafile '/u01/app/oracle/oradata/orcl/system01.dbf'
'/u01/app/oracle/oradata/copia4/system01.dbf';
to
to
to
to
duplicate target database to copia
from active database
db_file_name_convert '/u01/app/oracle/oradata/orcl' ,
'/u01/app/oracle/oradata/copia'
spfile parameter_value_convert = '/u01/app/oracle/admin/orcl' ,
'/u01/app/oracle/admin/copia'
set log_file_name_convert =
'/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/copia'
set audit_file_dest='/u01/app/oracle/admin/copia/adump'
set log_archive_dest_1=''
set memory_target='183001600'
set dispatchers='(PROTOCOL=TCP) (SERVICE=copia)'
set
control_files='/u01/app/oracle/oradata/copia1/control01.ctl','/u01/app/oracle/
oradata/copia2/control02.ctl','/u01/app/oracle/oradata/copia3/control03.ctl'
set db_recovery_file_dest_size = '2294967296';
}
34
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
POLÍTICA DE COPIAS:
Temas a tener en cuenta al momento de la creación de una estrategia de backup
1. Elección del tipo de backup
-Backup total (whole) de la base de datos
-Consistente
-Inconsistente
- Backup de Tablespaces
- Backup de Datafile
- Backup del Archivo de Control
- Backups Lógicos
2. Elección del método de backup
Metodos disponibles:
Metodo de Backup
Tipo
Versión
Disponible
Requerimientos
Recovery Manager
(RMAN)
Fisico
Oracle 8 ó mayor
Almacenamiento en disco ó cinta
Backup Manual (S.O.) Fisico
Todas las
versiones
Herramienta de copia de archivos del
sistema operativo
Export
Lógico
Todas las
versiones
N/A
Enterprise Backup
Utility (EBU)
Fisico
Oracle 7
Almacenamiento externo
35
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
Tipos de backup disponibles:
Tipo de backup
RMAN
Backup Manual
Export
Backup en frio (Cold
Backup - Closed
Backup)
Soportado - Requiere que
la instancia esté montada
Soportado
NO soportado
Backup en caliente
(Hot Backup - Open
Backup)
Soportado en forma
automática
Requiere los
comandos
Begin/End
Backup
Requiere Undo para
mantener
consuistencia
Backup Incremental
Soportado
NO soportado
NO soportado
Detección de bloques
corruptos
Soportado. Se visualiza
con las vistas
NO soportado
V$BACKUP_CORRUPTI
ON
Soportado. Se
visualiza en el Log.
Catálogo de backups
Soportado
NO soportado
NO soportado
Resguardo de archivos
Soportado
de inicio
Soportado
NO soportado
Comandos
independientes S.O.
NO soportado
Soportado
Soportado
3. Elección del formato de Backup
- Juegos de Copias (Backup Sets)
- Copias Imágen
- Backups con comandos del sistema operativo
- Backups Lógicos
4. Desarrollar la estrategia de backup
- Decidir si ejecutar la instancia en modo ARCHIVELOG ó NOARCHIVELOG
- Multiplicar el Archivo de Control, Online Redo Logs, y Archived Redo Logs
- Determinación de la frecuencia de los backups
- Realización de backups cuando se realizan cambios estructurales
- Backups frecuentes de los tablespaces más utilizados
- Realización de backups despues de actividades irrecuperables (nolog)
- Almacenamiento de backups históricos
- Exportación de datos de la base de datos para obtener protección adicional y flexibilidad
NOTA: Nunca hacer backups de los archivos Redo Log a menos que sea un backup en frio.
36
Proyecto 6. Copias de seguridad y restauración.
Por Raúl Lobo Medinilla
2ºASI
IES Gonzalo Nazareno
5. Desarrollar una estrategia de recuperación.
- Verificación de las estrategias de recuperación
- Manejo de los fallos no provenientes del medio físico
- Fallos de sentencia
- Fallos del Proceso de Usuarios
- Errores de usuario
- Fallos de instancia
- Recuperación de un fallo en el medio físico
- Fallo de un disco que contiene al menos un archive de la base de datos
- Un archivo de datos, archived log ó archivo de control que se elimina
accidentalmente o se sobrescribe o se corrompe
- Metodo de recuperación:
- Determinar qué archivos requieren restauración.
- Determinar el tipo de recuperación requerido: Completo ó Incompleto, con la
base de datos Abierta ó Cerrada
- Restaurar los archivos necesarios de las copias del backup o de una copia
imagen
- Aplicar los registros redo (y/o backups incrementales cuando corresponda)
para recuperar los archivos de datos.
-Re-abrir la base de datos. Si se realizó una recuperación incomplete, iniciar la
instancia con la opción RESETLOGS.
37
Descargar