Upload
fabricio-catae
View
103
Download
2
Embed Size (px)
Citation preview
Fabricio Catae e Thiago Iacopini (Microsoft)
Estratégias de Backup e Restore
Agenda
• Transaction Log• Tipos de Backup• Modelos de Recuperação• Log Shipping• Estratégias de Restore
1. Transaction Log
Repositório de Dados
Arquivos de DadosPrimário (.MDF)
Secundários (.NDF)
Transação
• Unidade de Operação• Pode ser composta por múltiplas operações
• Ações Possíveis• Commit• Rollback
Exemplo de Transação : Casal reformando a sala
BEGIN TRANSACTION
Pintar parede da sala de verdeColocar um abajur marrom na mesaComprar um sofá creme no lugar do azulSe não combinar, ROLLBACK TRANSACTION
COMMIT TRANSACTION
Processo de Log
Arquivo de LogBEGIN TRANSACTION (transaction_id = 299)
Apaga dados do usuárioInsert nova informacao
COMMIT TRAN (transaction_id = 299)BEGIN TRANSACTION (transaction_id = 300)
Apaga tabelaCOMMIT TRAN (transaction_id = 300)
UPDATEINSERTDELETE
Processo de Rollback
• Quando iniciado, o Rollback deve restaurar o estado inicial
• Todas as modificações registram o estado ANTES e DEPOIS
• As correções são chamadas de Compensation Record
Arquivo de LogBEGIN TRANSACTION
Apaga registro (AAAA)Insert registro (BBBB)(ROLLBACK TRAN)Apaga registro (BBB) CompensationInsere registro (AAA) Compensation
Rollback completo
Transaction Log
• Arquivo de Transaction Log permite efetuar o ROLLBACK das operações
• A consistência da transação é garantida pelo Transaction Log em conjunto com os Bloqueios (Locks)
• Arquivo de Log é CIRCULAR
1) Transação ativa
2) Backup de LOG pendente
Por que LOG FULL?
Database Checkpoint
Log
CHECKPOINT
UPDATEINSERTDELETE
DataFiles
Processo de Recovery
• Como perder dados:• Desligar o computador inesperadamente?• Faltar de energia elétrica?
Arquivo de DadosMDF/NDF
RECOVERY
Log
Transações Pendentes- REDO: COMMIT- UNDO: ROLLBACK
ANALISEBanco de
DadosONLINE
Modo Emergência
• O que acontece se o arquivo de Log é perdido?• As informações do MDF/NDF estão inconsistentes• Leitura pode ser feita através do modo Emergência• O modo de emergência não possui LOG, por isso, é apenas
LEITURA• Somente usado em ÚLTIMO CASO
Arquivo de DadosMDF/NDF
RECOVERY
Log
EmergênciaREAD-ONLY
2. Tipos de Backup
Responsabilidade do DBA
• Banco de dados possui informações críticas• DBA jamais deve perder os dados armazenados• As informações devem se manter fisicamente
consistentes
• Backup de dados• Garantia de cópia dos dados
• BACKUP DATABASE <nome>TO DISK = ‘S:\Backup\db_crit_2011.bak’
Estratégias de Backup
• Overview dos tipos de Backup• Backup Full• Backup de Database e Transaction Log• Backup Diferencial• Backup de File ou Filegroup• Modelos de Recovery
Overview dos Tipos de Backup do SQL Server
Tipos de Backup DescriptionFull Todos os Data files são BackupeadosDifferential Faz o Backup apenas das Paginas de Dados que
foram alteradasTransaction Log Todas as mudanças registradas no Log desde o
ultimo Backup de Transaction LogTail-Log Backup É o Backup realizado no Transaction Log, antes de
um Restore ser realizado Copy Only Realiza o Backup do Database ou Log (Sem afetar a
sequência de Backup)File/File Group Realiza o Backup de arquivos ou filegroups
especificados
Full Database Backups
Transaction Log Backups
Differential Backups
Filegroup Backups
Tail Log Backups
Copy Only Backups
Compressão de Backup
• Não pode ser lido por versões mais antigas do SQL Server
• Implementado no SQL Server 2008• Comprime o tamanho do arquivo no Device Destino• Aumenta a Performance de I/O, porém também eleva o Custo de CPU
Restrição
3. Modelos de Recuperação
Recuperando Dados
Seg10:00pm
Ter10:00pm
Qua4:23pm
CRASH
Recuperando Dados
Seg10:00pm
Ter10:00pm
Qua4:23pm
RecoverySIMPLE
Restore de DatabasePerda de dados tolerável desde o último backup.
Exemplo: 1 dia.
Reconstruindo os Dados
Seg10:00pm
Ter10:00pm
Qua4:23pm
CRASH
Backup Log a cada 30 minutos
Reconstruindo os Dados
Seg10:00pm
Ter10:00pm
Qua4:23pm
+ + + =Restore de Log
Perda de dados tolerável desde o último backup de Log. Exemplo: 30
minutosFULL
Reconstruindo os Dados
Seg10:00pm
Ter10:00pm
Qua4:23pm
RecoveryFULL
Restore do Final do Log (TAIL LOG)Recupera todos os dados, sem perda de
informação.
Restore de DatabasePerda de dados tolerável desde o último backup.
Restore de LogPerda de dados tolerável desde o último backup de
Log. Exemplo: 30 minutos
4:00pm
BULK
SIMPLE
Recovery Model
FULL
Modelos de Recovery
Modelo de Recovery CaracterísticasSimple • Não permite backups de Log
• Faz o reuso do arquivo de Log automaticamente
Full • Permite Backup de Log• Garante que nenhum dado sera removido do
log até que seja feito um Backup de Log• Permite o Recover do banco até um ponto
específico no TempoBulk Logged • Permite Backup de Log
• Permite operações de Bulk Copy de alta performance
• Reduz o uso de espaço em Log utilizando Minimal Logging
Simple Recovery Mode
Full Recovery Mode
Bulk Logged Recovery Mode
4. Log Shipping
Log Shipping
• LSN - Log Sequence Number• Overview de Log Chain• Criação do Log Shipping• Manutenção do Log Shipping
LSN – Log Sequence Number
Log Chain
Criação do Log Shipping
Manutenção do Log Shipping
STAN
DBY
SERV
ER
LSN : 10001,10002,10003 …
5. Estratégias de Restore
Restaurando Backups de User Databases
• Como Funciona o Processo de Restore• Tipos de Restore• Restaurando um Banco de Dados• Restaurando um Transaction Log
Processo de Restore
Tipos de Restore
• Restore completo de Database• Restore de Filegroup• Restore de Páginas• Restore Online
Passos para Restaurar um Banco de Dados
1. Realize um Backup de Tail-Log2. Determine o Target de Data para o Restore (somente nos modos de recovery full or bulk-logged)3. Identifique a lista de arquivos que serão utilizados5. Inicie a sequência do Restore
Passos para Restaurar o Transaction Log
Realizando Operações de Restore
• Restaurando uma Página Corrompida• Restaurando uma Tabela Específica• Restaurando Banco de Dados com erro em
um MDF
• Cenário• Uma página de Dados de seu Banco está
corrompida2012-01-01 15:46:42.90 spid51 Error: 824, Severity: 24, State: 2.2012-01-01 15:46:42.90 spid51 SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:43686; actual 0:0). It occurred during a read of page (1:43686) in database ID 23 at offset 0x0000001554c000 in file 'H:\MSSQL\DATA\my_db.mdf'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
Restore de Páginas Corrompidas
Restore de Páginas Corrompidas
1. Obter os id(s) das páginas corrompidas2. Inicie com um Restore de Database selecionando as Páginas com problema3. Aplique os Backups de Log subsequentes
Passos a Seguir :
Restaurarando uma Tabela Específica
Cenário :
Uma importante tabela precisa ser restaurada, sem que todo o Banco de Dados precise ser reescrito
Restaurarando uma Tabela Específica
1. Restaure o backup do Datafile que contem a tabela2. Restaure o Backup direfencial para cada arquivo3. Restaure os Transaction Logs sequencialmente4. Realize o Recover do Database
Pré-requisito : A Tabela precisa ser criada em um Datafile separadoPassos a Seguir :
Restaurando Banco de Dados com erro de MDF
Cenário :
Um dos Data Files do Banco não pode ser acessado
Restaurando Banco de Dados com erro de MDF
1. Realize o Backup de Tail Log2. Restaure o backup do Database3. Restaure os Transaction Logs sequencialmente4. Restaure o restore do Tail Log
Passos a Seguir :
Perguntas ?
Microsoft Confidential
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee
the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.