Como você não está familiarizado com o BACKUP DATABASE
comando T-SQL , pensei em adicionar alguns detalhes sobre isso.
Você provavelmente deseja executar algo como a declaração a seguir através do serviço Agendador de Tarefas do Windows, uma vez que não tem acesso ao SQL Server Agent (pelo que vejo em suas outras perguntas, você usa o 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;
Você pode considerar fortemente que a MIRROR TO
cláusula aponte para algum local que não esteja na sua máquina local, pois se você perder completamente a sua máquina local, poderá não conseguir acessar nenhum arquivo de backup. A especificação de uma MIRROR TO
cláusula requer que você especifique a FORMAT
palavra - chave na WITH
cláusula na primeira vez em que executar essa instrução de backup.
Você pode usar o nome de um compartilhamento do Windows, \\SomeServer\SQLBackups\MyBackupFile.bak
desde que as permissões de segurança no compartilhamento permitam o acesso ao serviço Windows Scheduler.
A WITH FORMAT, INIT
peça informa ao SQL Server para substituir os backups existentes que possam estar nos arquivos de backup. Você pode alterar isso para WITH NOINIT
depois de concluir o primeiro backup espelhado, se desejar que vários backups (ou seja, backups de diferentes momentos) sejam salvos nesses arquivos. NOSKIP
instrui o SQL Server a não verificar a expiração do backup, entre outras coisas. STATS = 1
exibirá a saída em 1
incrementos percentuais. Você pode alterar esse número para o que quiser. Eu uso 1
em bancos de dados muito grandes, pois fornece algumas indicações de progresso.
Para que isso seja executado pelo serviço Agendador de Tarefas do Windows, você precisará salvar esse comando (depois de testá-lo no SQL Server Management Studio) em um arquivo no seu disco; vamos chamá-lo C:\somefolder\BackupMyDB.sql
. Você desejará adicionar o seguinte comando ao Agendador do Windows:
<path to sqlcmd>sqlcmd -S localhost -E -i C:\somefolder\BackupMyDB.sql
Você deseja que essa tarefa seja executada como você.
Depois de fazer tudo isso, você deve considerar seriamente tentar restaurar o backup em outra máquina para entender como fazer isso. Ter backups é apenas uma parte de um plano de recuperação de desastre; a parte discutivelmente mais importante é testar esse plano.
O processo de restauração usaria um comando parecido com:
RESTORE DATABASE [xyz]
FROM DISK = 'D:\somepath\myotherbackupfile.bak'
WITH RECOVERY
, STATS = 1;
Esteja avisado que a execução RESTORE DATABASE
na máquina em que seu banco de dados atual pode substituir o banco de dados atual sem confirmação ou aviso; portanto, avalie cuidadosamente o nome do banco de dados, [xyz]
no meu exemplo, e as outras opções usadas. (Na verdade, isso não substituirá o banco de dados existente, a menos que você adicione a REPLACE
palavra-chave à WITH
cláusula - só quero enfatizar o cuidado.)