ORACLE: BACKUP RMAN

  • Se normaliza 3 copias de seguridad
    • 1 a la mano
    • 2 administración
    • 3 fuera de la organización
  • Los datos se guardan en Tablespaces
  • Los que hay que respaldar son los de usuarios no los de oracle por que se reinstala y ya
  • en Oracle hay componentes que se llaman DATA RECOVERY
    • son archivos, componentes e información que se deben configurar para que esten funcionando
  • A nivel de disco instalación basica
    • d1 -> SO ORACLE
    • d2->Datos de usuario
  • Pero con data recovery otro disco pero hay que configurarlo
  • Oracle recomienda redondar
  • Oracle todo funciona en memoria las genera en memoria hasta que haga commit y luego se guardan en los Redo Logs
    • INSERT
    • CREATE
    • INSERT
  • En estos registros se guardan en redo logs de manera TEMPORAL contiene información como
    • ID operación
    • Usuarios
    • Fecha
    • Sentencias
  • Son temporales se gurdan como 20 minutos
  • Redo log como funciona
    • si hay muchas operaciones se llena el 1 y sigue con el 2
  • Y regresa al 1 pero como no se pueden perden
  • hay otro componente que es una carpeta llamado FRD / Fast Recovery que crea una carpeta donde copia el contenido de r1 al archivo y lo guarda
  • Y cuando ya aseguro borra el contenido del r1
  • y permite grabar
  • y continua el proceso
  • Data recovery
    • Redo Logs: la información mas reciente
    • FRAD: Archivelog.ARC Información archivada
  • Los ARC hay que configurarlos
    • en modo ArchiveLog o si no no esta haciendo data recovery

1. Redo log

  • forman parte de la data recovery
  • Se organizan en grupos
  • Oracle recomienda 3 miembros minimo
  • y cada uno en disco distinto
  • Se guardan las operaciones en binario
  • Multiplexado se graban en paralelo
U: SYSTEM
P: oracle
  • Consultar los archivos
----------------------------------------------------
-- 1. Listar los archivos REDO LOG
----------------------------------------------------
SELECT * FROM V$LOGFILE
  • Asi podemos ver los miembros
  • Vemos los discos
  • SO Oracle
  • podemos ver que los grupos estan en los mismos discos /u01
  • Se se daña perdemos so y datos
  • Y le damos la carga de lso redo logs el disco se puede saturar
  • La otra vista nos muestra un estado de cada grupo
----------------------------------------------------
-- 2. Mostrando el estado de los Grupos Redo
----------------------------------------------------
SELECT * FROM V$LOG
  • Redo log graba en el primer grupo y luego pasa al siguiente
  • Current es el grupo activo
  • podemos cambiar el el logfile
  • Aplicamos
  • Cuando se llena pasa al 1 y se asume que se paso al archivado
  • Problema todo esta en el mismo disco
  • Para moverlos
  • Creamos unas carpetas para redo
  • Agregamos miembro a grupo1
----------------------------------------------------
-- 3. Agregar un miembro adicional a cada Grupo
----------------------------------------------------
ALTER DATABASE ADD LOGFILE MEMBER
'/u02/redo/redo_m1_g1.log'
TO GROUP 1;
ALTER DATABASE ADD LOGFILE MEMBER
'/u03/redo/redo_m1_g2.log'
TO GROUP 2;
ALTER DATABASE ADD LOGFILE MEMBER
'/u04/redo/redo_m1_g3.log'
TO GROUP 3;
  • Consultamos y ya tenemos 5 miembros
  • Hay que eliminar entonces los otros para que el disco no tenga sobre carga
  • Primero hay que sincromizar cambiando el switch para que se sincornicen ejecutamos esto varias veces
  • No podemo elimoinar el mimebro si el fg1 esta activo
----------------------------------------------------
-- 5. Eliminar un miembro de un Grupo
----------------------------------------------------
ALTER DATABASE DROP LOGFILE MEMBER '/u04/redo/redo_m1_g3. log';
  • Resultado
  • Esto cuando es en filesystem (menos de 10000 usuarios) se maneja asi
  • Cuando son mas usarios se usa asm que es una licencia especial que maneja esto

Zona FRA

  • Es la carpera de arcivelog donde esta?
  • Donde esta
--------------------------------------------------------
-- 3. Configure la zona FRA para ubicarla en “/u03/fra”
--------------------------------------------------------
Ubicación actual
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'db_recovery_file_dest';
  • Esto nos dice que cantidad de sesiones tenemos
  • Esto nos dice donde esta la zona FRA
  • vamos hacer que se llenen los redo logs
  • para que se graben en los FRA se graban aqui y crea una carpeta por dia
  • Crear datos
CREATE TABLE ARTICULOS ( id integer , NOMBRE VARCHAR(50) );
BEGIN
FOR i IN 1..200000 LOOP
INSERT INTO ARTICULOS VALUES ( I, 'ART_' || I );
COMMIT;
END LOOP;
DBMS_OUTPUT.PUT_LINE ('FINALIZADO');
END;
  • y si vamos a la carpeta vemos que no se crearon si no que regresa a g1 o sea no esta en modo Archivado no se esta generando data recovery
  • Si entgramos a RMAN y tratamos de hacer backup no sirve por que no esta en modo NOARCHIVELOG
  • Configurar modo archivado
  • Coinsultar modo
----------------------------------------------------
-- 1. Consultar el MODO archivado de la BD
----------------------------------------------------
SELECT LOG_MODE FROM V$DATABASE;
  • Para activarlo modo archivo
----------------------------------------------------
-- 2. Configurar la BD en Modo Archivado
----------------------------------------------------
CMD> SQLPLUS / AS SYSDBA
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MOUNT
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
  • Una vez levantado con archive
  • Creamos carpeta para almacenar la zona FRA
--------------------------------------------------------
-- 3. Configure la zona FRA para ubicarla en “/u03/fra”
--------------------------------------------------------
Ubicación actual
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'db_recovery_file_dest';
Ubicación nueva ( /u02/fra )
$ mkdir /u03/fra
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u03/fra' SCOPE = BOTH;
  • SCOPE = BOTH; grabelo en memoria para que lo haga inmediato y guardelo en la tabla
  • Vamos la carpeta
  • Corremos el proceso
  • los crea
  • Contiene las operaciones
  • Si se corrempe un arc podemos recuperar hasta este punto
  • Podemos hacer un script de linux para que respalde en la nube
  • o podemos hacer una oracle dataguard que es una copia en la nube

3. BACKUP: Recovery Manager RMAN

  • Oracle crea una carpeta donde todos los dias se crea una back de lo historial esto dentro de la zona FRA
  • Permite hacer
    • backup
    • Restore
  • Como ingresamos
rman target
  • No se le da el nombre el se encarga
  • ingresamos
  • backup (se guarda en la zona FRA)
  • Solo contiene los datafiles no redo logs ni archivelog
  • Se crean
  • El tiene un catalogo de los bck que tiene y el se encarga de restaurar
  • Que se debe guardar para poder restaurar
  • vamos a botar la bd

CASO1: Recovery

  • Creamos nuevo TB
  • Creamos carpeta
Caso 1 : PERDIDA DE TABLESPACE Y RESTAURACION EN LA MISMA UBICACION
Se trata de un TABLESPACE que fue dañado y se requiere restaurarlo en la misma ubicación.
-- 1. CREANDO ESCENARIO:
CREATE TABLESPACE TBS_DATA
DATAFILE '/u02/datos/data01.dbf' SIZE 10M;

CREATE TABLE CURSO ( NOMBRE CHAR(50)) TABLESPACE TBS_DATA;

INSERT INTO CURSO VALUES ('ORACLE');
INSERT INTO CURSO VALUES ('SQL');

COMMIT;

SELECT * FROM CURSO;
  • Ahorita estos datos estan en memoria redolog o ARC
  • el tB se crea pero no tiene los datos
  • Borramos el data file
  • Consultamos y si estan los datos
  • Oracle va seguir trabajando hasta que se corra un proceso interno que se de cuenta que no hay un datafile
  • Podemos forzar a que guarde a disco baja todo lo de menoria a disco
  • Solucion
Para iniciar proceso de restauración , debemos llevar a la base de datos en el modo MOUNT
Con el RMAN:
RMAN> STARTUP MOUNT;
RMAN> RESTORE TABLESPACE TBS_DATA;
RMAN> RECOVER TABLESPACE TBS_DATA;
RMAN> ALTER DATABASE OPEN;
Comprobando restauración:
SQL> SELECT * FROM CURSO;
  • Hay 2 acrhivos importantes al iniciar la BD
    • Control file: tiene información de todos los procesos, backup, etc
  • Proceso
    • RESTORE TABLESPACE TBS_DATA;
      • Tiene el ultimo bak de esto -> no existe
      • Existe en el redo log y ARC RECOVER TABLESPACE TBS_DATA;
      • y luego abrimos ALTER DATABASE OPEN;
  • Ingresamos BD con error no iniciada
  • Montamos
  • Restaurar TB
    • crea el tb del back (si existe)
    • Si no lo crea limpio
  • Complementar redo log y ARC
  • iniciamos
  • Comprobamos

Caso2: con asesor

  • Herramienta Asessor de recuperación del rman
  • Consultamos los data files
  • Borramos varios archivos
  • checkpoint
  • la BD no sirve y se trata de levantar
  • Esto indica que sp file esta b ien
  • Esto indica que el controlfile esta bien
  • Esto ques un datfile
  • Entramos a traget
  • Mountamos
  • Listamos arcvhivos
list failure;
  • pedir mas detalles
list failure 102 detail;
list failure 142 detail;

Asesorar en fallas

  • Asesorame
advise failure 142;

vamos a la carpeta

  • o muestramelo en pantalla
repair failure preview;
  • Y si quiere que lo aplique
  • caso 2 102
  • quiere abriri la BD
  • Datos restaurados