Backup do SQL Server Express no Servidor Datalog

1. Em cada banco de dados deve haver duas stored procedures, sendo que uma irá efetuar o backup completo do banco de dados uma vez por dia, e outra o backup diferencial, várias vezes por dia.

1a. Stored procedure para backup completo do banco de dados:

CREATE PROCEDURE BackupDb
AS
BACKUP DATABASE <nome_banco> to disk = '<pasta_backup><nome_arquivo>' WITH INIT
GO

Exemplo:

CREATE PROCEDURE BackupDb
AS
BACKUP DATABASE adv to disk = 'c:\users\administrator\dropbox\adv_db.bak' WITH INIT
GO

1b.  Stored procedure para backup diferencial do banco de dados:

CREATE PROCEDURE BackupDif
AS
BACKUP DATABASE <nome_banco> to disk = '<pasta_backup><nome_arquivo>' WITH DIFFERENTIAL, INIT
GO
Exemplo:

CREATE PROCEDURE BackupDif
AS
BACKUP DATABASE adv to disk = 'c:\users\administrator\dropbox\adv_dif.bak' WITH DIFFERENTIAL, INIT
GO

2. Para a execução automática dos backups, deverão ser criadas tarefas agendadas no Windows.

Exemplo com Windows Server 2008:

No Task Scheduler, criar uma pasta:

Action/New Folder - informe o nome da pasta.

Nesta pasta serão criadas duas tarefas, sendo uma para o backup completo e outra para o backup diferencial.

Backup Completo:

Sobre a pasta, clicar o botão direito do mouse e selecionar Create Task.

Digite o nome da tarefa (por exemplo Backup Completo do Banco de Dados Datalog) e Next

Marque as opções Run wheter user is logged on or not e Run with highest privileges.

Selecione Triggers, New

Selecione Daily e informe o horário da execução e Ok.

Selecione Actions e New.

Em Program/Script, digite SQLCMD, e em Add arguments (optional), digite o seguinte comando:

-S <instancia do sql server) -d <nome do banco de dados) -E -Q "<nome da stored procedure>"

Exemplo

-S .\sql2008r2 -d datalog -E -Q "BackupDB"

Backup Diferencial:

Sobre a pasta, clicar o botão direito do mouse e selecionar Create Task.

Digite o nome da tarefa (por exemplo Backup Diferencial do Banco de Dados Datalog) e Next

Marque as opções Run wheter user is logged on or not e Run with highest privileges.

Selecione Triggers, New

Selecione Daily e informe o horário de início da execução.

Marque Repeat at every e selecione o tempo de repetição da execução da tarefa.

Selecione Actions e New.

Em Program/Script, digite SQLCMD, e em Add arguments (optional), digite o seguinte comando:

-S <instancia do sql server) -d <nome do banco de dados) -E -Q "<nome da stored procedure>"

Exemplo

-S .\sql2008r2 -d datalog -E -Q "BackupDif"

3. Após a criação das tarefas, clique o botão direito do mouse sobre o nome da tarefa, e selecione Run. Verifique se o arquivo de backup foi criado na pasta de destino.