{"id":2534,"date":"2013-12-11T08:59:09","date_gmt":"2013-12-11T10:59:09","guid":{"rendered":"http:\/\/fabriciolima.net\/blog\/?p=2534"},"modified":"2016-07-24T00:05:36","modified_gmt":"2016-07-24T03:05:36","slug":"casos-do-dia-a-dia-databases-em-modo-suspect-e-pendente-recovery","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2013\/12\/11\/casos-do-dia-a-dia-databases-em-modo-suspect-e-pendente-recovery\/","title":{"rendered":"Casos do Dia a Dia &#8211; Databases em modo Suspect e Pendente Recovery"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>Compartilhando mais uma experi\u00eancia do meu Dia a Dia com voc\u00eas (fazia tempo que n\u00e3o fazia um post assim), tive um problema em um servidor onde o servi\u00e7o do SQL Server foi iniciado sem que a LUN onde estavam as bases de usu\u00e1rios tivesse dispon\u00edvel para utiliza\u00e7\u00e3o. Pouco tempo depois a LUN ficou dispon\u00edvel para o SQL Server, mas as bases continuaram indispon\u00edveis.<\/p>\n<p><!--more--><\/p>\n<p>Ao me deparar com esse cen\u00e1rio, verifiquei que duas bases estavam com o status SUSPECT e o resto estava com o status Pendente Recovery. Dessa forma, executei o comando abaixo para deixar as bases online j\u00e1 que o disco estava dispon\u00edvel:<\/p>\n<p>ALTER DATABASE NOME SET ONLINE<\/p>\n<p>Das 20 bases que tinha, 19 ficaram online e apenas uma estava gerando um erro ao executar essa opera\u00e7\u00e3o.<\/p>\n<p>Antes de falar da base que tive um problema mais cr\u00edtico, dessas 19 bases que ficaram ONLINE, todas as bases utilizadas pelo LYNC n\u00e3o estavam mostrando as tabelas existentes nessa base. Ap\u00f3s executar um CHECKDB nessas bases do LYNC, recebia os erros abaixo:<\/p>\n<p>Msg 1823, Level 16, State 2, Line 1<br \/>\nA database snapshot cannot be created because it failed to start.<br \/>\nMsg 7928, Level 16, State 1, Line 1<br \/>\nThe database snapshot for online checks could not be created. Either the reason is given in a previous error or one of the underlying volumes does not support sparse files or alternate streams. Attempting to get exclusive access to run checks offline.<br \/>\nMsg 7985, Level 16, State 2, Line 1<br \/>\nSystem table pre-checks: Object ID 3. Could not read and latch page (1:55) with latch type SH. Check statement terminated due to unrepairable error.<br \/>\nDBCC results for &#8216;BASE&#8217;.<br \/>\nMsg 8966, Level 16, State 2, Line 1<br \/>\nUnable to read and latch page (1:55) with latch type SH. 21(failed to retrieve text for this error. Reason: 15105) failed.<br \/>\nCHECKDB found 0 allocation errors and 1 consistency errors not associated with any single object.<br \/>\nCHECKDB found 0 allocation errors and 1 consistency errors in database &#8216;rgsdyn&#8217;.<br \/>\nis the minimum repair level for the errors found by DBCC CHECKDB (rgsdyn).<br \/>\nMsg 9001, Level 21, State 4, Line 1<br \/>\nThe log for database &#8216;BASE&#8217; is not available. Check the event log for related error messages. Resolve any errors and restart the database.<\/p>\n<p>Fiz um Detach dessas bases e em seguida um Attach. Ao fazer o Attach, as bases subiram sem problema e o CHECKDB n\u00e3o retornou mais nenhum erro. Um grande al\u00edvio!!!!<\/p>\n<p>**IMPORTANTE** &#8211; Nesse caso eu fiz um Detach pois tinha um Backup pronto para restaurar a base. Caso voc\u00ea n\u00e3o tenha um backup ou n\u00e3o possa perder nenhum segundo de informa\u00e7\u00e3o, o indicado \u00e9 tentar outras opera\u00e7\u00f5es antes do Detach, pois ao tentar dar um attach, sua base pode n\u00e3o subir e voc\u00ea pode ficar sem nenhuma informa\u00e7\u00e3o dessa base.<\/p>\n<p>Falando agora da base rebelde que n\u00e3o seguiu o padr\u00e3o das outras.<\/p>\n<p>Tentei alterar o status dessa base com problema para EMERGENCY e OFFILINE e tamb\u00e9m n\u00e3o consegui.<\/p>\n<p>Ap\u00f3s algumas tentativas de voltar a base ela ficou com o status RESTORING.<\/p>\n<p>Nesse momento tentei o comando RESTORE DATABASE BASE with recovery e nada. Tentei continuar o restore com a op\u00e7\u00e3o RESTART do restore e tamb\u00e9m n\u00e3o consegui.<\/p>\n<p>Tentei dar um detach na base e nada.<\/p>\n<p>Executei o comando DROP DATABASE BASE. O comando era executado com sucesso, mas a base n\u00e3o era exclu\u00edda e permanecia com o status RESTORING (ainda n\u00e3o tenho explica\u00e7\u00e3o para isso).<\/p>\n<p>No fim das contas tive que reiniciar o servi\u00e7o do SQL Server no fim do dia. Ao fazer isso a base subiu com o status RECOVERY_PENDING e a\u00ed sim eu consegui dar um DROP DATABASE (antes disso renomeei os arquivos .mdf e .ldf dessa database por precau\u00e7\u00e3o). Ap\u00f3s excluir a base, bastou eu dar um attach nos arquivos dela que ela ficou online e sem nenhum problema.<\/p>\n<p>Passado o susto e a press\u00e3o do chefe do lado cobrando a volta das bases, a experi\u00eancia at\u00e9 que \u00e9 boa. Mais um aprendizado.<\/p>\n<p>Caso passe por esse tipo de problema e n\u00e3o queira arriscar uma a\u00e7\u00e3o que possa ser equivocada, entre em contato comigo que atendo como uma <a href=\"https:\/\/www.fabriciolima.net\/blog\/consultoria-remota\/\" target=\"_blank\">Consultoria SQL Server.<\/a><\/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, Compartilhando mais uma experi\u00eancia do meu Dia a Dia com voc\u00eas (fazia tempo que n\u00e3o fazia um post assim), tive um problema em um servidor onde o servi\u00e7o do SQL Server foi iniciado sem que a LUN onde estavam as bases de usu\u00e1rios tivesse dispon\u00edvel para utiliza\u00e7\u00e3o. Pouco tempo depois a LUN ficou [&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":[85,1012,1011,373,1009,1010,21,1013,1008,33],"class_list":["post-2534","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-alter-database","tag-base-corrompida","tag-checkdb","tag-corrupcao-de-dados","tag-database-offline","tag-database-pendente-recovery","tag-database-suspect","tag-emergency-mode","tag-lun","tag-sql-server"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":942,"url":"https:\/\/fabriciolima.net\/blog\/2011\/08\/15\/casos-do-dia-a-dia-corrupcao-de-dados-e-database-suspect\/","url_meta":{"origin":2534,"position":0},"title":"Casos do Dia a Dia: Corrup\u00e7\u00e3o de Dados e Database Suspect","author":"Fabr\u00edcio Lima","date":"15 de agosto de 2011","format":false,"excerpt":"Fala Pessoal, Gostaria de fazer deste post como se fosse uma thread de um f\u00f3rum com uma discus\u00e3o sobre alta disponibilidade no SQL Server. S\u00e1bado, dia 13\/08 eu tive um problema em uma database que deixa qualquer DBA com o cora\u00e7\u00e3o disparado(DBA n\u00e3o pode ter problema card\u00edaco!!!). Uma database de\u2026","rel":"","context":"Em &quot;Casos do Dia a Dia&quot;","block_context":{"text":"Casos do Dia a Dia","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/casos-do-dia-a-dia\/"},"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":2534,"position":1},"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":77,"url":"https:\/\/fabriciolima.net\/blog\/2010\/10\/08\/casos-do-dia-a-dia-database-em-modo-suspect\/","url_meta":{"origin":2534,"position":2},"title":"Casos do Dia a Dia: Database em modo Suspect","author":"Fabr\u00edcio Lima","date":"8 de outubro de 2010","format":false,"excerpt":"Gostaria de compartilhar com voc\u00eas uma experi\u00eancia que tive no ambiente de banco de dados que administro. Realizando um boot em um dos meus servidores SQL Server devido as atualiza\u00e7\u00f5es de seguran\u00e7a do windows, uma de minhas databases subiu em modo Suspect. Como essa database \u00e9 restaurada diariamente do servidor\u2026","rel":"","context":"Em &quot;Casos do Dia a Dia&quot;","block_context":{"text":"Casos do Dia a Dia","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/casos-do-dia-a-dia\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":959,"url":"https:\/\/fabriciolima.net\/blog\/2011\/09\/07\/querys-do-dia-a-dia-monitoramento-do-status-das-databases-e-de-paginas-corrompidas\/","url_meta":{"origin":2534,"position":3},"title":"Querys do Dia a Dia: Monitoramento do Status das Databases e de P\u00e1ginas Corrompidas","author":"Fabr\u00edcio Lima","date":"7 de setembro de 2011","format":false,"excerpt":"Fala Pessoal, Depois de ter algumas p\u00e1ginas corrompidas e uma database em modo Suspect (Casos do Dia a Dia: Corrup\u00e7\u00e3o de Dados e Database Suspect), resolvi criar uma procedure que realiza um monitoramento desse tipo de problema a cada\u00a01 minuto e me envia um e-mail e um torpedo em caso\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":3525,"url":"https:\/\/fabriciolima.net\/blog\/2015\/09\/10\/casos-do-dia-a-dia-servidor-sem-espaco-em-disco-e-sql-server-parado\/","url_meta":{"origin":2534,"position":4},"title":"Casos do Dia a Dia: Servidor sem espa\u00e7o em disco e SQL Server parado","author":"Fabr\u00edcio Lima","date":"10 de setembro de 2015","format":false,"excerpt":"Ol\u00e1 Pessoal, Ap\u00f3s muito tempo sem postar minhas experi\u00eancias do dia a dia, vou compartilhar com voc\u00eas mais um caso que aconteceu comigo durante uma consultoria. Cen\u00e1rio: O servidor de banco de dados de um cliente estava com a letra \"C:\"\u00a0com ZERO de espa\u00e7o em disco dispon\u00edvel e com o\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\/09\/TesteMovimentacaoBase.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":7206,"url":"https:\/\/fabriciolima.net\/blog\/2017\/01\/19\/alerta-monitorando-o-status-das-bases-de-dados-no-sql-server\/","url_meta":{"origin":2534,"position":5},"title":"Alerta: Monitorando o Status das Bases de Dados no SQL Server","author":"Fabr\u00edcio Lima","date":"19 de janeiro de 2017","format":false,"excerpt":"Ol\u00e1 Pessoal, Hoje vou compartilhar com voc\u00eas o script de cria\u00e7\u00e3o de mais um alerta para nos ajudar na Administra\u00e7\u00e3o do nosso SQL Server. Esse alerta \u00e9 um pouco mais simples. Ele vai monitorar o Status das nossas bases de dados. Caso alguma base fique com o Status diferente de\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\/2017\/01\/AlertaBaseONLINE.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/2534","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=2534"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/2534\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=2534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=2534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=2534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}