• Transaction Log
• Tipos de Backup
• Modelos de Recuperação
• Log Shipping
• Estratégias de Restore
Arquivos de Dados
Primário (.MDF)
Secundários (.NDF)
• Unidade de Operação
• Pode ser composta por múltiplas operações
• Ações Possíveis
• Commit
• Rollback
BEGIN TRANSACTION
Pintar parede da sala de verde
Colocar um abajur marrom na mesa
Comprar um sofá creme no lugar do azul
Se não combinar, ROLLBACK TRANSACTION
COMMIT TRANSACTION
Arquivo de Log
BEGIN TRANSACTION (transaction_id = 299)
Apaga dados do usuário
Insert nova informacao
COMMIT TRAN (transaction_id = 299)
BEGIN TRANSACTION (transaction_id = 300)
Apaga tabela
COMMIT TRAN (transaction_id = 300)
UPDATE
INSERT
DELETE
• 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 Log
BEGIN TRANSACTION
Apaga registro (AAAA)
Insert registro (BBBB)
(ROLLBACK TRAN)
Apaga registro (BBB)
Compensation
Insere registro (AAA)
Compensation
Rollback completo
• 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?
Log
CHECKPOINT
UPDATE
INSERT
DELETE
DataFiles
• Como perder dados:
• Desligar o computador inesperadamente?
• Faltar de energia elétrica?
Arquivo de Dados
MDF/NDF
RECOVERY
Log
Transações Pendentes
- REDO: COMMIT
- UNDO: ROLLBACK
ANALISE
Banco de Dados
ONLINE
• 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 Dados
MDF/NDF
RECOVERY
Log
Emergência
READ-ONLY
• 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:Backupdb_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 Description
Full Todos os Data files são Backupeados
Differential Faz o Backup apenas das Paginas de Dados que foram
alteradas
Transaction Log Todas as mudanças registradas no Log desde o ultimo
Backup de Transaction Log
Tail-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
Seg
10:00pm
Ter
10:00pm
Qua
4:23pm
Seg
10:00pm
Ter
10:00pm
Qua
4:23pm
Recovery
SIMPLE
Restore de Database
Perda de dados tolerável
desde o último backup.
Exemplo: 1 dia.
Seg
10:00pm
Ter
10:00pm
Qua
4:23pm
Backup Log a cada 30 minutos
Seg
10:00pm
Ter
10:00pm
Qua
4:23pm
+ + + =
Restore de Log
Perda de dados tolerável desde o
último backup de Log. Exemplo: 30
minutos
FULL
Seg
10:00pm
Ter
10:00pm
Qua
4:23pm
Recovery
FULL
Restore do Final do Log (TAIL LOG)
Recupera todos os dados, sem perda de
informação.
Restore de Database
Perda de dados tolerável desde o último backup.
Restore de Log
Perda de dados tolerável desde o último backup
de Log. Exemplo: 30 minutos
4:00pm
BULK
SIMPLE FULL
Modelos de Recovery
Modelo de Recovery Características
Simple • 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 Tempo
Bulk 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
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
STANDBYSERVER
LSN : 10001,10002,10003 …
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-Log
2. 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 utilizados
5. 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
•
•
2012-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:MSSQLDATAmy_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 corrompidas
2. Inicie com um Restore de Database selecionando
as Páginas com problema
3. 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 tabela
2. Restaure o Backup direfencial para cada arquivo
3. Restaure os Transaction Logs sequencialmente
4. Realize o Recover do Database
Pré-requisito :
A Tabela precisa ser criada em um Datafile separado
Passos 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 Log
2. Restaure o backup do Database
3. Restaure os Transaction Logs sequencialmente
4. Restaure o restore do Tail Log
Passos a Seguir :
Estratégias de Backup e Restore
Estratégias de Backup e Restore

