Cliente diz: “Tenho Backups e meu banco está seguro”. Será???

16, junho, 2014 8 comentários

Olá Pessoal,

O objetivo desse post é fazer um alerta a todos vocês que são responsáveis por um banco de dados SQL Server, seja você um desenvolvedor, um analista de banco de dados, um coordenador ou gerente de TI.

Já atendi muitos clientes na minha Consultoria SQL Server que contrataram um pacote de Tuning comigo, mas não quiseram contratar o pacote de reestruturação das rotinas de backups e alertas, pois ele já tinha um backup rodando no banco de dados ou tinha um servidor na nuvem onde existe uma garantia de alta disponibilidade do servidor virtual ou por outros motivos.

Acontece que mesmo com uma excelente rotina de backups você pode perder dados no SQL Server. Isso não é um problema exclusivo do SQL Server, dados também podem se corromper nos outros SGBDs do mercado (Oracle, DB2 e etc).

Em um exemplo real, um cliente me ligou pedindo ajuda pois que sua base estava corrompida. Ao fazer uma análise do nível de corrupção desse cliente, não seria possível recuperar essa base, pois páginas de estruturas internas da única tabela existente na base estavam corrompidas. Nem o comando CHECKDB com REPAIR_ALLOW_DATA_LOSS era possível ser executado nessa base dado o nível de corrupção. Solicitei os backups ao cliente e ele disse que tinha apenas um backup feito na semana anterior, mas que já tinha restaurado e o backup também já estava com a base corrompida.

Nesse caso, o backup era executado com sucesso, mas a base possuía páginas corrompidas. A única solução possível foi realizar um SELECT nos dados que ainda estavam sendo retornados e inserir esses dados em uma nova Base/Tabela.

Resultado: Perda de dados para a empresa.

Imagina se isso acontece com o banco de dados da sua empresa e com a tabela mais importante que existe?

Outro caso real e mais grave é contado pelo Paul Randal (cara que escreveu o CHECKDB). Um Banco dos EUA teve um problema de corrupção em um índice nonclustered. A princípio essa é uma corrupção simples de resolver, mas o DBA tomou uma série de ações erradas que aumentou ainda mais o problema. Chamaram o Paul Randal e após análise do ambiente ele pediu os backups para recuperar a base. O Banco tinha um backup FULL de 4 meses atrás e backups do Log até o dia do problema, tudo em fita. Milagrosamente, todos os backups foram restaurados com sucesso, mas o banco ficou parado por 2 dias para concluir essa operação. Os clientes que não conseguiram tirar extratos ou sacar seu dinheiro por dois dias mudaram de banco e logo em seguida o banco quebrou.

Resultado: Empresa falida e com uma contribuição significativa do DBA. Para verem o poder que esse profissional tem em mãos e muitas vezes isso não é valorizado até que um desastre como esse aconteça.

Mas o que pode ser feito para evitar ou amenizar esses problemas de corrupções?

  • A primeira dica é cuidar muito bem do seu sistema de I/O (Discos, drives, controladoras e etc).
  • Cuidar do seu fornecimento de energia para evitar quedas inesperadas do seu servidor.
  • Monitorar a tabela suspect_pages no MSDB.
  • Monitorar os alertas 823, 824 e 825.
  • Executar o CHECKDB com a maior frequencia possível, mas em horários não produtivos pois é um procedimento muito pesado. Em caso de encontrar uma corrupção, um alerta deve ser enviado imediatamente.
  • Ter um Database Mirroring ou AlwaysOn Availability Groups configurado. Como essas tecnologias replicam log de transação, uma corrupção de página não é replicada para os servidores secundários. Além disso, em alguns casos, a página corrompida é recuperada automaticamente do servidor secundário para o servidor primário.  Isso já seria um grande motivo para convencer seu gerente a investir nessas tecnologias.
  • Ter uma rotina de backup adequada com backups redundantes e realizar testes de restore com esses backups. Não adianta ter backup e o mesmo não funcionar na hora de restaurar por estar corrompido.

Evitar 100% uma corrupção não é possível, mas você deve ter meios de identificar essa corrupção o mais rápido possível para poder atuar e diminuir os impactos causados por essa corrupção.

Corrupções em banco de dados acontecem com mais frequência do que imaginamos, basta dar uma busca nos fóruns que encontrará várias threads com alguém solicitando ajuda em uma corrupção. Também vejo esses relatos em muitas listas de e-mail e agora até dos clientes que atendo como consultoria.

Para finalizar esse post, se você é responsável pela TI da sua empresa, possui um banco SQL Server e não tem ninguém com conhecimento para administrá-lo, você tem duas opções:

  • Contratar um especialista SQL Server para analisar seu ambiente e criar os procedimentos necessários para te alertar rapidamente em caso de corrupção.
  • Treinar um de seus colaboradores para que possam realizar essas tarefas de administração do ambiente.

Espero ter contribuído para evitar que esse problema aconteça com vocês. Corrupção é o problema que mais me dá medo nos bancos de dados SQL Server que sou responsável.

Abraços,

Fabrício França Lima

MCITP – Database Administrator

Trabalha com SQL Server desde 2006

Casos do Dia a Dia: Removendo um Disco Mount Point de um Cluster SQL Server

9, junho, 2014 2 comentários

Olá Pessoal,

Em um belo dia de sol, precisamos remover um disco que era mount Pouint de um cluster com SQL Server.

Realizamos a remoção como se fosse um disco normal, conferimos que o disco não estava mais sendo utilizado, tiramos todas as dependências desse disco e finalmente retiramos o disco do cluster (botão direito no recurso + Remove).

