{"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":"","jetpack_post_was_ever_published":false},"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"],"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":77,"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":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":77,"position":1},"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":2534,"url":"https:\/\/fabriciolima.net\/blog\/2013\/12\/11\/casos-do-dia-a-dia-databases-em-modo-suspect-e-pendente-recovery\/","url_meta":{"origin":77,"position":2},"title":"Casos do Dia a Dia &#8211; Databases em modo Suspect e Pendente Recovery","author":"Fabr\u00edcio Lima","date":"11 de dezembro de 2013","format":false,"excerpt":"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\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":77,"position":3},"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":1046,"url":"https:\/\/fabriciolima.net\/blog\/2011\/11\/07\/casos-do-dia-a-dia-databases-online-e-inacessiveis-para-select\/","url_meta":{"origin":77,"position":4},"title":"Casos do Dia a Dia &#8211; Databases ONLINE e inacess\u00edveis para SELECT","author":"Fabr\u00edcio Lima","date":"7 de novembro de 2011","format":false,"excerpt":"Fala Pessoal, O tempo est\u00e1 bem curto e por isso faz tempo que n\u00e3o posto por aqui. Semana passada passei por um problema e gostaria de deixar registrado aqui para voc\u00eas. Possuo um servidor SQL Server de homologa\u00e7\u00e3o que \u00e9 virtualizado. Algumas databases menores ficam dentro do pr\u00f3prio VHD e\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":1477,"url":"https:\/\/fabriciolima.net\/blog\/2012\/05\/31\/database-mirroring-operation-mode-high-performance-parte-3\/","url_meta":{"origin":77,"position":5},"title":"Database Mirroring &#8211; Operation Mode High Performance &#8211; Parte 3","author":"Fabr\u00edcio Lima","date":"31 de maio de 2012","format":false,"excerpt":"Fala Pessoal, Neste post continuarei o teste do Operation Mode High Performance. Caso ainda n\u00e3o tenham visto os posts anteriores, sugiro que os leia antes de continuar: Database Mirroring \u2013 Operation Mode High Performance \u2013 Parte 1 Database Mirroring \u2013 Operation Mode High Performance \u2013 Parte 2 Novamente, 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\/2012\/03\/DBMirror1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2012\/03\/DBMirror1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2012\/03\/DBMirror1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2012\/03\/DBMirror1.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"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}]}}