{"id":41,"date":"2006-07-24T22:34:39","date_gmt":"2006-07-24T20:34:39","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/2006\/07\/24\/sql-talk\/db-defekte\/vorgehen-bei-datenbank-reparaturen-teil-1\/"},"modified":"2006-07-25T15:37:53","modified_gmt":"2006-07-25T13:37:53","slug":"vorgehen-bei-datenbank-reparaturen-teil-1","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2006\/07\/24\/sql-talk\/db-defekte\/vorgehen-bei-datenbank-reparaturen-teil-1","title":{"rendered":"Vorgehen bei Datenbank-Reparaturen (Teil 1)"},"content":{"rendered":"<p>Wir haben an &quot;schlechten&quot; Tagen t&#228;glich mit Datenbank-Defekten unseren Kunden zu tun, was sicher auch damit zu tun hat, dass wir diese Reparaturen bis vor kurzem meistens kostenfrei durchf&#252;hrten. F&#252;r den Microsoft SQL Server 2000 m&#246;chte ich ein paar Tipps geben, die ich immer wieder gerne versuche, wenn sich herausstellen sollte, dass die einfachen Mittel (dbcc checkdb) nicht mehr helfen&#8230;. <\/p>\n<p>Im ersten Teil geht es um Probleme, <strong>wenn die Datenbank nicht angeh&#228;ngt werden kann<\/strong>.  <\/p>\n<p>Wie kann das passieren?<br \/>\nDer Kunde meldet sich bei der Hotline und beklagt, dass die Datenbank defekt ist. Dann f&#252;hren die Jungs und M&#228;dels ein paar Standard-Dinge durch. Manchmal kommen sie zu dem Schluss, dass man vor Ort einfach nichts mehr machen kann und holen die Daten in die Firma. Um sie dann im Hause untersuchen zu k&#246;nnen, muss man die Datenbank erst mal an einen SQL-Server anh&#228;ngen. Wenn das mit Bordmitteln nicht mehr geht, dann ist das ein ganz schlechtes Zeichen. Aber meist kann man da noch etwas machen. Das Anh&#228;ngen geht meistens dann noch &#252;ber einen Dummy:<\/p>\n<ol>\n<li>Ich lege eine neue leere Datenbank irgendwo an. Die Datenbank muss mit so vielen Dateien angelegt werden, wie das anzuh&#228;ngende Original. Um es einfacher zu haben, liegen bei mir dann immer alle Dateien im gleichen Verzeichnis.<\/li>\n<li>Dann stoppe ich den SQL-Server.<\/li>\n<li>L&#246;schen der Dateien der neuen leeren Datenbank.<\/li>\n<li>Die originalen Dateien der defekten Datenbank dorthin kopieren.<\/li>\n<li>SQL Server starten.<br \/>Weil die Datenbank sich nicht einfach &#246;ffnen l&#228;sst, wird sie beim Starten als suspekt markiert.<\/li>\n<li>Jetzt kann man die Datenbank in den Emergency-Mode setzen.<\/li>\n<li>Dann muss man den SQL-Server nochmals stoppen ud starten. Dabei wird f&#252;r die Datenbank kein Recovery versucht.<\/li>\n<li>Und schon kann man die eigentliche Analyse bzw. Reparatur beginnen.<\/li>\n<\/ol>\n<p>So setzt man die Datenbank beim SQL-Server-2000 in den Bypass- bzw. Emergency-Mode:<\/p>\n<p><code lang=\"sql\">exec sp_configure 'allow updates', 1<br \/>\nreconfigure with override<br \/>\nGO<br \/>\nupdate sysdatabases set status =  status | 32768 where name = &quot;myDB&quot;<br \/>\ngo<br \/>\nexec sp_configure &#x0027;allow updates&#x0027;, 0<br \/>\nreconfigure with override<\/code><\/p>\n<p>Quelle: Das habe ich aus den Books-Online. Ich finde aber gerade nicht die Stelle. Bitte nach der Reparatur nicht vergessen den Status zur&#252;ckzusetzen&#8230; \ud83d\ude09<\/p>\n<p>Beim SQL-Server-2005 ist das deutlich einfacher:<\/p>\n<p><code lang=\"sql\">alter database myDB set emergency<\/code><\/p>\n<p>Demn&#228;chst geht es weiter&#8230;<\/p>\n<p>Anbei die Links zu der Serien mit den Ursachen von Datenbank-Defekten:<\/p>\n<ul>\n<li>skurrile Gr&#252;nde im <a href=\"http:\/\/www.glorf.it\/blog\/2006\/07\/12\/sql-talk\/db-defekte\/ursachen-fur-datenbank-defekte-teil-1\/\">ersten Teil<\/a><\/li>\n<li>Probleme mit Festplatten im <a href=\"http:\/\/www.glorf.it\/blog\/2006\/07\/13\/sql-talk\/db-defekte\/ursachen-fur-datenbank-defekte-teil-2\/\">zweiten Teil<\/a><\/li>\n<li>Datenverluste durch eine defekte Datensicherung im <a href=\"http:\/\/www.glorf.it\/blog\/2006\/07\/15\/sql-talk\/db-defekte\/ursachen-fur-datenbank-defekte-teil-3\/\">dritten Teil<\/a><\/li>\n<li>systemnahe Programme, die den I\/O umbiegen, im <a href=\"http:\/\/www.glorf.it\/blog\/2006\/07\/18\/sql-talk\/db-defekte\/ursachen-fur-datenbank-defekte-teil-4\/\">viertel Teil<\/a><\/li>\n<li>defekter Hauptspeicher im f&#252;nften Teil<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Wir haben an &quot;schlechten&quot; Tagen t&#228;glich mit Datenbank-Defekten unseren Kunden zu tun, was sicher auch damit zu tun hat, dass wir diese Reparaturen bis vor kurzem meistens kostenfrei durchf&#252;hrten. F&#252;r den Microsoft SQL Server 2000 m&#246;chte ich ein paar Tipps geben, die ich immer wieder gerne versuche, wenn sich herausstellen sollte, dass die einfachen Mittel [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/41"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":0,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}