Estratégias de Backup e Restore

  • 2.
    • Transaction Log •Tipos de Backup • Modelos de Recuperação • Log Shipping • Estratégias de Restore
  • 4.
    Arquivos de Dados Primário(.MDF) Secundários (.NDF)
  • 5.
    • Unidade deOperação • Pode ser composta por múltiplas operações • Ações Possíveis • Commit • Rollback
  • 6.
    BEGIN TRANSACTION Pintar parededa sala de verde Colocar um abajur marrom na mesa Comprar um sofá creme no lugar do azul Se não combinar, ROLLBACK TRANSACTION COMMIT TRANSACTION
  • 7.
    Arquivo de Log BEGINTRANSACTION (transaction_id = 299) Apaga dados do usuário Insert nova informacao COMMIT TRAN (transaction_id = 299) BEGIN TRANSACTION (transaction_id = 300) Apaga tabela COMMIT TRAN (transaction_id = 300) UPDATE INSERT DELETE
  • 8.
    • 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 Log BEGIN TRANSACTION Apaga registro (AAAA) Insert registro (BBBB) (ROLLBACK TRAN) Apaga registro (BBB) Compensation Insere registro (AAA) Compensation Rollback completo
  • 9.
    • Arquivo deTransaction 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?
  • 10.
  • 11.
    • Como perderdados: • Desligar o computador inesperadamente? • Faltar de energia elétrica? Arquivo de Dados MDF/NDF RECOVERY Log Transações Pendentes - REDO: COMMIT - UNDO: ROLLBACK ANALISE Banco de Dados ONLINE
  • 12.
    • O queacontece 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 Dados MDF/NDF RECOVERY Log Emergência READ-ONLY
  • 14.
    • Banco dedados 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:Backupdb_crit_2011.bak’
  • 15.
    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
  • 16.
    Overview dos Tiposde Backup do SQL Server Tipos de Backup Description Full Todos os Data files são Backupeados Differential Faz o Backup apenas das Paginas de Dados que foram alteradas Transaction Log Todas as mudanças registradas no Log desde o ultimo Backup de Transaction Log Tail-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
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
    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
  • 25.
  • 26.
    Seg 10:00pm Ter 10:00pm Qua 4:23pm Recovery SIMPLE Restore de Database Perdade dados tolerável desde o último backup. Exemplo: 1 dia.
  • 27.
  • 28.
    Seg 10:00pm Ter 10:00pm Qua 4:23pm + + += Restore de Log Perda de dados tolerável desde o último backup de Log. Exemplo: 30 minutos FULL
  • 29.
    Seg 10:00pm Ter 10:00pm Qua 4:23pm Recovery FULL Restore do Finaldo Log (TAIL LOG) Recupera todos os dados, sem perda de informação. Restore de Database Perda de dados tolerável desde o último backup. Restore de Log Perda de dados tolerável desde o último backup de Log. Exemplo: 30 minutos 4:00pm
  • 30.
  • 31.
    Modelos de Recovery Modelode Recovery Características Simple • 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 Tempo Bulk 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
  • 32.
  • 33.
  • 34.
  • 36.
    Log Shipping • LSN- Log Sequence Number • Overview de Log Chain • Criação do Log Shipping • Manutenção do Log Shipping
  • 37.
    LSN – LogSequence Number
  • 38.
  • 39.
  • 40.
    Manutenção do LogShipping STANDBYSERVER LSN : 10001,10002,10003 …
  • 42.
    Restaurando Backups deUser Databases • Como Funciona o Processo de Restore • Tipos de Restore • Restaurando um Banco de Dados • Restaurando um Transaction Log
  • 43.
  • 44.
    Tipos de Restore •Restore completo de Database • Restore de Filegroup • Restore de Páginas • Restore Online
  • 45.
    Passos para Restaurarum Banco de Dados 1. Realize um Backup de Tail-Log 2. 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 utilizados 5. Inicie a sequência do Restore
  • 46.
    Passos para Restauraro Transaction Log
  • 47.
    Realizando Operações deRestore • Restaurando uma Página Corrompida • Restaurando uma Tabela Específica • Restaurando Banco de Dados com erro em um MDF
  • 48.
    • • 2012-01-01 15:46:42.90 spid51Error: 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:MSSQLDATAmy_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
  • 49.
    Restore de PáginasCorrompidas 1. Obter os id(s) das páginas corrompidas 2. Inicie com um Restore de Database selecionando as Páginas com problema 3. Aplique os Backups de Log subsequentes Passos a Seguir :
  • 50.
    Restaurarando uma TabelaEspecífica Cenário : Uma importante tabela precisa ser restaurada, sem que todo o Banco de Dados precise ser reescrito
  • 51.
    Restaurarando uma TabelaEspecífica 1. Restaure o backup do Datafile que contem a tabela 2. Restaure o Backup direfencial para cada arquivo 3. Restaure os Transaction Logs sequencialmente 4. Realize o Recover do Database Pré-requisito : A Tabela precisa ser criada em um Datafile separado Passos a Seguir :
  • 52.
    Restaurando Banco deDados com erro de MDF Cenário : Um dos Data Files do Banco não pode ser acessado
  • 53.
    Restaurando Banco deDados com erro de MDF 1. Realize o Backup de Tail Log 2. Restaure o backup do Database 3. Restaure os Transaction Logs sequencialmente 4. Restaure o restore do Tail Log Passos a Seguir :