none
Dispositivo de copias de seguridad y expiración. RRS feed

  • Pregunta

  • Hola,

    En un dispositivo de copias de seguridad voy guardando copias de seguridad de una base de datos siguiendo un plan de mantenimiento que hace una copia completa al día, varias diferenciales y varias del log de transacciones.

    Mi idea es que ese dispositivo se vaya llenando de copias, pero que cuando ya no tenga más expacio deseche las partes que van expirando y siga añadiendo las nuevas partes de copias de seguridad. Una especie de cola de copias.

    Pensaba que esto funcionaría así al ponerle fecha de expiración a las partes de copia, pero cuando ha llegado al tamaño máximo, la copia completa como no cabe no la realiza.

    ¿Es posible hacer algo así? Sino, qué soluciones se pueden tomar.

    Gracias.

    lunes, 19 de enero de 2015 7:59

Respuestas

  • No es posible hacerlo con un único dispositivo de copia. Para ir expirando las copias antiguas, hay que grabarlas en ficheros separados e ir borrando los ficheros antiguos. Esto es más fácil hacerlo si se envía la copia directamente al fichero (con el "...to disk='...'), en lugar de a un dispsitivo, que tiene un nombre de fichero "fijo".

    La fecha de expiración básicamente no sirve para nada. Se utiliza cuando estás grabando un backup en cinta para el caso de que intentes "sobreescribir" una cinta que todavía no ha alcanzado la fecha de expiración, y entonces te da un aviso de que ese backup aún es válido.

    Para desechar las copias antiguas hay que hacer un Job del Agente que vaya borrando esos ficheros con la periodicidad deseada. El mecanismo de backup por sí sólo no sabe limpiar las copias antiguas.

    • Marcado como respuesta mianrube lunes, 19 de enero de 2015 13:46
    lunes, 19 de enero de 2015 8:23
  • Simplemente comparte la unidad externa como carpeta compartida, y pones el nombre UNC de la carpeta compartida al hacer el comando de backup:

    BACKUP DATABASE [MiBase] TO DISK='\\ordenador\carpetacompartida\directorio\mibase.bak'

    Recuerda dar permisos adecuados sobre la carpeta compartida. Los permisos hay que dárselos a la cuenta de servicio que ejecuta SqlServer (no a la cuenta de usuario que ejecuta el comando de backup).

    • Propuesto como respuesta Enrique AA lunes, 19 de enero de 2015 13:44
    • Marcado como respuesta mianrube lunes, 19 de enero de 2015 13:45
    lunes, 19 de enero de 2015 11:16

Todas las respuestas

  • No es posible hacerlo con un único dispositivo de copia. Para ir expirando las copias antiguas, hay que grabarlas en ficheros separados e ir borrando los ficheros antiguos. Esto es más fácil hacerlo si se envía la copia directamente al fichero (con el "...to disk='...'), en lugar de a un dispsitivo, que tiene un nombre de fichero "fijo".

    La fecha de expiración básicamente no sirve para nada. Se utiliza cuando estás grabando un backup en cinta para el caso de que intentes "sobreescribir" una cinta que todavía no ha alcanzado la fecha de expiración, y entonces te da un aviso de que ese backup aún es válido.

    Para desechar las copias antiguas hay que hacer un Job del Agente que vaya borrando esos ficheros con la periodicidad deseada. El mecanismo de backup por sí sólo no sabe limpiar las copias antiguas.

    • Marcado como respuesta mianrube lunes, 19 de enero de 2015 13:46
    lunes, 19 de enero de 2015 8:23
  • Gracias. Perfecto, voy a configurarlo como dices para enviar las copias directamente a disco a disco.
    lunes, 19 de enero de 2015 8:41
  • Otra cosa, porque quiero que las copias se vayan haciendo en una unidad externa que tengo mapeada como unidad de red. ¿Cómo puedo hacer eso?
    lunes, 19 de enero de 2015 8:53
  • Simplemente comparte la unidad externa como carpeta compartida, y pones el nombre UNC de la carpeta compartida al hacer el comando de backup:

    BACKUP DATABASE [MiBase] TO DISK='\\ordenador\carpetacompartida\directorio\mibase.bak'

    Recuerda dar permisos adecuados sobre la carpeta compartida. Los permisos hay que dárselos a la cuenta de servicio que ejecuta SqlServer (no a la cuenta de usuario que ejecuta el comando de backup).

    • Propuesto como respuesta Enrique AA lunes, 19 de enero de 2015 13:44
    • Marcado como respuesta mianrube lunes, 19 de enero de 2015 13:45
    lunes, 19 de enero de 2015 11:16