Você está na página 1de 6

Dirio de um DBA

SQL Server & Banco de Dados


Search Ior:
Search
Posts Tagged restaurar backup`
Restaurar Backup via Script
Posted in Vida Real on February 11th. 2010 by Silas Mendes Be the Iirst to comment
Existem trs tipos basicos de backups no SQL Server: o backup completo. o backup diferencial e o backup
incremental. O dois ultimos sempre trabalham em coniunto com o backup completo.
Uma estrategia de backup e algo muito particular de cada negocio; em alguns ambientes criticos e inadimissivel a
perda de um minuto de inIormaco. ia em outros lugares. na ocasio de uma Ialha. um backup do dia anterior e
a soluco ideal; logo. a Iorma como mesclar os diIerentes tipos de backups e uma questo a ser analisada (e
testada!) com muito criterio.
No entanto de uma coisa temos certeza: toda estrategia de backup incluira um backup completo (comumente
chamado de backup FULL) e neste texto iremos Iocar na recuperaco (via script) de um backup completo no
SQL Server; para isso utilizaremos como base dois cenarios:
O primeiro cenario abordara o restore de um backup FULL sobre a base original (do backup). por
exemplo. sua base de dados atual soIreu alteraces inadequadas e agora precisa da restauraco do ultimo
backup para reaver os dados anteriores.
No segundo cenario iremos visualizar um DBA que recebe um backup completo de um cliente e precisa
restaura-lo em outro ambiente. por exemplo. para sua equipe de desenvolvimento.
CENRIO 1
Temos aqui um arquivo de backup chamado AdventuresWorksFULL.bak. Antes de restaura-lo precisamos
veriIicar qual o conteudo desse arquivo Iisico e se o backup existente ira atender a necessidade do ; para
isso utilizaremos o seguinte comando:
Veia o resultado:
1 restore headeron1y 1rom dsk
='C:\lab8estore\^dventuresWorks_Iull.bak'
1/12/2010 Restaurar Backup ] Diario de um DBA
silasmendes.com/./restaurar-backup 1/6
No resultado da execuco do comando RESTORE HEADERONLY podemos identiIicar que o arquivo em
questo contem trs backups (sim! um arquivo Iisico pode conter inumeros backups de uma mesma base).
Observe a posico de cada backup dentro do arquivo (campo Position). o tamanho de cada um (BackupSize)
e suas respectivas datas (BackupStartDate).
No nosso exemplo vamos restaurar o backup do dia 03 de Fevereiro. logo. o backup a ser restaurado sera o da
posico 2 (dois). Vamos ao script:
A base de dados a ser restaurada e a AdventureWorks. o arquivo de backup esta localizado no endereco:
C:\LabRestore\AdventuresWorksFULL.bak. O backup que sera restaurado esta na posico 2 deste arquivo
(FILE 2). Como a base ia existe e necessario sobrescrev-la. para isto utilizamos a opco REPLACE. O
STATS mostrara o progresso da restauraco em intervalos de 10 em 10.
Importante: Numa operaco de a base no deve estar em uso por nenhum usuario (inclusive voc). por
isso antes de iniciar o script direcionamos a sesso para o database Master. Se a base estiver em uso. a
seguinte mensagem de erro sera exibida:
Msg 3101. Level 16. State 1. Line 1
Exclusive access could not be obtained because the database is in use.
Se tudo estiver ok. ao Iinal da execuco do script voc vera uma mensagem similar a esta:
RESTORE DATABASE successIully processed 22514 pages in 10.209 seconds (18.065 MB/sec).
CENRIO 2
Neste cenario o DBA devera restaurar um backup completo recebido de um cliente externo. O arquivo de
backup esta identiIicado como SistemaXFULL.bak e sera restaurado no ambiente de desenvolvimento que e
composto por um servidor com um unico disco (C:\).
Vamos analisar o conteudo do arquivo com o RESTORE HEADERONLY:
1 uSL M^S1L8
2
2 60
4
5 8LS108L 0A1A8AS5 ^dventureWorks
6
7 ik0M 01Sk = 'C:\lab8estore\^dventuresWorks_Iull.bak'
8
9 W11H I1lL = 2, 8Ll^CL, S1^1S = 10
1 restore headeron1y 1rom dsk = 'C:\lab8estore\Sstemax_Iull.bak'
1/12/2010 Restaurar Backup ] Diario de um DBA
silasmendes.com/./restaurar-backup 2/6
Veia o resultado:
No resultado acima veriIicamos que existe um unico backup neste arquivo. A base do cliente (campo
DatabaseName) esta identiIicada por SistemaX e podemos veriIicar tambem outros dados como o tamanho do
backup e data.
Ate aqui tudo bem. mas neste cenario precisamos analisar novos elementos. isso porque a base em questo
ainda no existe e ao eIetuar a restauraco o SQL Server ira trazer alem dos obietos deste banco (tabelas.
procedures. triggers) suas conIiguraces originais como: endereco dos arquivos Iisico de dados e log. modo de
recovery. etc. Para veriIicar o estado de algumas destas propriedades podemos utilizar o comando RESTORE
FILELISTONLY:
Veia o resultado:
Observe que a base do cliente e seus respectivos arquivos de dados e log esto localizados em discos
diIerentes. Neste caso. se o DBA realizar um restore comum (como o script utilizado no exemplo anterior) o
SQL Server tentara alocar estes arquivos em seus caminhos de origem. logo precisamos alterar este
comportamento. ia que neste cenario o servidor onde sera realizado o restore so possui um disco. Veia o
comando:
A base de dados a ser restaurada e a SistemaX e o arquivo de backup esta em:
C:\LabRestore\SistemaXFULL.bak. Observe que adicionamos a opco MOVE; esta opco direciona os
arquivos de dados e log para um novo caminho. O restante no muda; continuo utilizando o STATS e desta vez
no precisamos do REPLACE ia que a base no existia.
E importante destacar que os comandos RESTORE FILELISTONLY e RESTORE HEADERONLY no so
obrigatorios num processo de restauraco de banco; eles so comandos que recuperam inIormaces sobre os
1 restore 11e1ston1y 1rom dsk = 'C:\lab8estore\Sstemax_Iull.bak'
01 uSL M^S1L8
02
02 60
04
05 8LS108L 0A1A8AS5 Sstemax
06 ik0M 01Sk = 'C:\lab8estore\Sstemax_Iull.bak'
07 W11H
08 M0v5 'Sstemax' 10 'C:\lab8estore\Sstemax.md1',
09 M0v5 'Sstemax_1og' 10 'C:\lab8estore\Sstemax_1og.1d1',
10 S1^1S = 10
1/12/2010 Restaurar Backup ] Diario de um DBA
silasmendes.com/./restaurar-backup 3/6
arquivos de backup e estas inIormaces podem auxiliar o DBA no processo de restauraco.
Existem outros comandos similares. como o RESTORE VERIFYONLY que veriIica se o arquivo de backup
esta legivel.
CONCLUSO
Como podemos veriIicar. o restore de um backup . via script no e diIicil. basta conhecer os comandos
certos para recuperar inIormaces sobre o conteudo do arquivo de backup; estas inIormaces iro auxiliar o
usuario na construco do comando de .
Nos proximos posts iremos abordar o restore de backups diIerenciais e log. Ate
Bom trabalho!
MSDE - Restaurar backup > que 2 GB
Posted in Erros $#$!. Vida Real on July 4th. 2008 by Silas Mendes Be the Iirst to comment
(Essa e para os workaholics)

Chega sexta Ieira. voc pega o backup da base de dados do servico e leva pra casa pra adiantar o trabalho (ou
correr atras do preiuizo). Ai no sabado. ao tentar restaurar o backup: ERRO.
Tenta o restore de novo e o mesmo erro. Sacanagem.
Ento liga pra um amigo. pesquisa no Google e descobre: o MSDE tem uma limitaco. no aceita bases de
dados maiores que 2 GB!!

Ok. como (quase) tudo na vida. existe um 'ieitinho pra resolver isso. mas sinceramente no sugiro esse
procedimento em nenhum ambiente de produco/homologaco e etc. Repito: no sugiro esse procedimento em
nenhum ambiente de produco/homologaco e etc.

Para utilizar uma base ~ 2GB no MSDE voc vai precisar dos arquivos MDF e LDF da sua base de dados
original (a do seu trabalho). O procedimento e simples. mas tem contratempos. porque para copiar esses
arquivos a base deve estar 'desatachada (Iicou estranho mas no encontrei um termo mais apropriado) ou o
servico do SQL deve estar parado. Escolha uma das duas opces e copie os arquivos.

Na sua casa o procedimento vai ser o seguinte.

1 No MSDE crie uma base de dados com o mesmo nome que ela tem em seu trabalho;
2 VeriIique onde os arquivos Iisicos da base Ioram criados;
3 Pare o servico do SQL Server;
4 Pegue os arquivos MDF e LDF de seu servico e cole (substitua!) os arquivos que o SQL acabou de criar
para a sua nova base (e muito importante que os arquivos tenham o mesmo nome!);
5 Inicie o servico do SQL Server e .

Bom trabalho!
Subscribe: Entries ' Comments
1/12/2010 Restaurar Backup ] Diario de um DBA
silasmendes.com/./restaurar-backup +/6
Posts Recentes
Registrando modiIicaces com o CDC
DML. DDL?!? O que e isso?
Livros
Oportunidade: Students to Business
Backup compactado
T-SQL Mesclando dados
SQL Iniection :)
SQL Server 2008 R2 Express Edition
Twitter
Ontem assisti Harry Potter e as Reliquias da Morte em #IMAX. Fantastico... o Iilme e a telona do
cinema :D 2010/11/28
(ianapaganucci risos... valeu Jana! Recebemos e adoramos viu... brigadu! O beb e uma
menininha: *Sophia*... bioka moxa. valeu!! :P 2010/11/28
Noite adentro estudando #DataGuard... amanh prova pratica... #oracle 2010/11/23
(celosmar Valeu garoto :D Bons estudos pra ti cara... qlq coisa tamu ae :) 2010/11/23
Fim de semana Ioi show... Iamilia e amigos reunidos no Cha de Beb da Luiza... muito bom!
2010/11/22
Blogroll
DBA Fabio Telles
DBA Fabricio Lima
DBA Felipe Santana
DBA Gustavo Maia
DBA Laerte Junior
DBA Leonardo Lopes
DBA Luti
DBA Salvador Scardua
INFRA Fabio Hara
INFRA RodolIo Rodrigues
MCDBA Brasil
Downloads
Database AdventureWorks
SoItware Conversor SQL
Outros
1/12/2010 Restaurar Backup ] Diario de um DBA
silasmendes.com/./restaurar-backup 5/6
Assoc. Comunitaria Monte Azul
Copa MicrosoIt 2010
Nerdson
Triagem
Arquivo

Select Month
Ouvindo...
2010. Diario de um DBA. All rights reserved. Powered by WordPress & SimpleX theme.
Paulinho Moska - Blues do ano 2000
17 hours ago
Silas Mendes - Filho
17 hours ago
Super Mario Brothers - Theme Song
17 hours ago
Silas Mendes - Um pouco mais (rascunho)
17 hours ago
Silas Mendes - Para os amigos
17 hours ago
Silas Mendes - Dia bom
18 hours ago
1/12/2010 Restaurar Backup ] Diario de um DBA
silasmendes.com/./restaurar-backup 6/6

Você também pode gostar