SQL Saturday Joinville

É isso aí galera. Gostaria de convidá-los a participar de mais um evento da comunidade técnica de SQL SERVER: O SQLSATURDAY, vai ser o número 361 e este vai ocorrer em Joinville. Se você estiver por lá no dia 25/04/2015 não dei xe de comparecer no evento!

São 3 trilhas de palestras o dia todo de caras FERAS no SQL SERVER e alguns Noobs (eu…). Neste dia vou comparar superficialmente as arquiteturas de Oracle e SQL SERVER e apresentar algumas das principais ferramentas que usamos no Oracle. Vou mostrar a importância de conhecermos duas tecnologias de SGBDs para nosso desenvolvimento profissional.

Inscreva-se, é grátis! Graças aos patrocinadores!

Home page do evento: https://www.sqlsaturday.com/361/eventhome.aspx

ps: Não, não vou puxar a sardinha pro lado do SQL SERVER, quem me conhece sabe que eu jamais faria isso! 😉

 

sql-server-2014 oracle

modelos de recuperação no Sql Server – parte 2

Neste video demonstro a diferença entre os modelos de recuperação FULL e BULK-LOGGED no SQL SERVER. Bem como as vantagens e desvantagens de cada um e suas implicações na escolha da política de Backup.

Veja a primeira parte: http://www.dbbits.com.br/sqlserverrocks/2015/03/modelos-de-recuperacao-no-sql-server-parte-1/

Comando BULK INSERT: https://msdn.microsoft.com/en-us/library/ms188365.aspx
Operações minimamente logadas: https://msdn.microsoft.com/en-us/library/ms190422.aspx

 

 

Modelos de recuperação no SQL SERVER – parte 1

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/

 

 

 

Introdução ao Log de Transações do SQL SERVER

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:

[sql]
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
[/sql]

Deslogando um usuário remotamente no windows Server

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

 

Cycle do Error LOG

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:

[sql]
exec master..sp_cycle_errorlog;
GO
[/sql]

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!

 

Backup dividido em vários arquivos ou Stripping de Backup

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:

[sql]

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!
;

[/sql]

 

Ficaria algo como na figura abaixo:

backup_stripped

 

É isso pessoal, espero ter ajudado!

 

Removendo arquivos de LOG adicionais

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:

    [sql]
    select name, log_reuse_wait_desc
    from sys.databases;
    [/sql]

  • 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 de dados no SQL SERVER – o básico

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:

O DBA e Processos de T.I. – uma relação de amor e ódio

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!