{"id":77,"date":"2010-10-08T23:36:54","date_gmt":"2010-10-09T02:36:54","guid":{"rendered":"http:\/\/fabriciodba.wordpress.com\/?p=77"},"modified":"2016-07-23T13:20:07","modified_gmt":"2016-07-23T16:20:07","slug":"casos-do-dia-a-dia-database-em-modo-suspect","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2010\/10\/08\/casos-do-dia-a-dia-database-em-modo-suspect\/","title":{"rendered":"Casos do Dia a Dia: Database em modo Suspect"},"content":{"rendered":"<p>Fala Pessoal,<\/p>\n<p>Gostaria de compartilhar com voc\u00eas uma experi\u00eancia que tive no ambiente de banco de dados que administro. Realizando um <em>boot<\/em> em um dos meus servidores SQL Server devido as atualiza\u00e7\u00f5es de seguran\u00e7a do windows, uma de minhas databases subiu em modo <em>Suspect<\/em>. Como essa database \u00e9 restaurada diariamente do servidor de produ\u00e7\u00e3o para esse servidor D-1 e \u00e9 utilizada por poucos relat\u00f3rios, tive tempo de pesquisar se havia algum modo de recuper\u00e1-la sem precisar voltar um backup da mesma.<\/p>\n<p>Mas Fabr\u00edcio, como vou saber se alguma de minhas databases est\u00e1 em modo Suspect?<\/p>\n<p>R: Al\u00e9m de ser poss\u00edvel visualizar no pr\u00f3prio Object Explore do Management Studio, rodando a query abaixo tamb\u00e9m podemos verificar se existe alguma database suspect em nosso ambiente:<\/p>\n<p>SELECT NAME,STATE_DESC FROM SYS.DATABASES<br \/>\nWHERE STATE_DESC=&#8217;SUSPECT&#8217;<\/p>\n<p>Ap\u00f3s algumas buscas, encontrei o seguinte artigo onde \u00e9 ensinado um passo a passo de como voltar uma database em modo suspect: <a title=\"http:\/\/www.mytechmantra.com\/LearnSQLServer\/Repair_Suspect_Database_P1.html\" href=\"http:\/\/www.mytechmantra.com\/LearnSQLServer\/Repair_Suspect_Database_P1.html\" target=\"_blank\">How to repair a Suspect Database in SQL Server<\/a>.<\/p>\n<p>Esse artigo identifica 5 poss\u00edveis motivos para uma database ficar como Suspect, s\u00e3o eles:<\/p>\n<p>1. Database could have been corrupted.<\/p>\n<p>2. There is not enough space available for the SQL Server to recover the database during startup.<\/p>\n<p>3. Database cannot be opened due to inaccessible files or insufficient memory or disk space.<\/p>\n<p>4. Database files are being held by operating system, third party backup software etc.<\/p>\n<p>5. Unexpected SQL Server Shutdown<\/p>\n<p>Tudo indica que comigo aconteceu o problema de n\u00famero 5. E para resolve-lo, apenas segui o passo a passo desse artigo.<\/p>\n<p>Com a database em estado suspect, n\u00e3o era poss\u00edvel verificar as propriedades e enchergar as tabelas dessa database no Object Explore do Management Studio, o que j\u00e1 deixa os usu\u00e1rios da database bem desesperados com medo de terem perdido os dados.<\/p>\n<p>Para iniciar o processo de recupera\u00e7\u00e3o, executei o comando:<\/p>\n<p>ALTER DATABASE NOME_DATABASE SET EMERGENCY<\/p>\n<p>Nesse momento minha database ja estava em modo de emergencia e j\u00e1 era poss\u00edvel acessar as tabelas. Nessa hora j\u00e1 bate um aquele al\u00edvio. UFA, minhas tabelas est\u00e3o acess\u00edveis.<\/p>\n<p>Entretanto, quando uma database est\u00e1 em modo de emergencia ela se torna READ_ONLY e o acesso fica limitado a membros da server role sysadmin. Para deixa minha database online novamente, executei o comando:<\/p>\n<p>ALTER DATABASE NOME_DATABASE SET ONLINE<\/p>\n<p>Minha database ficou totalmente acess\u00edvel e meus usu\u00e1rios puderam utiliz\u00e1-la normalmente.<\/p>\n<p>Ap\u00f3s deixar a database online, executei o comando DBCC CHECKDB para verificar se existia alguma corrup\u00e7\u00e3o nessa base. O resultado foi \u201c<em>found 0 errors and repaired 0 errors<\/em>\u201d.<\/p>\n<p>Com isso, n\u00e3o precisei restaurar um backup da minha database para poder recuper\u00e1-la. Espero que possa ajudar algu\u00e9m que passe por esse problema. Caso voc\u00ea tenha alguma experi\u00eancia com uma database Suspect, deixe um coment\u00e1rio para compartilhar sua experi\u00eancia com outras pessoas.<\/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>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 de produ\u00e7\u00e3o para esse servidor D-1 e \u00e9 utilizada por poucos relat\u00f3rios, tive tempo de pesquisar se havia algum modo de recuper\u00e1-la sem precisar voltar um backup da mesma.<\/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":""},"categories":[6,280],"tags":[85,83,21,23,84,24,86,87,49,33,38],"class_list":["post-77","post","type-post","status-publish","format-standard","hentry","category-casos-do-dia-a-dia","category-virtual-pass-br","tag-alter-database","tag-database","tag-database-suspect","tag-dba","tag-dbcc","tag-dbcc-checkdb","tag-set-emergency","tag-set-online","tag-sql","tag-sql-server","tag-suspect"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/77","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=77"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/77\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=77"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=77"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}