Boa tarde a todos!

Neste vídeo explico um pouco dos modelos de recuperação FULL e SIMPLE no SQL SERVER e como eles podem influenciar a nossa política de backup – para garantir uma boa recuperabilidade de nossas bases de dados.

Espero que ajude! 🙂

Veja mais a respeito do log de transações: http://www.dbbits.com.br/sqlserverrocks/2015/03/introducao-ao-log-de-transacoes-do-sql-server/

Para saber mais acesse: http://www.dbbits.com.br/sqlserverrocks/2015/03/modelos-de-recuperacao-no-sql-server-parte-1/

 

 

 

Salve pessoal!

Neste video explico o mecanismo interno do log de transações do SQL SERVER, o arquivo mais importante de qualquer banco de dados na sua instância ;-).

Leitura obrigatória:

https://technet.microsoft.com/en-us/library/ms179355%28v=sql.105%29.aspx

https://msdn.microsoft.com/en-us/library/ms190925.aspx

http://www.sqlskills.com/blogs/paul/category/transaction-log/

Comandos importantes:

DBCC LOGINFO --informações a respeito dos VLFs
DBCC SQLPERF(LOGSPACE) --Espaço utilizado em cada LDF de cada base
DBCC OPENTRAN --Transação aberta há mais tempo no banco de dados

select * from sys.fn_dblog(null,null); --Verificar o conteúdo do arquivo de LOG
Select name,log_reuse_wait_desc from sys.databases; -- ver estado do LDF de cada base

Então quero logar num servidor e temos sessões já utilizando o mesmo.

Posso executar uma pesquisa de sessões no servidor via prompt de comandos:

query session /server:<<nome do servidor ou ip>>

Uma lista aparecerá e basta executar o seguinte comando para realizar o logoff remoto:

logoff <<ID da sessão>> /server:<<nome do servidor ou ip>>

logoff

 

Para mais detalhes:
https://technet.microsoft.com/en-us/library/cc785434.aspx

 

Já tentou ler aquele log de erros do SQL SERVER quando o mesmo está cheio? Péssimo né?

É uma boa prática implementar um job que realiza a “reciclagem” do log de erros. Simplesmente através do comando abaixo:

exec master..sp_cycle_errorlog;
GO

Por que? Simples, seu log não fica tão cheio e fica mais facil de apagar os logs arquivados mais antigos para evitar potencial perda de espaço em disco – Sim, existem ataques que consistem em encher o log até estourar o espaço em disco.

Então, no seu ambiente, crie essa rotina, coloque este comando em um job para ser executado semanalmente ou diariamente, dependendo das suas configurações.

Executei o comando para reciclar o LOG de Erros….
errorlog_1

 

… E foi criado um novo Error log atual(Current):
errorlog_2

 

É isso pessoal, Happy SQLSERVING!

 

O procedimento de split ou stripping de Backup é particularmente interessante quando nos deparamos com dois problemas:

  • Depenho abaixo do esperado no momento de realização de backup de um banco por contenção de I/O;
  • Temos que disponibilizar o arquivo em algum caminho para cópia e um arquivo seria inviável pelo tamanho do mesmo.

Real World Case: Já passei por alguns casos onde este ajuste foi necessário, um cliente tinha uma base de cer

O único cuidado que devemos ter é: Você precisará de TODOS os arquivos gerados no backup para realizar o restore, tenha isso em mente.

Fazemos o split a partir do comando de backup, conforme abaixo:


 Backup database POMBO
 to disk = 'c:\emp\pombo_01.bak',
 disk = 'c:\emp\pombo_02.bak',
 disk = 'c:\emp\pombo_03.bak'
 with stats=5, compression
,copy_only --use esta opção se você não quer estragar a sua política atual de Backup!
;

 

 

Ficaria algo como na figura abaixo:

backup_stripped

 

É isso pessoal, espero ter ajudado!

 

Boa prática, tudo gira em torno de boas práticas.

Mas muita gente esquece delas quando passa por um momento de crise ou simplesmente não lê a docuementação do produto. Existem muitas razões para criarmos mais do que um arquivo de log de transações no SQL SERVER:

  • Existe uma transação gigantesca em execução e o disco onde está o LOG está com o espaço no final…
  • That’s it….

Sim, não existe outra razão, apenas nos salvar num momento onde a base não pode parar…. Isso porque a escrita no LDF é totalmente serial, ou seja, o SQL SERVER sempre vai usar apenas UM arquivo por vez, diferente de um possível balanceamento via Filegroups (procurem pelos posts do Paul Randall no google, em breve coloco eles como referência).

