none
Restauración base de datos dependiendo la fecha y hora de creación del backup RRS feed

  • Pregunta

  • Buen día, necesito realizar una restauración de una serie de backups desde una carpeta en un SFTP. la idea es automatizar el proceso haciendo que restaure el full mas reciente y el diferencial mas reciente. al plan de backups es un full semanal y un diferecial diario. gracias por sus recomendaciones.
    viernes, 7 de abril de 2017 14:00

Respuestas

  • Si lo vas a "automatizar", eso implica que en algun sitio tienes un script o programa que es el que se encarga de esa automatizacion. Lo razonable seria que, usando las herramientas de programacion que aporte ese entorno, selecciones de la carpeta de backups aquellos que tengan la version mas reciente. Presumiblemente estas insertando dentro del nombre del fichero algun dato que permita hacer dicha identificacion, tal como el tipo (full o diferencial) y la fecha. Esos dos datos serian los que buscaria el script de automatizacion. Una vez que ya tengas los archivos, simplemente construyes los dos comandos RESTORE, poniendo al final "WITH NO RECOVERY" al restaurar el Full y "WITH RECOVERY" al restaurar el diferencial.
    • Marcado como respuesta Diego Wilches viernes, 7 de abril de 2017 19:21
    viernes, 7 de abril de 2017 14:19
  • Si solo quieres usar SQL como lenguaje de scripting, el problema es que SQL por sí solo no tiene la capacidad de acudir a un directorio en disco para examinar los archivos, salvo que previamente se configura alguna otra cosa que le proporcione esa información. El script que señalabas lo que hace es consultar las tablas que tienen el historial de backups, y a partir de ahí deduce cuáles son los que hay que restaurar. Esto es válido si restauras en un servidor que tiene el historial, pero no si los restauras en otro sitio y necesitas averiguar cuáles son los archivos necesarios examinando una carpeta.
    • Marcado como respuesta Diego Wilches viernes, 7 de abril de 2017 19:21
    viernes, 7 de abril de 2017 17:39

Todas las respuestas

  • Si lo vas a "automatizar", eso implica que en algun sitio tienes un script o programa que es el que se encarga de esa automatizacion. Lo razonable seria que, usando las herramientas de programacion que aporte ese entorno, selecciones de la carpeta de backups aquellos que tengan la version mas reciente. Presumiblemente estas insertando dentro del nombre del fichero algun dato que permita hacer dicha identificacion, tal como el tipo (full o diferencial) y la fecha. Esos dos datos serian los que buscaria el script de automatizacion. Una vez que ya tengas los archivos, simplemente construyes los dos comandos RESTORE, poniendo al final "WITH NO RECOVERY" al restaurar el Full y "WITH RECOVERY" al restaurar el diferencial.
    • Marcado como respuesta Diego Wilches viernes, 7 de abril de 2017 19:21
    viernes, 7 de abril de 2017 14:19
  • Alberto buen día, encontré el siguiente script pero no lo entiendo muy bien https://gallery.technet.microsoft.com/scriptcenter/Script-Restore-Automtico-faf3aca9 , la idea es programar un job que identifique la antiguedad y restaure. no deseo utilizar otra herramienta ya que solo cuento con SQL.

    gracias!

    viernes, 7 de abril de 2017 14:38
  • Si solo quieres usar SQL como lenguaje de scripting, el problema es que SQL por sí solo no tiene la capacidad de acudir a un directorio en disco para examinar los archivos, salvo que previamente se configura alguna otra cosa que le proporcione esa información. El script que señalabas lo que hace es consultar las tablas que tienen el historial de backups, y a partir de ahí deduce cuáles son los que hay que restaurar. Esto es válido si restauras en un servidor que tiene el historial, pero no si los restauras en otro sitio y necesitas averiguar cuáles son los archivos necesarios examinando una carpeta.
    • Marcado como respuesta Diego Wilches viernes, 7 de abril de 2017 19:21
    viernes, 7 de abril de 2017 17:39