terça-feira, 25 de março de 2014

Backup SQL Server via script .bat

Olá,

Se você não tem um SQL Server licenciado ou seja, está utilizando a versão Express, é possível efetuar o backup do banco de dados através da linha de comando, para isto é possível criar um script .bat e agendar sua execução através do Schedule do Windows.

O script é bastante simples, veja a seguir:

sqlcmd -U <usuario> -P <senha> -S <servidor>\<instancia> -d <nome do banco> -Q "backup database <nome do banco> to disk='C:\Backup\<nome do banco>.bak'"

Basta você substituir as variáveis que coloquei neste exemplo.

<usuário> = Usuário com permissão de acesso ao banco;
<senha> = Senha do usuário;
<servidor> = Máquina onde o SQL Server está instalado;
<instancia> = Nome da instancia, normalmente a versão Express vem por default o SQLEXPRESS;
<nome do banco> = O nome do banco que deseja efetuar o backup.

Você deve notar que após o comando "to disk=" é necessário especificar onde o arquivo de backup será gravado, no meu exemplo o arquivo sempre será salvo no diretório C:\Backup

Importante, este backup será incremental, ou seja, todas as vezes que o script rodar ele irá adicionar o backup mais recente ao backup mais antigo. E quando for restaurar o backup será possível selecionar uma das datas que foram feitos os backups.

Qualquer dúvida, poste no campo de comentários.

Um abraço,
César

4 comentários:

  1. É possivel restaurar o backup usando um arquivo .bat?

    ResponderExcluir
  2. Não criou o backup o que pode ser?

    ResponderExcluir
  3. Boa tarde pessoal,
    Comigo funcionou o comando, porém na base que eu estava tentando fazer backup havia um hífen no mesmo, então tive que colocar aspas duplas no nome da base e então funcionou, exemplo: "BASE-TESTE".

    Caso alguém tenha o mesmo problema, isso pode ajudar.

    []'s.

    ResponderExcluir
  4. Muito bom o post, só gostaria de saber como faria com o script para sempre realizar um backup completo?

    ResponderExcluir