Backup e restauração de bases de dados é um procedimento muito repetitivo e importante em administração de banco de dados, pois utilizamos esse processo para replicar base de dados para testes de sistemas e entre outras finalidades.
Para agilizar esse processo, podemos criar uma Stored Procedure para realizar o backup de uma base de origem e efetuar a restauração para a base de destino.
Nota: Stored Procedure é uma coleção de instruções implementadas com linguagem T-SQL, que, uma vez armazenada, ficam dentro do servidor de forma pré-compilada, aguardando uma requisição de um usuário do banco de dados. A utilização de Stored Procedures é uma técnica eficiente de executarmos operações repetitivas. Ao invés de digitar os comandos cada vez que determinada operação necessite ser executada, criamos um Stored Procedure e o chamamos.
1º Passo - Abrir uma conexão com o SQL Server.
2º Passo - Clicar em New Query para executar o comando.
3º Passo - Escolher a base de dados para salvar a Stored Procedure.
4º Passo - Digitar a procedure de alteração conforme abaixo.
ALTER PROCEDURE [dbo].[REPLICACAO]
@DBORIGEM VARCHAR(500), /*Banco de dados de Origem*/
@DBDESTINO VARCHAR(500) /*Banco de dados de destino*/
AS
BEGIN
DECLARE @DEVICE VARCHAR(500) /*RECEBE O NOME DO BACKUP*/
DECLARE @PATH VARCHAR(500) /*RECEBE O CAMINHO ONDE SERÁ SALVO O BACKUP*/
/*CONCATENA NOME DO BANCO DESTINO + DATA + EXTENSÃO DE BACKUP .BAK */
SET @DEVICE = @DBDESTINO + '_' + CAST(DATEPART (mi,GETDATE())AS CHAR(2)) +
CAST(DATEPART (ss,GETDATE())AS CHAR(2)) +
'.bak'
SET @PATH = 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL\BACKUP\' + @DEVICE
/*ADICIONA UM DISPOSITIVO DE BACKUP*/
EXEC sp_addumpdevice 'disk', @DEVICE ,@PATH
/*CRIA BACKUP*/
BACKUP DATABASE @DBORIGEM TO DISK = @PATH
DECLARE @BASE VARCHAR(500) /*RECEBE CAMINHO DO BACKUP DE DADOS*/
DECLARE @LOG VARCHAR(500) /*RECEBE CAMINHO DO BACKUP DE LOG*/
DECLARE @DBORIGEMDATA VARCHAR(500) /*RETORNA BANCO DE ORIGEM + BACKUP DE DADOS*/
DECLARE @DBORIGEMLOG VARCHAR(500) /*RETORNA BANCO DE ORIGEM + BACKUP DE LOG*/
SET @BASE = 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL\data\' + @DBDESTINO + '.MDF'
SET @LOG = 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL\data\' + @DBDESTINO + '_Log.LDF'
SET @DBORIGEMDATA = @DBORIGEM + '_Data'
SET @DBORIGEMLOG = @DBORIGEM + '_Log'
/*REALIZA A RESTAURAÇÃO DA BASE DE DADOS COM OS ARQUIVOS .BAK, .MDF E .LDF*/
RESTORE DATABASE @DBDESTINO
FROM DISK = @PATH
WITH
MOVE @DBORIGEMDATA TO @BASE,
MOVE @DBORIGEMLOG TO @LOG,
NOUNLOAD, STATS = 10, REPLACE
/*PROCEDIMENTO PARA DELETAR BACKUP APÓS A RESTAURAÇÃO*/
EXEC SP_DROPDEVICE @DEVICE,'DELFILE'
BACKUP LOG @DBDESTINO WITH TRUNCATE_ONLY
DBCC SHRINKDATABASE (@DBDESTINO,0,TRUNCATEONLY) /*ZERA O ÍNDICE*/
END
5º Passo - Após a digitação dos comandos, clicar no botão Execute ou pressionar a tecla F5.
6º Passo - Chamar a Stored Procedure através do comando:
EXEC REPLICACAO 'DBORIGEM', 'DBDESTINO'
Até o próximo post.