Backup e restauração do banco de dados do SQL Server a partir da linha de comando
A parte mais importante de um plano de manutenção do SQL Server é fazer o backup de seus bancos de dados regularmente. Para fazer backup de um banco de dados, você não pode simplesmente copiar os respectivos arquivos MDF e LDF do banco de dados, pois o SQL Server tem um bloqueio nesses arquivos. Em vez disso, você precisa criar um arquivo de backup verdadeiro por meio do SQL Server.
Embora isso possa ser feito por meio do desenvolvimento de um plano de manutenção dentro do SQL Management Studio, as edições Express gratuitas do SQL Server não oferecem essa interface. Para contornar isso, você pode facilmente fazer backup de seus bancos de dados executando o comando abaixo enquanto estiver logado como administrador do Windows:
SqlCmd -E -S Nome_do_Servidor -Q “BACKUP DATABASE [Nome_do_BancoDeDados] TO DISK =" X: PathToBackupLocation [Nome_do_BancoDeDados] .bak "”
Os exemplos abaixo ajudarão.
Instância padrão do SQL Server:
SqlCmd -E -S MyServer -Q “BACKUP DATABASE [MyDB] PARA DISK =" D: BackupsMyDB.bak "”
Instância nomeada do SQL Server:
SqlCmd -E -S MyServerMyInstance -Q “BACKUP DATABASE [MyDB] PARA DISK =" D: BackupsMyDB.bak "”
Os itens acima criam uma cópia de backup totalmente restaurável do “MyDB” no arquivo “D: BackupsMyDB.bak”, que pode ser usado para recuperação de desastres. Naturalmente, você pode alterar o local e o arquivo de backup para o que precisar, mas especifique um local de pasta que exista na máquina local. Esse arquivo de backup pode ser copiado para uma unidade de fita ou outro local de backup externo.
Uma pergunta comum é: “Um arquivo de backup pode ser criado para uma unidade mapeada ou local UNC?” E a resposta rápida é não. O motivo é porque o Serviço do Windows do SQL Server é executado como uma conta de usuário que só tem acesso à máquina local. Você pode alterar a conta na qual o serviço é executado, mas isso é altamente desencorajado por motivos de segurança.
Restaurando um backup de banco de dados da linha de comando
Para restaurar um banco de dados a partir de um arquivo de backup, basta usar o comando:
SqlCmd -E -S Nome_do_Servidor -Q “RESTORE DATABASE [Nome_do_BancoDeDados] FROM DISK =" X: PathToBackupFile [Nome_do_Arquivo] .bak "”
Por exemplo:
SqlCmd -E -S MyServer -Q “RESTORE DATABASE [MyDB] DO DISCO =" D: BackupsMyDB.bak "”
O comando acima irá restaurar um backup do “MyDB” dos dados armazenados no arquivo de backup “D: BackupsMyDB.bak”. Quaisquer alterações feitas no MyDB desde a criação do arquivo de backup serão perdidas.
Uma coisa importante a lembrar ao usar o comando acima é que ele deve ser usado no mesmo SQL Server no qual o respectivo arquivo de backup foi criado. Os arquivos de backup SQL armazenam informações "nos bastidores" que controlam onde e como os arquivos de dados no arquivo de backup são copiados. Se você estiver restaurando um backup de um SQL Server diferente, os locais de caminho no arquivo de backup poderão não corresponder ao servidor para o qual você está restaurando e ocorrerá um erro. Embora isso possa ser contornado, é muito mais fácil restaurar backups criados em outro SQL Server usando a ferramenta SQL Management Studio..
Nota: os comandos acima funcionarão no SQL 2005 e superior (qualquer edição). Para o SQL 2000 e versões anteriores, substitua 'SqlCmd' por 'oSql'.