Hola, alguien sabe si existe una manera de crear un script que genere los archivos necesarios para pasar a otro servidor y restaurar una bd a un tiempo especifico. Los archivos que se generan cuando se ejecuta por ejemplo:

restore database until time "to_date('20091208 17:00:00','YYYYMMDD HH24:MI:SS')" preview;

Esto es ya que necesito estar pasando una base de produccion a desarrollo en un tiempo especifico casi de manera diaria. Estos los mando por scp al otro server pero debo estar cortando y pegando los archivos necesarios.

Gracias
Like it on Facebook, +1 on Google, Tweet it or share this topic on other bookmarking websites.
  • Re: Script para pasar archives y respaldos de rman

    by » 10 years ago


    Qué tal?
    Lo que quieres es como un Dataguard manual? es decir que por ejemplo, se le estén aplicando los archives cada media hora?? O de plano necesitas que se restaure completamente por las noches??

    Como comentas que es desarrollo, una bbdd de tipo Dataguard no sería muy indicada... así que para el caso que necesites un restore completo, te comento lo siguiente:

    Si tienes una BD grande no se me hace muy buena idea pasarla toda... qué pasará si no alcanza a copiarse el full backup?? no generaría un tráfico en la red impresionante?? Por la noche no tienes procesos importantes? Aparte el scp, rsync, etc, afecta el rendimiento (IO) del primario, no?

    Se me ocurre una idea... mira:

    1. Puedes copiar un full backup sólo los domingos, para no impactar la red o algo similar, a tu servidor secundario.

    2. Puedes crear un script, para que copie los nuevos acrhives generados en el primario de forma diaria. Sólo ojo, si lo haces con RSYNC puede que te borre archives necesarios en el destino.

    2.1 El script que copiará los archives puede ejecutarse por las noches solamente. Aunque recuerda que solo son los archives... si no es muy transaccional; es decir, si no hay mucho log swicthing (con relación al tamaño de los redo logs), seguramente será poca info a copiar.

    3. Imaginemos si es miércoles... el script lo que haría es un "catalog" (opcional), "restore database from... (backup del domingo)"

    3.1 Después de restaurar, aplicarías los archives generados (recién copiados del primario). Aunque el único "inconveniente" es que estarías haciendo un "recover" de los archives desde el lunes.

    4. Creas un script que cada domingo, después del copy completo del full backup, borre los archives de la semana pasada.

    ¿Qué te parece? De esta forma, sólo copiarías diariamente los archives, sin que pases el full backup, y la tendrías sincronizada de forma diaria. Y si es una base de datos grande, pero poco transaccional, pues la idea te queda como anillo al dedo :)

    Coméntanos qué pasó o si tienes dudas!

    Un saludo,
    Carlos Isaas Contreras.
    DBA Support Europa.

    DBASupport Team

  • Re: Script para pasar archives y respaldos de rman

    by » 10 years ago


    Me parece buena idea eso de copiar un full backup cada fin de semana, pero sabes si existe alguna tabla donde pueda ver los backups que se generaron? Es puede ser por ejemplo que hoy me pidan restaurar la bd de desarrollo a como estaba ayer produccion a las 4:45 PM, mñana puede ser que me la pidan a la 11:00 AM y así van cambiando la hora debido a que se libero un sistema y estan corrigiendo mucha información. Yo lo que buscaría es que por medio de un query generara un script para poder copiar los archivos necesarios para poder restaurar la bd al tiempo que me lo están pidiendo. Los archivos que te pone rman cuando le das un restore preview.

    Saludos

  • Re: Script para pasar archives y respaldos de rman

    by » 10 years ago


    A mí se me ocurre que, para obtener los nombres completos de los archivos generados (archives), puedes construir un query muy fácil de la siguiente forma:

    1. Revisa el parametro log_archive_format, para ver en qué formato estás generando los nombres de los archives.

    Por ejemplo:
    %t_%s_%r.dbf

    Esto significa que los archives serán así:

    /u03/.../1_352_703441329.dbf

    Donde:
    {t=1=thread, s=352=sequence, r=703441329=resetlogs id para el punto de incarnación}

    2. Ahora mediante la vista dinámica v$log_history, construye un query concatenando los guines bajos, tomando como variable el campo DATE (que sería acorde a tu "restore.. until time..."), obtienes el thread# (%t del punto 1), SEQUENCE# (%s del punto 1) y para el tercero (resetlogs id) haz un join con el campo RESETLOGS_ID de la vista dinámica v$database_incarnation.

    3. Para tener la información sobre tu full backup, te sirve cualquier vista que contenga metadatos de backups, como son: v$RMAN_BACKUP_JOB_DETAILS y similares.

    ¿Qué te parece?

    Un saludo,
    Carlos Isaac Contreras.
    DBA Support Europa.

    DBASupport Team

  • Re: Script para pasar archives y respaldos de rman

    by » 10 years ago


    Gracias, si es lo que andaba buscando ya con eso puedo hacer un script gracias.

You do not have permissions to reply to this topic.
Powered by CjForum