martes, 18 de agosto de 2009

Como switchear los redologs periódicamente desde la base de datos

El siguiente procedimiento, te permite estar switcheando la información de redolog cada cierto periódo de tiempo, para asegurarnos que la información sea guardada a los archivos de archivelog, creando una ventana de tiempo máxima de pérdida de información.


CREATE OR REPLACE procedure switchear_log IS
v_cur integer;
v_result integer;

BEGIN
v_cur := dbms_sql.open_cursor;
dbms_sql.parse(v_cur,'alter system switch logfile',dbms_sql.native);
v_result := dbms_sql.execute(v_cur);
dbms_sql.close_cursor(v_cur);
END;

/

Este procedimiento, puede ser utilizado en conjunto con un job en la base de datos, para ser ejecutado cada hora ó el periódo de tiempo requerido.

---- Programación JOB ----
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'SWITCHEAR_LOG;'
,next_date => to_date('18/08/2009 18:10:02','dd/mm/yyyy hh24:mi:ss')
,interval => '/*1:Hr*/ sysdate + 1/24'
,no_parse => FALSE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' to_char(x));
COMMIT;
END;
/

5 comentarios:

  1. Perdona la pregunta, pero para que necesitas forzar logswitches? o para que version de oracle seria esto necesario.
    Puedes configurar oracle para hacer algo similar sin necesidad de crear un job. Ademas tienes los logswitches incrementales, etc. No veo la necesidad de un job para hacer esto

    ResponderEliminar
  2. Gracias por tu pregunta, en este caso más que forzar el switcheo de los redologs, que efectivamente son automáticos y que pueden ser abordados con la configuración de los parámetros FAST_START_MTTR_TARGET para especificar el tiempo máximo que la base de datos tomará en caso de requerir recuperación por alguna caída ó ARCHIVE_LAG_TARGET para definir el tiempo de switcheo automático de los redologs. Aquí hay que tener claro, que los parámetros no son definidos para ventanas de tiempo, si defines que cada 15 minutos, vas a estar switcheando los redologs, lo hará independientemente de que sea necesario ó no realizarlo. Que sucede si la operación del negocio, produce que durante las horas del día, el nivel transaccional sea sumamente elevado, pero durante la noche, es practicamente nulo.? El switcheo, se generaría independientemente si existe ó no la necesidad de escribir la información de las bitácoras ( redo logs ) a disco. Con el procedimiento, podrías configurar, por ejemplo en un ambiente linux, un crontab, de forma tal, que durante el día sea forzado el cambio de redologs cada 10 minutos, pero que durante la noche, el switcheo sea cada 2 o 3 horas. Esto podría ayudar a disminuir la cantidad de archivos de archivelog, que debes administrar o respaldar de forma tal vez innecesaria, para los intereses de la información transaccional.

    ResponderEliminar
  3. Al final, ciertamente toda la información es importante, pero la generación de estadísticas, puede disparar una cantidad importante de redo, así que tendrías en las noches por ejemplo, muchas archives, cuando podrías tener uno sólo de 500MB con todo el redo generado por la actualización de estadísticas.

    ResponderEliminar
  4. Hola Ronald tengo un problema con mi base de datos y en el preciso momento que estan realizando muchos procesos concurrentes la base de datos pide que se conecten de nuevo y a veces le dice conxion cerrada... he estado leyendo y al parecer es problema de los redologs...

    ResponderEliminar
  5. Buenas tardes, no creo sinceramente que se un problema de redologs, sin embargo, la única forma de saber lo que realmente esta sucediendo, sería revisando el alert de la base de datos, el log del listener o los traces de las sesiones de usuario que vayan quedando en el servidor. Creo que podrías empezar en ese orden, para poder determinar que es lo que realmente esta afectando tu base de datos. Si deseas me puedes enviar empacado el alert a mi cuenta de correo ronald.vargas.quesada@gmail.com y con gusto podría echarle un vistazo.
    Saludos.

    ResponderEliminar

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar