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