Поскольку вы не знакомы с командой T-SQL BACKUP DATABASE
, я решил добавить некоторые подробности об этом.
Возможно, вы захотите выполнить что-то вроде следующего утверждения через службу планировщика задач Windows, поскольку у вас нет доступа к агенту SQL Server (как я вижу из ваших других вопросов, вы используете 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;
Возможно, вы захотите рассмотреть возможность MIRROR TO
указания пункта в каком-то месте, которое находится не на вашем локальном компьютере, поскольку, если вы полностью потеряете свой локальный компьютер, вы не сможете получить доступ ни к одному из файлов резервных копий. Указание MIRROR TO
предложения требует, чтобы вы указали FORMAT
ключевое слово в WITH
предложении при первом запуске этого оператора резервного копирования.
Вы можете использовать имя \\SomeServer\SQLBackups\MyBackupFile.bak
общего ресурса Windows, например, если разрешения безопасности для общего ресурса разрешают доступ к службе планировщика Windows.
Эта WITH FORMAT, INIT
часть указывает SQL Server перезаписывать любые существующие резервные копии, которые могут быть в файлах резервных копий. Вы можете изменить это на WITH NOINIT
один раз после завершения первой зеркальной резервной копии, если вы хотите сохранить в этих файлах несколько резервных копий (т.е. резервных копий из разных моментов времени). NOSKIP
кроме всего прочего, указывает SQL Server не проверять срок действия резервной копии. STATS = 1
будет отображать вывод в 1
процентах. Вы можете изменить это число на что угодно. Я использую 1
для очень больших баз данных, так как это дает некоторое представление о прогрессе.
Чтобы запустить его через службу планировщика задач Windows, вам нужно сохранить эту команду (после того, как вы проверили ее в SQL Server Management Studio) в файл на вашем диске; давайте назовем это C:\somefolder\BackupMyDB.sql
. Затем вы захотите добавить следующую команду в планировщик Windows:
<path to sqlcmd>sqlcmd -S localhost -E -i C:\somefolder\BackupMyDB.sql
Вам захочется, чтобы эта задача «выполнялась от вас».
После того, как вы все это сделали, вам нужно очень серьезно подумать о попытке восстановить резервную копию на другой машине, чтобы вы понимали, как это сделать. Резервное копирование - это только одна часть плана аварийного восстановления; возможно, более важной частью является проверка этого плана.
Процесс восстановления будет использовать команду что-то вроде:
RESTORE DATABASE [xyz]
FROM DISK = 'D:\somepath\myotherbackupfile.bak'
WITH RECOVERY
, STATS = 1;
Имейте RESTORE DATABASE
в виду , что запуск на компьютере, где находится ваша текущая база данных, может перезаписать текущую базу данных без подтверждения или предупреждения, поэтому, пожалуйста, убедитесь, что вы тщательно оценили имя базы данных, [xyz]
в моем примере, и другие параметры, которые вы используете. (Это на самом деле не перезапишет существующую базу данных, если вы не добавите REPLACE
ключевое слово в WITH
предложение - я просто хочу подчеркнуть, что нужно быть осторожным.)