{"id":1046,"date":"2011-11-07T20:49:40","date_gmt":"2011-11-07T22:49:40","guid":{"rendered":"http:\/\/fabriciolima.net\/blog\/?p=1046"},"modified":"2016-07-23T23:29:28","modified_gmt":"2016-07-24T02:29:28","slug":"casos-do-dia-a-dia-databases-online-e-inacessiveis-para-select","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2011\/11\/07\/casos-do-dia-a-dia-databases-online-e-inacessiveis-para-select\/","title":{"rendered":"Casos do Dia a Dia &#8211; Databases ONLINE e inacess\u00edveis para SELECT"},"content":{"rendered":"<p>Fala Pessoal,<\/p>\n<p>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.<\/p>\n<p>Possuo um servidor SQL Server de homologa\u00e7\u00e3o que \u00e9 virtualizado. Algumas databases menores ficam dentro do pr\u00f3prio VHD e as que s\u00e3o maiores ficam em nosso Storage. Ap\u00f3s uma tentativa de expans\u00e3o do tamanho de uma unidade de disco desse servidor (c:), as databases que estavam nas unidades que s\u00e3o armazenadas no Storage ficaram inacess\u00edveis. Elas estavam com o Status ONLINE, entretanto, ao executar um SELECT era gerado um erro. As databases que estavam em um disco local no servidor (dentro do VHD) n\u00e3o tiveram esse problema.<\/p>\n<p>Ao tentar executar um DBCC CHECKDB em uma dessas databases, o erro abaixo era retornado:<\/p>\n<p>Msg 1823, Level 16, State 2, Line 1<br \/>\nA database snapshot cannot be created because it failed to start.<\/p>\n<p>Msg 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 \/>\nDBCC results for &#8216;NOME_DATABASE&#8217;. CHECKDB found 0 allocation errors and 0 consistency errors in database &#8216;NOME_DATABASE&#8217;.<\/p>\n<p>Msg 9001, Level 21, State 1, Line 1<br \/>\nThe log for database &#8216;NOME_DATABASE&#8217; is not available. Check the event log for related error messages. Resolve any errors and restart the database.<\/p>\n<p>Msg 823, Level 24, State 2, Line 1<br \/>\nThe operating system returned error 21(failed to retrieve text for this error. Reason: 1815) to SQL Server during a read at offset 0x00000000196000 in file &#8216;X:\\NOME_DATABASE_Data.mdf&#8217;. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.<\/p>\n<p>Eu n\u00e3o conseguia nem executar um detach nas databases.<\/p>\n<p>Para resolver esse problema segui os seguintes passos:<\/p>\n<p>1 &#8211; Ao tentar deixar a database offline, eu estava sendo bloqueado por outro processo. Com isso, tive que matar todas as conex\u00f5es da mesma:<\/p>\n<p>alter database database_name set single_user with rollback immediate<\/p>\n<p>2 &#8211; Ap\u00f3s a execu\u00e7\u00e3o desse comando a conex\u00e3o \u00e9 perdida. Em seguida, devem ser rodados os outros dois comandos abaixo:<\/p>\n<p>alter database database_name set offline<br \/>\nalter database database_name set online<\/p>\n<p>3 &#8211; Para finalizar, verifiquei se est\u00e1 tudo certo executando o comando a seguir:<\/p>\n<p>DBCC CHECKDB(&#8216;database_name&#8217;)<\/p>\n<p>Nenhum erro foi retornado e a database estava novamente acess\u00edvel para utiliza\u00e7\u00e3o.<\/p>\n<p>N\u00e3o sei exatamente o que aconceteu, mas acredito que a VM perdeu a conex\u00e3o com os discos do Storage temporariamente, o que causou\u00a0 uma perda de referencia do SQL Server para os arquivos de dados e logs. Se eu tivesse que voltar um restore de todas as databases desse servidor eu iria demorar aproximadamente 8 horas. Espero que possa ajud\u00e1-los.<\/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>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 as que s\u00e3o maiores ficam [&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":""},"categories":[3,6,280],"tags":[438,85,441,442,450,373,250,376,23,24,375,393,440,448,372,436,437,445,443,394,446,386,278,439,444,447,449,277],"class_list":["post-1046","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-casos-do-dia-a-dia","category-virtual-pass-br","tag-a-database-snapshot-cannot-be-created-because-it-failed-to-start","tag-alter-database","tag-attempting-to-get-exclusive-access-to-run-checks-offline","tag-checkdb-found-0-allocation-errors-and-0-consistency-errors-in-database","tag-complete-a-full-database-consistency-check","tag-corrupcao-de-dados","tag-database-corruption","tag-database-online","tag-dba","tag-dbcc-checkdb","tag-desaster-recovery","tag-desastre","tag-either-the-reason-is-given-in-a-previous-error-or-one-of-the-underlying-volumes-does-not-support-sparse-files-or-alternate-streams","tag-failed-to-retrieve-text-for-this-error-reason-1815","tag-high-availability","tag-msg-1823","tag-msg-7928","tag-msg-823","tag-msg-9001","tag-recuperacao-de-desastre","tag-resolve-any-errors-and-restart-the-database","tag-single_user-with-rollback-immediate","tag-sql-server-virtualizado","tag-the-database-snapshot-for-online-checks-could-not-be-created","tag-the-log-for-database-is-not-available","tag-the-operating-system-returned-error-21","tag-to-sql-server-during-a-read-at-offset","tag-virtualizacao"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/1046","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=1046"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/1046\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=1046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=1046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=1046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}