{"id":3525,"date":"2015-09-10T15:32:29","date_gmt":"2015-09-10T17:32:29","guid":{"rendered":"http:\/\/www.fabriciolima.net\/blog\/?p=3525"},"modified":"2016-07-23T22:27:33","modified_gmt":"2016-07-24T01:27:33","slug":"casos-do-dia-a-dia-servidor-sem-espaco-em-disco-e-sql-server-parado","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2015\/09\/10\/casos-do-dia-a-dia-servidor-sem-espaco-em-disco-e-sql-server-parado\/","title":{"rendered":"Casos do Dia a Dia: Servidor sem espa\u00e7o em disco e SQL Server parado"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>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.<\/p>\n<p><strong>Cen\u00e1rio:<\/strong> O servidor de banco de dados de um cliente estava com a letra &#8220;<strong>C:&#8221;<\/strong>\u00a0com ZERO de espa\u00e7o em disco dispon\u00edvel e com o servi\u00e7o do SQL Server parado.<\/p>\n<p>Loguei no servidor para analisar o problema e sem pensar muito j\u00e1 transferi alguns arquivos de log do SQL para outra letra desse servidor, j\u00e1 que isso\u00a0n\u00e3o causa nenhum impacto no banco e libera um pequeno espa\u00e7o.<\/p>\n<p>Esses logs ficam em:<\/p>\n<p><strong><em>&#8220;C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\Log&#8221;<\/em><\/strong><\/p>\n<p>Feito isso, liberei 150 MB, mas rapidamente esses 150 MB acabaram porque alguma aplica\u00e7\u00e3o estava enchendo um log na letra &#8220;C:&#8221;.<\/p>\n<p>Como n\u00e3o entendo da aplica\u00e7\u00e3o do cliente e s\u00f3 entendo de SQL, continuei minha an\u00e1lise da parte do SQL Server.<\/p>\n<p>Verifiquei que existiam algumas bases na letra &#8220;<strong>C:&#8221;<\/strong>.<\/p>\n<p>Como o servi\u00e7o do SQL estava parado, movi algumas bases menos cr\u00edticas para outra letra e liberei 20 GB na letra &#8220;C:&#8221; do servidor (ele tinha mais de 50 bases no SQL).<\/p>\n<p>Feito isso, o SQL subiu e as principais bases j\u00e1 estavam ONLINE. \u00a0Com as principais bases online, a aplica\u00e7\u00e3o n\u00e3o estava mais gerando erros e a letra &#8220;C:&#8221; parou de reduzir seu espa\u00e7o livre.<\/p>\n<p>Contudo, as bases que precisei mover estavam fora, pois o SQL tinha conhecimento que elas estavam em um local, mas eu alterei esse local com o servi\u00e7o parado. Dessa forma, a base subiu com o Status Recovery Pending.<\/p>\n<p>Fiz uma simula\u00e7\u00e3o desse cen\u00e1rio no meu Notebook. Segue como ficou o status da base:<\/p>\n<p><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3526\" title=\"TesteMovimentacaoBase\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase.png\" alt=\"\" width=\"494\" height=\"112\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase.png 494w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase-300x68.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase-410x93.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase-100x23.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase-275x62.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase-20x5.png 20w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>O error log do SQL mostra os erros abaixo:<\/p>\n<p>&#8220;Unable to open the physical file &#8220;C:\\Temp\\TesteMovimentacaoBase.mdf&#8221;. Operating system error 2: &#8220;2(O sistema n\u00e3o pode encontrar o arquivo especificado.)&#8221;.&#8221;<\/p>\n<p>&#8220;FileMgr::StartLogFiles: Operating system error 2(O sistema n\u00e3o pode encontrar o arquivo especificado.) occurred while creating or opening file &#8216;C:\\Temp\\TesteMovimentacaoBase_log.ldf&#8217;. Diagnose and correct the operating system error, and retry the operation.&#8221;<\/p>\n<p>Rodando essa pr\u00f3xima query, conseguimos ver onde o SQL espera que os arquivos dessa base estejam:<\/p>\n<p>select p.name, p.physical_name, p.type_desc from sys.master_files as p<br \/>\nwhere database_id = db_ID(&#8216;TesteMovimentacaoBase&#8217;)<\/p>\n<p><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3528\" title=\"TesteMovimentacaoBase2\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase2.png\" alt=\"\" width=\"606\" height=\"102\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase2.png 606w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase2-300x50.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase2-600x102.png 600w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase2-410x69.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase2-100x17.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase2-275x46.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2015\/09\/TesteMovimentacaoBase2-20x3.png 20w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><\/a><\/p>\n<p>Como eu movi esses arquivos para o caminho <strong>&#8220;C:\\Temp\\NovoCaminho\\&#8221;<\/strong>, tenho que informar isso para o SQL.<\/p>\n<p><strong>Como eu fa\u00e7o isso?<\/strong><\/p>\n<p><strong>Simples. Basta executar os comandos abaixo:<\/strong><\/p>\n<p>USE master;<br \/>\nGO<br \/>\nALTER DATABASE TesteMovimentacaoBase<br \/>\nMODIFY FILE (<br \/>\nNAME = TesteMovimentacaoBase,<br \/>\nFILENAME = &#8216;C:\\Temp\\NovoCaminho\\TesteMovimentacaoBase.mdf&#8217;);<br \/>\nGO<br \/>\nALTER DATABASE TesteMovimentacaoBase<br \/>\nMODIFY FILE (<br \/>\nNAME = TesteMovimentacaoBase_log,<br \/>\nFILENAME = &#8216;C:\\Temp\\NovoCaminho\\TesteMovimentacaoBase_log.ldf&#8217;);<\/p>\n<p><strong>O SQL retorna essa informa\u00e7\u00e3o:<\/strong><\/p>\n<p>The file &#8220;TesteMovimentacaoBase&#8221; has been modified in the system catalog. The new path will be used the next time the database is started.<br \/>\nThe file &#8220;TesteMovimentacaoBase_log&#8221; has been modified in the system catalog. The new path will be used the next time the database is started.<\/p>\n<p><strong>Ap\u00f3s executar o ALTER DATABASE, a base permanece no mesmo status de Recovery Pending.<\/strong><\/p>\n<p>Como o pr\u00f3prio SQL disse, isso s\u00f3 iria funcionar ap\u00f3s a base fosse iniciada. Resolvemos isso com o comando abaixo:<\/p>\n<p><em><strong>alter database TesteMovimentacaoBase set online<\/strong><\/em><\/p>\n<p>Pronto. Base ONLINE novamente.<\/p>\n<p>Voltando ao caso real, tive que tomar uma decis\u00e3o r\u00e1pida para liberar espa\u00e7o do servidor do cliente e como n\u00e3o sabia se poderia excluir nenhum arquivo do servidor, essa a\u00e7\u00e3o de movimenta\u00e7\u00e3o de algumas bases que nem eram as principais solucionou o problema rapidamente e o SQL j\u00e1 estava no ar em poucos minutos.<\/p>\n<p>Ap\u00f3s subir o SQL, o cliente p\u00f4de validar com calma o motivo do espa\u00e7o em disco acabar de forma t\u00e3o r\u00e1pida.<\/p>\n<p>At\u00e9 o pr\u00f3ximo caso do dia a dia.<\/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, 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 &#8220;C:&#8221;\u00a0com ZERO de espa\u00e7o em disco dispon\u00edvel e com o servi\u00e7o do SQL Server parado. [&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,1195,1190,23,1189,1192,1194,1193,1153,1196,1191,33],"class_list":["post-3525","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-recovery-pending","tag-bases-grande-sql","tag-dba","tag-espaco-em-disco-sql","tag-move-database","tag-mover-bases-de-dados","tag-mover-databases","tag-problema-sql-server","tag-recovery-pending","tag-sem-espaco-sql","tag-sql-server"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":4557,"url":"https:\/\/fabriciolima.net\/blog\/2016\/05\/17\/casos-do-dia-a-dia-alterando-o-caminho-default-dos-arquivos-mdf-e-ldf-no-sql-server\/","url_meta":{"origin":3525,"position":0},"title":"Casos do Dia a Dia: Alterando o caminho default dos arquivos .MDF e .LDF no SQL Server","author":"Fabr\u00edcio Lima","date":"17 de maio de 2016","format":false,"excerpt":"Ol\u00e1 Pessoal, Segue outra dica de uma solicita\u00e7\u00e3o que recebi de um cliente que presto Consultoria SQL Server. O SQL Server do cliente foi instalado da seguinte forma: next->next->finish (n\u00e3o fa\u00e7am isso!!!). Dessa forma, o SQL Server foi instalado na letra C: que tinha apenas 50 GB de espa\u00e7o no\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\/2016\/04\/PostCaminhoDefault.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/PostCaminhoDefault.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/PostCaminhoDefault.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2102,"url":"https:\/\/fabriciolima.net\/blog\/2013\/03\/01\/casos-do-dia-a-dia-o-tamanho-do-arquivo-de-uma-base-snapshot-pode-te-enganar\/","url_meta":{"origin":3525,"position":1},"title":"Casos do Dia a Dia: O tamanho do arquivo de uma base Snapshot pode te enganar!","author":"Fabr\u00edcio Lima","date":"1 de mar\u00e7o de 2013","format":false,"excerpt":"Ol\u00e1 Pessoal, Esse \u00e9 um post bem r\u00e1pido para registrar um acontecimento que aconteceu no meu dia a dia. O pessoal de desenvolvimento criou uma base Snapshot no servidor de testes e quando vimos o tamanho da Base em disco nos assustamos (133 GB????): N\u00e3o usamos muito Snapshot na empresa,\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\/2013\/02\/BaseSnapshotTotal.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/02\/BaseSnapshotTotal.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/02\/BaseSnapshotTotal.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2792,"url":"https:\/\/fabriciolima.net\/blog\/2014\/02\/24\/casos-do-dia-a-dia-nova-mensagem-no-log-do-sql-server-2012\/","url_meta":{"origin":3525,"position":2},"title":"Casos do Dia a Dia: Nova mensagem no Log do SQL Server 2012","author":"Fabr\u00edcio Lima","date":"24 de fevereiro de 2014","format":false,"excerpt":"Ol\u00e1 Pessoal, Todos voc\u00eas acompanham de perto o Log do SQL Server, certo? Espero que sim. Em um cliente da minha Consultoria SQL Server onde realizo um acompanhamento mensal da base de dados dele, verifiquei que uma mensagem diferente passou a aparecer no arquivo de Log do SQL Server. Segue\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\/02\/ErrorLogIO.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":942,"url":"https:\/\/fabriciolima.net\/blog\/2011\/08\/15\/casos-do-dia-a-dia-corrupcao-de-dados-e-database-suspect\/","url_meta":{"origin":3525,"position":3},"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":1352,"url":"https:\/\/fabriciolima.net\/blog\/2012\/03\/21\/simulado-para-a-prova-70-432-%e2%80%93-parte-9\/","url_meta":{"origin":3525,"position":4},"title":"Simulado para a prova 70-432 \u2013 Parte 9","author":"Fabr\u00edcio Lima","date":"21 de mar\u00e7o de 2012","format":false,"excerpt":"Fala Pessoal, Segue mais um simulado com 5 quest\u00f5es para a Prova 70-432 - Microsoft SQL Server 2008 - Implementation and Maintenance. \u00a0 1) Voc\u00ea decidiu implementar a solu\u00e7\u00e3o de Log Shipping em uma de suas databases. Para garantir que essa solu\u00e7\u00e3o n\u00e3o vai parar, voc\u00ea n\u00e3o pode permitir que\u2026","rel":"","context":"Em &quot;Certifica\u00e7\u00e3o SQL Server&quot;","block_context":{"text":"Certifica\u00e7\u00e3o SQL Server","link":"https:\/\/fabriciolima.net\/blog\/category\/certificacao-2\/certificacao\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2057,"url":"https:\/\/fabriciolima.net\/blog\/2013\/01\/28\/casos-do-dia-a-dia-problema-ao-executar-o-comando-shrinkfile\/","url_meta":{"origin":3525,"position":5},"title":"Casos do Dia a Dia: Problema ao executar o comando SHRINKFILE","author":"Fabr\u00edcio Lima","date":"28 de janeiro de 2013","format":false,"excerpt":"Fala pessoal, Antes que encham o post de coment\u00e1rios sobre a utiliza\u00e7\u00e3o do shrink, j\u00e1 informo que ele \u00e9 utilizado para nosso servidor de desenvolvimento devido a problemas de espa\u00e7o em disco. Ao executar o comando abaixo em uma database que acabou de ser restaurada em um SQL Server 2008\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":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/01\/Erro_Shrink.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/01\/Erro_Shrink.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/01\/Erro_Shrink.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/01\/Erro_Shrink.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/3525","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=3525"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/3525\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=3525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=3525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=3525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}