Como no está familiarizado con el BACKUP DATABASE
comando T-SQL , pensé en agregar algunos detalles al respecto.
Probablemente desee ejecutar algo similar a la siguiente declaración a través del servicio del Programador de tareas de Windows, ya que no tiene acceso al Agente SQL Server (veo en sus otras preguntas, usa SQL Server Express).
BACKUP DATABASE [xyz]
TO DISK = 'C:\somepath\mybackupfile.bak'
MIRROR TO DISK = 'D:\somepath\myotherbackupfile.bak'
WITH FORMAT
, INIT
, SKIP
, STATS = 1;
Es posible que desee considerar encarecidamente que la MIRROR TO
cláusula apunte a alguna ubicación que no esté en su máquina local, ya que si pierde su máquina local por completo, es posible que no pueda acceder a ninguno de los archivos de copia de seguridad. La especificación de una MIRROR TO
cláusula requiere que especifique la FORMAT
palabra clave en la WITH
cláusula la primera vez que ejecuta esa declaración de respaldo.
Puede usar el nombre de un recurso compartido de Windows, \\SomeServer\SQLBackups\MyBackupFile.bak
siempre y cuando los permisos de seguridad en el recurso compartido permitan el acceso al servicio del Programador de Windows.
La WITH FORMAT, INIT
parte le dice a SQL Server que sobrescriba cualquier copia de seguridad existente que pueda estar en los archivos de copia de seguridad. Puede cambiar esto a WITH NOINIT
una vez que haya completado la primera copia de seguridad reflejada si desea que se guarden varias copias de seguridad (es decir, copias de seguridad de diferentes momentos) en esos archivos. NOSKIP
le dice a SQL Server que no verifique la caducidad de la copia de seguridad, entre otras cosas. STATS = 1
mostrará la salida en 1
incrementos porcentuales. Puedes cambiar este número a lo que quieras. Utilizo 1
para bases de datos muy grandes, ya que da alguna indicación de progreso.
Para que esto se ejecute a través del servicio del Programador de tareas de Windows, deberá guardar ese comando (una vez que lo haya probado en SQL Server Management Studio) en un archivo en su disco; Digamos que es C:\somefolder\BackupMyDB.sql
. Luego querrá agregar el siguiente comando al Programador de Windows:
<path to sqlcmd>sqlcmd -S localhost -E -i C:\somefolder\BackupMyDB.sql
Querrás que esa tarea "se ejecute como" tú.
Una vez que hayas hecho todo eso, debes considerar seriamente intentar restaurar la copia de seguridad en otra máquina para que entiendas cómo hacerlo. Tener copias de seguridad es solo una parte de un plan de recuperación ante desastres; la parte posiblemente más importante es probar ese plan.
El proceso de restauración usaría un comando similar a:
RESTORE DATABASE [xyz]
FROM DISK = 'D:\somepath\myotherbackupfile.bak'
WITH RECOVERY
, STATS = 1;
Tenga RESTORE DATABASE
en cuenta que si se ejecuta en la máquina donde reside su base de datos actual, puede sobrescribir la base de datos actual sin confirmación ni advertencia, así que asegúrese de evaluar cuidadosamente el nombre de la base de datos, [xyz]
en mi ejemplo, y las otras opciones que utiliza. (En realidad, esto no sobrescribirá la base de datos existente a menos que agregue la REPLACE
palabra clave a la WITH
cláusula; solo quiero enfatizar que sea cuidadoso).