Algunos de mis compañeros de trabajo se sorprendieron cuando les dije que podía hacer una copia de seguridad de una base de datos de SQL Server mientras todavía se está ejecutando y me pregunté cómo era posible. Sé que SQL Server es capaz de hacer una copia de seguridad de una base de datos mientras aún está en línea, pero no estoy seguro de cómo explicar por qué es posible. Mi pregunta es ¿qué efecto tiene esto en la base de datos?
Si los datos se modifican (mediante una inserción, actualización o eliminación) mientras se ejecuta la copia de seguridad, ¿la copia de seguridad contendrá esos cambios o se agregará a la base de datos después?
Supongo que el archivo de registro juega un papel importante aquí, pero no estoy muy seguro de cómo.
editar: Solo como una nota, mi caso implica hacer una copia de seguridad de las bases de datos utilizando el Agente SQL Server y los efectos de las modificaciones de la base de datos durante este proceso.
fuente
Durante la copia de seguridad, se creará una instantánea para la base de datos y los datos se leerán para la copia de seguridad de esa instantánea. Las operaciones reales de DB en vivo no afectarán la operación de respaldo.
fuente
No puede simplemente copiarlo, ya que puede haber alteraciones en la copia de la base de datos a la mitad de lo que mencionó en la pregunta.
Tiene que hacerse con agentes que conocen la funcionalidad de la base de datos y luego toman una "instantánea" a través de las funciones del sistema operativo o pueden usar una utilidad para volcar la base de datos en un estado seguro (como mysqldump, si usa mysql).
De lo contrario, obtendrá una copia de seguridad que puede estar dañada y no la sabrá hasta que la restaure. Creo que Joel y Jeff recientemente hablaron un poco sobre esto en un reciente podcast de StackOverflow.
Y tiene razón en que el archivo de registro es importante. Si el archivo de diario / registro no está sincronizado con los datos reales, la restauración de los archivos provocará daños.
Se reduce a una copia de seguridad realizada utilizando un estado seguro de la base de datos, ya sea a través de un agente compatible con la base de datos o una aplicación de instantánea o aplicación que es consciente de cómo enganchar correctamente la base de datos en la caída de datos sin interferir con las actualizaciones durante el volcado de datos y luego respaldar arriba el archivo resultante.
fuente
Hay tantas maneras de hacer esto (en general, no tengo idea de cómo lo hace normalmente MSSQL) como simplemente volcar la base de datos al archivo y agregar cualquier cambio en un archivo de registro que se confirma después de que se completa el volcado, para utilizar una instantánea específica del sistema de archivos características como VSS en Windows.
fuente
Puede tomar lo que se conoce como copia de seguridad de solo copia. No afectará la base de datos mientras está en línea
fuente