Ao fazer isso, todos os meus recursos desapareceram da minha console do Failover Cluster Services:

Leia mais…

SQL Server 2012 – Simulado para a prova 70-461 – Parte 10

19, maio, 2014 2 comentários

Olá Pessoal,

Após um bom tempo parado, consegui uma folga nas minhas consultorias para escrever mais um post. Segue mais um simulado com 5 questões para a prova 70-461.

1 – Quais das opções abaixo indicam o que não pode ser feito em uma função no SQL Server? (Marque todas as corretas)

a – Criar ou acessar tabelas temporárias
b – Chamar uma Stored Procedures
c – Executar códigos dinâmicos no SQL Server
d – Fazer um loop com WHILE ou CURSOR
e – Chamar uma View
f – Chamar outras funções

Leia mais…

TOP 5 Posts mais acessados em Abril de 2014

Olá Pessoal,

Pelo quarto mês seguido tive um recorde de visitas (293 a mais) e visualizações de páginas (825 a mais). Segue abaixo os dados de acesso do mês:

Seguem os 5 artigos com mais visualizações do mês de Fevereiro de 2014:

1 - Material para as certificações MCSA e MCSE do SQL Server 20121.870 visualizações

2 - 5 motivos para quem utiliza o Protheus (Totvs) contratar um DBA SQL Server1.710 visualizações

3 - Windows Server 2012 – Simulado para a prova 70-410 – Parte 11.439 visualizações

4 -SQL Server 2012 – Simulado para a prova 70-461 – Parte 1: 765 visualizações

5 - Windows Server 2012 – Simulado para a prova 70-410 – Parte 3: 703 visualizações

Destaque para mais um post de Windows Server que apareceu no TOP 5. A galera de infra está aumentando a presença aqui.

Seguem outras estatísticas do Blog: Quantidade de Acesso

Abraços,

Fabrício França Lima

MCITP – Database Administrator

Trabalha com SQL Server desde 2006

Categories: Notícias

Como serão as certificações do SQL Server 2014?

27, abril, 2014 2 comentários

Olá Pessoal,

Sexta-feira estive no evento oficial de lançamento do SQL Server no Brasil na sede da Microsoft em São Paulo. Foi falado bastante sobre as novas funcionalidades do SQL 2014, contudo, ninguém tocou no assunto certificação.

Me passaram um link da microsoft muito interessante onde na parte de perguntas e respostas são ditas algumas informações muito importantes sobre as certificações do SQL Server 2014.

Segue o link: http://www.microsoft.com/learning/pt-br/sql-certification.aspx#faq

A parte interessante desse link é essa informação abaixo:

Leia mais…

TOP 5 Posts mais acessados em Março de 2014

Olá Pessoal,

Pelo terceiro mês seguido, mesmo com Março tendo 5 dias de carnaval, tive um recorde de visitas (616 a mais) e visualizações de páginas (1.320 a mais). Segue abaixo os dados de acesso do mês:

No dia 18/03 também foi batido o recorde de visualizações do Blog em um único dia: 1.166 visualizações

Seguem os 5 artigos com mais visualizações do mês de Fevereiro de 2014: 

1 - Material para as certificações MCSA e MCSE do SQL Server 20121.721 visualizações

2 - 5 motivos para quem utiliza o Protheus (Totvs) contratar um DBA SQL Server1.402 visualizações

3 - Windows Server 2012 – Simulado para a prova 70-410 – Parte 11.277 visualizações

4 -SQL Server 2012 – Simulado para a prova 70-461 – Parte 1: 648 visualizações

5 - Cursos e materiais de TI online e grátis618 visualizações

Destaque para o Post do Protheus que assumiu a segunda colocação dos posts mais visualizados.

Seguem outras estatísticas do Blog: Quantidade de Acesso

Abraços,

Fabrício França Lima

MCITP – Database Administrator

Trabalha com SQL Server desde 2006

Categories: Notícias

Evento presencial gratuito de SQL Server em São Paulo – Eu vou!

19, março, 2014 2 comentários

Fala Pessoal,

Passando para divulgar um evento técnico que ocorrerá na sede da Microsoft Brasil em São Paulo.

Pela agenda da figura abaixo, as sessões serão de alto nível técnico e vale a pena conferir.

Leia mais…

Importando arquivos DBF (Protheus Totvs) para o SQL Server

18, março, 2014 Sem comentários

Olá Pessoal,

Realizando um trabalho com minha Consultoria Remota, o cliente precisava  importar arquivos no formato DBF para o SQL Server.

Nativamente, não é possível fazer essa importação.

Leia mais…

Microsoft divulga a data de lançamento do SQL Server 2014

18, março, 2014 Sem comentários

Olá Pessoal,

Quem acompanha a comunidade SQL Server hoje já viu via twitter ou outros Blogs que foi liberada a versão RTM (Release to Manufacturing) do SQL Server e que no dia 01 de Abril será liberada a versão GA (General Availability ), onde o SQL Server será disponibilizado para o público. É isso mesmo, “verdade verdadeira” mesmo no dia 01 de Abril.

Leia mais…

Como descobrir a página física dos registros de uma tabela com apenas um SELECT

10, março, 2014 Sem comentários

Olá Pessoal,

Continuando os cursos do Paul Randal na PluralSight, muitas ideias de posts vão surgindo e com o tempo permitindo, colocarei aqui no Blog.

Hoje vou falar de duas funções não documentadas que nunca tinha ouvido falar: %%PHYSLOC%%fn_PhysLocCracker.

Leia mais…

Follow

Get every new post delivered to your Inbox

Join other followers