Criando backup e restaurando no SQL Server 2008 R2

Veja neste artigo como fazer um backup e restaurar um banco de forma manual usando T-SQL no SQL Server 2008 R2.

Vamos dar inicio criando um banco de dados, no caso deste artigo vou nomea-lo como BANCO_BACKUP, veja o código abaixo:

Listagem 1.Codigo de criação do banco.

CREATE DATABASE BANCO_BACKUP GO

Depois de executado, confira se o banco foi criado, visualize no OBJECT EXPLORER no Management Studio, como mostra a figura 1:

Figura 1.OBJECT EXPLORER mostrando o banco criado.

Com o banco criado, podemos demonstrar um simples backup, conhecido como Backup Full, mas antes crie uma pasta na raiz C:\ com o nome de BACKUP, veja o código abaixo:

Listagem 2.Codigo de criação do Backup Full.

BACKUP DATABASE BANCO_BACKUP TO DISK='C:\BACKUP\BANCO_BACKUP-FULL.BAK' GO

Execute o comando, depois vá até a raiz C:\BACKUP e veja o arquivo de backup criado, note o extensão do arquivo, como mostra a figura 2:

Figura 2.Janela mostrando o arquivo de backup criado.

Vamos criar uma tabela com o nome de CLIENTES, com dois campos: CLI_ID e NOME, veja o código abaixo:

Listagem 3.Codigo de criação da tabela CLIENTES.

CREATE TABLE CLIENTES ( CLI_ID INT PRIMARY KEY, CLI_NOME VARCHAR (50), ) GO

Em seguida vamos inserir dados na tabela criada, siga o código abaixo:

Listagem 4.Codigo de inserção de dados na tabela

INSERT INTO CLIENTES VALUES (01, 'JOSE ALVES') INSERT INTO CLIENTES VALUES (02, 'AUGUSTO DOS ANJOS')

Para confirmar veja os dados inseridos utilizando um SELECT, veja abaixo:

Listagem 5.Codigo para verificar os dados inseridos.

SELECT * FROM CLIENTES

Depois de executar o código acima, veja o resultado como mostra a figura 3:

Figura 3.Resultado do SELECT mostrando os dados inseridos.

Neste momento vamos criar um novo backup, já que ouve mudanças no banco de dados, veja o código abaixo:

Listagem 6.Codigo de criação de um novo Backup Full.

BACKUP DATABASE BANCO_BACKUP TO DISK='C:\BACKUP\BANCO_BACKUP-FULL-2.BAK'

No caso apresentado informamos o mesmo nome de backup adicionado de um numero 2, para diferenciar do primeiro backup, veja novamente na pasta C:\BACKUP, como mostra a figura 4:

Figura 4.Janela mostrando um novo arquivo de backup criado.

Vamos agora deletar o banco criado, logo em seguida vamos restaura-lo e mostrar a diferença entre o primeiro backup e o segundo, antes de deletar o banco, sai do contexto do mesmo e em seguida execute o código abaixo:

Listagem 7.Codigo para apagar o banco de dados.

DROP DATABASE BANCO_BACKUP

Logo em seguida faça a restauração do seu primeiro backup, siga o exemplo do código abaixo:

Listagem 8.Código para restaurar o banco de dados.

RESTORE DATABASE BANCO_BACKUP FROM DISK='C:\BACKUP\BANCO_BACKUP-FULL.BAK' GO

Pronto, o banco foi restaurado, porem sem a tabela e sem os dados, no começo deste artigo fizemos simplesmente o backup do banco sem tabelas e dados e inseridos, veja na figura 5:

Figura 5.Janela OBJECT EXPLORER mostrando o banco de dados sem a tabela.

Vamos refazer alguns passos, primeiramente apague o banco novamente e em seguida faça a restauração do banco utilizando o segundo Backup Full, para facilitar mostrarei o código abaixo:

Listagem 9.Código para apagar o banco de dados.

DROP DATABASE BANCO_BACKUP GO

Neste momento, faça o backup do banco utilizando o segundo Backup Full, como mostra o código abaixo:

Listagem 10. Código para restaurar o banco de dados.

RESTORE DATABASE BANCO_BACKUP FROM DISK='C:\BACKUP\BANCO_BACKUP-FULL-2.BAK' GO

Depois de executar este comando, verifique no OBEJECT EXPLORER se existe alguma diferença entre o primeiro backup e o segundo, como mostra na figura 6:

Figura 6. Janela OBJECT EXPLORER mostrando o resultado do segundo Backup Full.

Agora vamos fazer uma serie de comandos, inserção de dados e criação de backups de log e diferencial, execute um de cada vez, veja o código abaixo:

INSERT INTO CLIENTES VALUES (03, 'FRANCISCO JOSE') INSERT INTO CLIENTES VALUES (04, 'JOSE RAIMUNDO') BACKUP LOG BANCO_BACKUP TO DISK = 'C:\BACKUP\BANCO_BACKUP-LOG1.TRN' GO INSERT INTO CLIENTES VALUES (05, 'ATILA ALVES') INSERT INTO CLIENTES VALUES (06, 'PAULO CESAR') BACKUP LOG BANCO_BACKUP TO DISK = 'C:\BACKUP\BANCO_BACKUP-LOG2.TRN' GO BACKUP DATABASE BANCO_BACKUP TO DISK='C:\BACKUP\BACKUP_BANCO-DIFF-1.BAK' WITH DIFFERENTIAL

Para confirmar a criação dos backups de log e diferencial, veja na raiz C:\, como mostra a figura 7:

Figura 7.Janela mostrando os arquivos de backup de log e diferencial.

Para concluir está parte, vamos selecionar a tabela CLIENTES apenas para visualização, veja a figura 8:

Figura 8. Resultado do SELECT mostrando os dados inseridos.

Neste momento vamos fazer mais uma inserção de dados, utilize o código abaixo:

Listagem 11.Código para inserir dados na tabela.

INSERT INTO CLIENTES VALUES (09, 'CARLOS ALBERTO')

Para finalizar, vamos apagar o banco e em seguida vamos executar ultimo Backup Full e o diferencial, execute os comando um de cada vez:

DROP DATABASE BANCO_BACKUP GO RESTORE DATABASE BANCO_BACKUP FROM DISK='C:\BACKUP\BANCO_BACKUP-FULL-2.BAK' WITH NORECOVERY GO RESTORE DATABASE BANCO_BACKUP FROM DISK='C:\BACKUP\BACKUP_BANCO-DIFF-1.BAK' WITH NORECOVERY GO RESTORE DATABASE BANCO_BACKUP GO

Para maiores informações entre no contexto do banco de dados e faça um SELECT na tabela CLIENTES e veja que a ultima inserção não foi salva.

Com isso finalizo este artigo básico e direto, espero que o mesmo sirva para ajudar em duvidas sobre backup.

Artigos relacionados