Posso ter backups completos em vários discos?


8

Atualmente, só tenho um arquivo de backup, IMTDB.bak, e ele está no mesmo HDD que o próprio banco de dados. Desejo aumentar a redundância desse backup de banco de dados basicamente "copiando" para outro disco, mas recebo o erro "Falha no backup do servidor. A mídia está formatada para suportar 2 famílias de mídia". Acho que isso significa que, quando eu criei o backup, ele deve ser colocado em apenas uma unidade e não posso adicionar mais retroativamente. Quero migrar o backup para esta outra unidade (realmente apenas copiá-lo), mas não quero excluir o backup atual para fazer isso.

O que eu faço? Estou seguro em copiar o IMTDB.bak para uma pasta na outra unidade?


certo. Usar o explorer para copiar o arquivo de um local para outro, não é um problema. Você pode querer automatizar o processo, talvez com o Windows Scheduler.
Max Vernon

Onde / como você está vendo este erro: "Falha no backup do servidor, a mídia está formatada para suportar 2 famílias de mídia"
Max Vernon

Ao ir para Tarefas -> Fazer backup e tentar fazer "Adicionar" e selecionar o disco que tenho.
precisa saber é o seguinte

A adição de outro disco simplesmente distribuirá o backup por vários discos, reduzindo ainda mais a confiabilidade do arquivo de backup, pois se um dos dois discos falhar, o arquivo de backup ficará inutilizável. Faça o que o @Kin sugere em sua resposta e use o BACKUP DATABASEcomando T-SQL para fazer backup em dois locais simultaneamente.
Max Vernon

Respostas:


12

Como você não está familiarizado com o BACKUP DATABASEcomando 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 TOclá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 TOcláusula requer que você especifique a FORMATpalavra - chave na WITHclá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.bakdesde que as permissões de segurança no compartilhamento permitam o acesso ao serviço Windows Scheduler.

A WITH FORMAT, INITpeça informa ao SQL Server para substituir os backups existentes que possam estar nos arquivos de backup. Você pode alterar isso para WITH NOINITdepois de concluir o primeiro backup espelhado, se desejar que vários backups (ou seja, backups de diferentes momentos) sejam salvos nesses arquivos. NOSKIPinstrui o SQL Server a não verificar a expiração do backup, entre outras coisas. STATS = 1exibirá a saída em 1incrementos percentuais. Você pode alterar esse número para o que quiser. Eu uso 1em 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 DATABASEna 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 REPLACEpalavra-chave à WITHcláusula - só quero enfatizar o cuidado.)


Obrigado! Como meu arquivo .bak já possui alguns backups, o espelho criado incluirá automaticamente esses backups? Ou apenas o mais recente?
precisa saber é o seguinte

Sugiro que você mova esse arquivo para algum lugar, se desejar mantê-lo, pois ele MIRRORexige que você formate o arquivo de backup na primeira vez em que o usar, o que removerá os backups existentes nesse arquivo.
Max Vernon

11
Mais uma vez obrigado pelos detalhes em sua postagem. Realmente útil para um novato sem outros recursos!
precisa saber é o seguinte

O prazer é meu. Não posso enfatizar o suficiente a importância de uma estratégia testada e confiável de backup e restauração . Eu recomendei o teste de restauração em outra máquina para que você não tenha a possibilidade de prejudicar seu banco de dados existente, o que é fácil de fazer quando você está aprendendo.
Max Vernon

5

Você pode usar o backup database .... MIRROR TO DISK =backup do banco de dados para um local adicional.

Estou seguro em copiar o IMTDB.bak para uma pasta na outra unidade?

Sim, você pode fazer isso quando o backup for concluído.

Nota: Verifique se você está usando o T-SQL em vez da GUI, que possui opções limitadas de backup expostas.


Quais são as opções recomendadas aqui? Meu banco de dados é muito simples, apenas quatro tabelas, três das quais possuem apenas 90.000 linhas, a quarta com ~ 75M. Também é um tamanho fixo; não serão adicionados mais dados. Só executarei consultas nele.
precisa saber é o seguinte

5
Eu sugiro que você coloque seu banco de dados no read_onlymodo e faça apenas um último backup COMPRESSION. Guarde-o em local seguro.
Kin Shah
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.