Criar rotinas de backup através do Transact-SQL

Hoje em dia é de suma importância ter rotinas para realizar os chamados backup’s diários.

A maneira mais prática de se fazer um backup diário é através de uma rotina (script) Transact-SQL.

Neste exemplo eu vou montei uma Procedure responsável por efetuar o Backup das bases!
Ele possui um parâmetro. Este parâmetro é o caminho aonde vai ser salvo os arquivos.BKP.
Não precisa se preocupar com um arquivo existente. Esta procedure verifica e deleta arquivo existente.

Dica: Faça um Job para executar esta procedure diariamente.

Stored Procedure

USE [Master]

If Exists(SELECT * FROM Sys.Procedures WHERE Name = ‘PROC_BACKUP’)
DROP PROCEDURE PROC_BACKUP
GO

CREATE PROCEDURE PROC_BACKUP
(

— Folder para os arquivos de backup. Caso nenhum parâmetro seja passado, ele assume o parâmetro default
@Path varchar(256) = ‘C:\BackUp\’

)
AS

EXEC SP_CONFIGURE ‘Show Advanced Options’,1
RECONFIGURE
EXEC SP_CONFIGURE ‘XP_CMDSHELL’, 1
RECONFIGURE

— Declara variáveis
DECLARE @Name                varchar(50)       — Nome da base
DECLARE @FileName       varchar(256)      — Nome do arquivo
DECLARE @Cmd                 varchar(120)      — Comando para apagar arquivo de backup existente

— Declara cursor
DECLARE db_Cursor CURSOR FOR

SELECT
Name
FROM
Master.dbo.SysDataBases
WHERE
Name Not In(‘master’, ‘model’, ‘msdb’, ‘tempdb’)

OPEN db_Cursor
FETCH NEXT FROM db_Cursor INTO @Name

While @@FETCH_STATUS = 0
Begin
Set @FileName = @Path + @Name + ‘.BAK’
Set @Cmd = ‘DEL ‘
Set @Cmd = @Cmd + @FileName

EXEC XP_CMDSHELL @Cmd

— Realiza Backup
BACKUP DATABASE @Name TO DISK = @FileName

FETCH NEXT FROM db_Cursor INTO @Name

End

CLOSE       db_Cursor
DEALLOCATE  db_Cursor

EXEC SP_CONFIGURE ‘XP_CMDSHELL’,0

Alan Machado

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s