Gründe und Vorgehensweise
Wer mit Datenbanken im MS SQL-Server arbeitet, kennt dieses Problem bestimmt. Nach einem unerwarteten Ereignis kann eine Datenbank nicht mehr erreicht werden und wird als fehlerverdächtig gekennzeichnet. Die Gründe hierfür können vielfältig sein:
- Die Datenbank ist beschädigt (wird als "Korrupt" gekennzeichnet).
- Es ist nicht genügend Speicherplatz für den SQL-Server vorhanden, um die Datenbank beim Start wiederherstellen.
- Die Datenbank kann aufgrund defekter Dateien nicht genügend Arbeitsspeicher oder Festplattenplatz geöffnet werden.
- Die Datenbank-Dateien werden vom Betriebssystem, einer Backup-Software von Drittanbietern etc. gesperrt.
- Ein ungeplantes Beenden des SQL-Server Dienstes, ein Stromausfall oder ein Hardware-Fehler.
- Öffnen Sie Microsoft SQL-Server Management Studio.
- Stellen Sie eine Verbindung zu der betroffenen SQL-Server Instanz her
- Öffnen Sie eine neue Abfrage
- Kopieren Sie das folgende Script in die Abfrage und ersetzen
„[defekte Datenbank]“ mit dem Namen Ihrer als defekt gekennzeichnet
Datenbank.
GO
/***********************************************************************************************************
Suche den korrekten DB-Namen, welche als Fehlerhaft gekennzeichnet ist
***********************************************************************************************************/
SELECT DBName=NAME, [Status]=state_desc
FROM master.sys.databases
WHERE state_desc='SUSPECT'
/***********************************************************************************************************
Jetzt tausche [DATABASENAME] gegen den Namen aus dem Ergebis aus und repariere die Datenbank
- Db in Notfallmodus setzen
- Db in den Einzelnutzermodus setzen
- DB Reparatur ausführen. ACHTUNG: Kann zu Datenverlust führen
***********************************************************************************************************/
ALTER DATABASE [DATABASENAME] SET EMERGENCY
GO
ALTER DATABASE [DATABASENAME] SET SINGLE_USER
GO
DBCC CHECKDB ([DATABASENAME], REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;
GO
/***********************************************************************************************************
Anschließend wird nochmals eine Prüfung der Datenbank durchgeführt:
-Wie oben, [DATABASENAME] ersetzen
***********************************************************************************************************/
USE [DATABASENAME]
GO
DBCC CHECKDB WITH NO_INFOMSGS;
GO
/***********************************************************************************************************
Wenn die Prüfung eine fehlerfreie Db ergibt, dann noch von Einzelbenutzer auf Multi-User umstellen
-Wie oben, [DATABASENAME] ersetzen
***********************************************************************************************************/
USE master;
GO
ALTER DATABASE [DATABASENAME] SET MULTI_USER
GO
/***********************************************************************************************************
Anschließend sollte umgehend eine Sicherung der reparierten Datenbank erfolgen.
***********************************************************************************************************/
- Führen Sie die Abfrage aus [vc_single_image image="10521" img_size="full"]
Kostenlose Produkt-Demo vereinbaren
Wählen Sie Ihre gewünschte Option aus und vereinbaren Sie ein unverbindliches und kostenfreies Gespräch mit unserem Geschäftsführer Jochen Brühl.
Wir gehen auf Ihre Fragen ein und sorgen dafür, dass Sie unsere Software genau kennenlernen. Gerne zeigen wir Ihnen den Lösungsweg zu Ihren individuellen Anforderungen. Im Anschluss präsentieren wir Ihnen auf Wunsch das Leistungsspektrum unserer Software, live und direkt, per Web-Session oder persönlich bei Ihnen vor Ort.