O que acontece é que muitas vezes resolvemos o incidente, mas não lembramos de fazer a limpeza posterior…. Devemos limpar a sujeira temporária, como ficará a imagem do DBA quando virem dois ou mais arquivos de LOG desnecessários?

First things first:

  • Você consegue remover os arquivos de log que tenham ID diferente de 2 ou seja, não são o inicial. Nem adianta procurar como remover o 2, não perca seu tempo!
  • Log de transações guarda adivinha, transações! Caso não esteja conseguindo remover um arquivo adicionado posteriormente, verifique as transações ativas na base (DBCC OPENTRAN) e veja porque não é possível truncar o log:
    select name, log_reuse_wait_desc
    from sys.databases;
    
  • Você pode precisar realizar um Backup de LOG (recovery em BULK LOOGED ou FULL) antes de remover o arquivo LDF. Por que? Você precisa garantir pro SQL SERVER que as informações que ele precisa para recuperar seus dados estão sã e salvas em local seguro, caso contrário ele não deixará você remover o mesmo.
  • Verifique o status de seus VLFs (Virtual Log Files) com o comando DBCC LOGINFO, caso algum VLF esteja com status 2 no fileid que você quer remover, esqueça, você precisa deixar ele sem uso (status 0) antes de prosseguir.

Aqui está o video com o passo a passo, enjoy!

Recuperação é um termo estranho, estamos tão acostumados com Backup/Restore ou Recovery que esquecemos do termo em português. Mas Recuperação nada mais é do que colocarmos no ar novamente dados que ficaram indisponíveis por qualquer razão.

Sim, é simples assim e mais complicado do que parece. Paradoxal não?

Estratégia de Backup/Restore, Recuperação envolve uma série de fatores.

Tudo se resume às questões:

  • Gosta do seu trabalho como DBA? Quer acessar a apinfo em breve?
  • Se gosta do seu atual trabalho, cabe a você expor os fatos e riscos para seu cliente e de maneira simples e direta convencê-lo que para ter menos perda de dados, seu dinheiro será bem investido.
  • Como DBA você assinou um contrato invisível e fictício de sempre fazer o possível (as vezes até o impossível) para recuperar os dados do seu cliente da melhor maneira possível!

Com os videos abaixo espero poder passar um pouco destas ferramentas para vocês.

Obrigado a todos e happy dbaying!

Parte 1, um pouco de teoria:

Parte 2, um pouco de prática:

Parte 3, um pouco mais de prática:

Fala pessoal, boa noite.

Subi mais um video no canal do youtube. Este é um video não tecnico que trata dos problemas que podem ocorrer quando não seguimos processos (biblioteca ITIL, por exemplo) e deixamos a proatividade (para não falar outra coisa) falar mais alto do que a vontade de… escrever… documentar…

Sim, ITIL pode ser chato, mas pode salvar um emprego!

Com certeza este video terá mais do que uma parte e haverão palestras a respeito do tema.

Espero que gostem…

Até a próxima!

 

Então pessoal, resolvi deixar o depoimento a respeito do curso de SQL SERVER Tuning que estou fazendo com a Sr. Nimbus.

Pra quem não sabe, a Sr Nimbus é A consultoria para treinamentos avançados de SQL SERVER no Brasil. Formada por alguns MVPs, possui cursos presenciais e online. Todos recomendadíssimos. A ideia dos cursos não é preparação para provas de certificação, para isso existem muitos CPLS – centros de treinamento parceiros Microsoft – a ideia é apresentar com detalhes o funcionamento dos mecanismos do SQL SERVER. Raro encontrar cursos nestes níveis para outras tecnologias.

O curso de Perf Tuning está sendo ministrado pelo MVP Fabiano Amorim e está em seu final, porém já é possível tirarmos algumas conclusões a respeito do curso:

  • Performance é um assunto complexo, nem se fossem 2 semanas daria tempo de falar tudo a respeito do assunto.
  • Se estiver fazendo esse curso, não olhe pro lado, você já perdeu a explicação sobre um operador do Relational Engine.
  • Este curso complementa o ( também indispensável) de Internals, ministrado pelo Luti.
  • Tive a sorte de estar em uma turma que tinha como aluno o Thiago Carlos Alencar – Que ministra cursos na Ká Solution e manda muito bem em Perf Tuning também.
  • Faça e refaça os exercícios e demos em casa, é a melhor maneira de aprender.
  • estude…

Enfim, é um curso essencial, necessário e que precisa ser feito por todo mundo que pretende conhecer um pouco mais sobre o otimizador de consultas do SQL SERVER. Vale o investimento.

Conclusão: Quanto mais estudamos tecnologia, mais vemos que precisamos estudar…

Abraços!

Marcelo