{"id":3628,"date":"2015-11-12T10:37:41","date_gmt":"2015-11-12T12:37:41","guid":{"rendered":"http:\/\/www.fabriciolima.net\/blog\/?p=3628"},"modified":"2016-07-23T22:22:53","modified_gmt":"2016-07-24T01:22:53","slug":"casos-do-dia-a-dia-corrupcao-de-dados-alertas-backup-log-dba-salvo","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2015\/11\/12\/casos-do-dia-a-dia-corrupcao-de-dados-alertas-backup-log-dba-salvo\/","title":{"rendered":"Casos do Dia a Dia: Corrup\u00e7\u00e3o de dados + Alertas + Backup Log = DBA Salvo!"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>Estou aqui para compartilhar com voc\u00eas mais um caso do dia a dia que aconteceu comigo no dia de ontem.<\/p>\n<p>Estava eu feliz da vida trabalhando em meu home office, quando recebi um <a href=\"https:\/\/www.fabriciolima.net\/blog\/consultoria-remota\/criacao-de-alertas\/\" target=\"_blank\">e-mail de alerta<\/a> indicando corrup\u00e7\u00e3o de dados em um dos meus <a href=\"https:\/\/www.fabriciolima.net\/blog\/clientes\/\" target=\"_blank\">12 clientes<\/a> que realizo a <a href=\"https:\/\/www.fabriciolima.net\/blog\/consultoria-remota\/\" target=\"_blank\">administra\u00e7\u00e3o e o monitoramento remoto do banco<\/a> deles.<\/p>\n<p>Como corrup\u00e7\u00e3o de dados \u00e9 aquele tipo de problema que a adrenalina sobe na hora e o cora\u00e7\u00e3o bate mais forte, rapidamente j\u00e1 realizei um acesso remoto para analisar o problema.<\/p>\n<p>Logando no servidor e realizando o CHECKDB nas bases, identifiquei 6 bases de dados corrompidas (incluindo a base MSDB). E eram MUITAS corrup\u00e7\u00f5es, inclusive em p\u00e1ginas internas do SQL Server.<\/p>\n<p>A\u00ed que entra um cara lindo chamado BACKUP DO LOG!!!!<\/p>\n<p>A corrup\u00e7\u00e3o aconteceu nas p\u00e1ginas de dados do SQL Server (arquivo .mdf). Felizmente os arquivos de log estavam intactos.<\/p>\n<p>Como o backup do log guarda todas as altera\u00e7\u00f5es na base uma a uma (insert\/update\/delete\/etc), mesmo acontecendo uma corrup\u00e7\u00e3o na base \u00e0s 12h, se o SQL Server ainda conseguir rodar um backup do log dessa base \u00e0s 12h:10min, esse backup do log vai estar limpo (sem corrup\u00e7\u00e3o).<\/p>\n<p>Olha que coisa linda!!!<\/p>\n<p>Se eu fizesse um backup FULL ele estaria com dados corrompidos pois iria ler todas as p\u00e1ginas de dados do SQL.<\/p>\n<p>Seguem os passos realizados (dica de ouro):<\/p>\n<p>1 &#8211; Parei o acesso as bases de dados.<\/p>\n<p>2 &#8211; Fiz um \u00faltimo backup do Log<\/p>\n<p>3 &#8211; Restaurei o backup FULL que \u00e9 feito na madrugada<\/p>\n<p>4 &#8211; Restaurei todos os backups do Log at\u00e9 o backup feito no passo 2<\/p>\n<p>5 &#8211; Executei um novo CHECKDB em todas as 6 bases de dados e nenhuma delas indicou corrup\u00e7\u00e3o de dados<\/p>\n<p>Pronto!!! Bases restauradas sem corrup\u00e7\u00e3o at\u00e9 o \u00faltimo instante que o sistema estava funcionando e sem nenhuma perda de dados.<\/p>\n<p><strong>Corrup\u00e7\u00e3o de Dados + Alertas + Backup = DBA Salvo + Empresa sem perda de dados!!!<\/strong><\/p>\n<p>H\u00e1 1 ano, esse cliente n\u00e3o tinha nenhum DBA monitorando o banco de dados.<\/p>\n<p>Ou seja:<\/p>\n<ul>\n<li>Ele n\u00e3o tinha uma rotina de backup do Log<\/li>\n<li>Ele n\u00e3o tinha alertas no banco de dados<\/li>\n<li>Ele n\u00e3o tinha um DBA realizando dois testes de restore (FULL + Logs) \u00a0por m\u00eas<\/li>\n<\/ul>\n<p>Dessa forma, ele poderia demorar para identificar o problema de corrup\u00e7\u00e3o e perder informa\u00e7\u00f5es valiosas da empresa.<\/p>\n<p>Eu sempre digo que corrup\u00e7\u00f5es s\u00e3o raras, mas acontecem. Nesse caso, foi devido a um desligamento for\u00e7ado do servidor somado a algum problema de hardware.<\/p>\n<p><span style=\"color: #000000;\">Para refletir: <\/span><\/p>\n<ul>\n<li><span style=\"color: #ff0000;\">O banco de dados da sua empresa est\u00e1 preparado para esse tipo de problema?<\/span><\/li>\n<li><span style=\"color: #ff0000;\">Algum colaborador est\u00e1 capacitado para analisar e resolver essas falhas?<\/span><\/li>\n<\/ul>\n<p><strong><span style=\"color: #0000ff;\">Ou voc\u00ea treina algu\u00e9m, ou voc\u00ea contrata algu\u00e9m ou voc\u00ea est\u00e1 correndo risco de perder dados.<\/span><\/strong><\/p>\n<p>Espero ter ajudado.<\/p>\n<p><b>Gostou dessa dica?<\/b><\/p>\n<p>Cadastre seu e-mail para receber novos Posts e curta minha <a href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\">P\u00e1gina no Facebook<\/a> para receber Dicas de Leituras e Eventos sobre SQL Server.<\/p>\n<p>Confira mais experi\u00eancias do Dia a Dia de um DBA no meu <a href=\"https:\/\/www.fabriciolima.net\/cursos-online\/treinamento-tarefas-do-dia-a-dia-de-um-dba-online\/\" target=\"_blank\">Treinamento de Tarefas do Dia a Dia de um DBA<\/a>.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>MCITP \u2013 Database Administrator<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 Pessoal, Estou aqui para compartilhar com voc\u00eas mais um caso do dia a dia que aconteceu comigo no dia de ontem. Estava eu feliz da vida trabalhando em meu home office, quando recebi um e-mail de alerta indicando corrup\u00e7\u00e3o de dados em um dos meus 12 clientes que realizo a administra\u00e7\u00e3o e o monitoramento [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3,6,942,991,33,280],"tags":[1151,1179,954,1011,942,1114,422,23,1154,1153,1152,1150,33,385],"class_list":["post-3628","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-casos-do-dia-a-dia","category-consultoria-sql-server","category-dba-remoto","category-sql-server","category-virtual-pass-br","tag-alertas-banco-de-dados","tag-attach","tag-backup","tag-checkdb","tag-consultoria-sql-server","tag-corrupcao","tag-corruption","tag-dba","tag-especialista-banco-de-dados","tag-problema-sql-server","tag-repair_allow_data_loss","tag-restore","tag-sql-server","tag-suspect_pages"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":3022,"url":"https:\/\/fabriciolima.net\/blog\/2014\/06\/16\/cliente-diz-tenho-backups-e-meu-banco-esta-seguro-sera\/","url_meta":{"origin":3628,"position":0},"title":"Cliente diz: &#8220;Tenho Backups e meu banco est\u00e1 seguro&#8221;. Ser\u00e1???","author":"Fabr\u00edcio Lima","date":"16 de junho de 2014","format":false,"excerpt":"Ol\u00e1 Pessoal, O objetivo desse post \u00e9 fazer um alerta a todos voc\u00eas que s\u00e3o respons\u00e1veis por um banco de dados SQL Server, seja voc\u00ea um desenvolvedor, um analista de banco de dados, um coordenador ou gerente de TI. J\u00e1 atendi muitos clientes na minha Consultoria SQL Server que contrataram\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3305,"url":"https:\/\/fabriciolima.net\/blog\/2015\/03\/11\/casos-do-dia-a-dia-mais-um-caso-real-de-perdas-de-dados-em-uma-empresa\/","url_meta":{"origin":3628,"position":1},"title":"Casos do Dia a Dia: Mais um caso real de perdas de dados em uma Empresa","author":"Fabr\u00edcio Lima","date":"11 de mar\u00e7o de 2015","format":false,"excerpt":"Ol\u00e1 Pessoal, Um cliente me procurou dizendo que precisava muito da minha ajuda pois estava com um problema grave no SQL Server. Ele teve um problema com o servidor e s\u00f3 conseguiu salvar os arquivos .mdf e .ldf da base de dados. Contudo, ao tentar dar um attach nesses arquivos,\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2015\/03\/Attach.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":3129,"url":"https:\/\/fabriciolima.net\/blog\/2014\/11\/03\/treinamento-sql-server-tarefas-do-dia-a-dia-de-um-dba\/","url_meta":{"origin":3628,"position":2},"title":"Treinamento SQL Server: Tarefas do dia a dia de um DBA","author":"Fabr\u00edcio Lima","date":"3 de novembro de 2014","format":false,"excerpt":"\u00a0 Ol\u00e1 Pessoal, Um amigo quer entrar para a \u00e1rea de administra\u00e7\u00e3o de banco de dados e me solicitou um treinamento que abordasse as atividades de um DBA no seu dia a dia de trabalho. Diante disso, resolvi preparar um treinamento para ele, mas abrirei o treinamento para mais 4\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2014\/11\/Treinamento.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":3714,"url":"https:\/\/fabriciolima.net\/blog\/2015\/12\/17\/corrupcao-de-dados-incorrect-pfs-free-space-information\/","url_meta":{"origin":3628,"position":3},"title":"Corrup\u00e7\u00e3o de Dados: Incorrect PFS free space information","author":"Fabr\u00edcio Lima","date":"17 de dezembro de 2015","format":false,"excerpt":"Ol\u00e1 Pessoal, Essa semana iniciei mais uma Consultoria Remota em um cliente e uma das atividades mais importante desse servi\u00e7o \u00e9 criar uma rotina para validar diariamente se existe corrup\u00e7\u00e3o nos bancos. Na grande maioria das vezes o banco est\u00e1 abandonado e n\u00e3o tem uma rotina dessa. Ao executar essa\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2858,"url":"https:\/\/fabriciolima.net\/blog\/2014\/03\/10\/como-descobrir-a-pagina-fisica-dos-registros-de-uma-tabela-com-apenas-um-select\/","url_meta":{"origin":3628,"position":4},"title":"Como descobrir a p\u00e1gina f\u00edsica dos registros de uma tabela com apenas um SELECT","author":"Fabr\u00edcio Lima","date":"10 de mar\u00e7o de 2014","format":false,"excerpt":"Ol\u00e1 Pessoal, Continuando os cursos do Paul Randal na PluralSight, muitas ideias de posts v\u00e3o surgindo e com o tempo permitindo, colocarei aqui no Blog. Hoje vou falar de duas fun\u00e7\u00f5es n\u00e3o documentadas que nunca tinha ouvido falar:\u00a0%%PHYSLOC%% e\u00a0fn_PhysLocCracker. Criei uma tabela e populei com mil registros para a realiza\u00e7\u00e3o\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2014\/03\/PHYSLOC.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":2281,"url":"https:\/\/fabriciolima.net\/blog\/2013\/08\/20\/detalhes-da-minha-consultoria-sql-server\/","url_meta":{"origin":3628,"position":5},"title":"Detalhes da minha Consultoria SQL Server","author":"Fabr\u00edcio Lima","date":"20 de agosto de 2013","format":false,"excerpt":"Ol\u00e1 Pessoal, Como \u00e9 poss\u00edvel ver no banner do Blog, realizo um servi\u00e7o de consultoria remota conforme descrito nessa p\u00e1gina: Consultoria Remota Ap\u00f3s receber o feedback abaixo de um cliente de S\u00e3o Paulo, verifiquei que existia uma necessidade de dar mais detalhes do meu trabalho para que possa atrair mais\u2026","rel":"","context":"Em &quot;Carreira&quot;","block_context":{"text":"Carreira","link":"https:\/\/fabriciolima.net\/blog\/category\/carreira\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/08\/FeedbackConsultoria1.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/3628","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/comments?post=3628"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/3628\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=3628"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=3628"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=3628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}