SQL Server Basico 1 – Recovery Models

Cada base de dados de uma instancia SQL Server possui o seu recovery model, para se verificar essa instancia, execute a query:

SELECT [Name], [Recovery_Model_Desc]
FROM sys.databases
WHERE [Name] = 'SuaBase'

Sabe-se que toda transação realizada em uma base de dados é gravada no arquivo de log (.ldf) da reespectiva base, o recovery model indica o que acontecera com esse log.

Existem 3 opções para o recovery model de uma base de dados:

Simple: Neste modo, os seguintes steps são executado:
1. Usuario inicia transação
2. É gerado log
3. Transação do usuario é finalizada via Commit ou Rollback
4. Log dessa transação é apagada do arquivo
Veja que neste modo, não é gravado permanentemente nada em seu arquivo de log.
Ventagens: Ocupa pouco espaço em disco.
Não existe a preocupação de tratar arquivos de log ou realizar backup do mesmo
Desvantagens: Dependendo da sua estrategia de backup, manter o recovery model em simple e consequentemente não realizar backup de log, pode haver perda maiores perda de dados devido ao tempo do ultimo backup diferencial ou full.

Full:Esta opção de recovery model guarda todas as transações realizadas no arquivo de log, diferentemente da opção simple, nenhum dado é deletado do arquivo .ldf, os step executados são:
1. Usuario inicia transação
2. É gerado log
3. Transação do usuario é finalizada
4. Na proxima transação do outro usuario, simplismente sera colocado em seguida no log, mantendo os logs das transações anteriores.
Ventagens: Backup de log, portanto, restore com a opção STOP AT TIME, utilizada para voltar a base em determinado horario.
Devido as (normalmente) muitas execuções do backup de log (que só é possivel no recovery model full) tem-se normalmente uma menor perda de dados em relação ao tempo em caso de falha.
Desvantagem: Para seu log não crescer para sempre, é necessario a realização de backup de log, ter os arquivos de backup é uma coisa boa, mas o gerenciamento dos mesmos quando existem muitos, acaba ficando um pouco mais complexo.

Bulk-Logged:Essa opção é muito semelhante a opção Full, com apenas uma diferença: Quando é realizado alguma inserção bulk (Via arquivo texto por exemplo…) e o recovery model esta em Full, vamos dizer que é gerado um log do tipo:
INSERIDO TabelaA Coluna1 Fabrizzio Coluna2 Antoniaci Coluna3 Caputo
E assim para cada linha….
Porem, se a sua base estiver em recovery model bulk-logged, vamos dizer que o log gerado seria:
INSERIDO TabelaA Arquivo ‘C:\File.txt’ RowTerminator’;’ FieldTerminator’,’
Sua vantagem em relação ao recovery model full é:
Melhor performance para operações Bulk

Anúncios
Post a comment or leave a trackback: Trackback URL.

Trackbacks

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: