Frage

Ich habe eine Datenbank, die wir Probleme mit haben. Irgendwie hat das Protokoll 400 Gb wird und die Datenbank wurde unbrauchbar gemacht. Ich möchte alle bestehenden Verbindungen zu der Datenbank löschen und dann die Datenbank trennen.

Im Grunde, was ich werde ist die Beseitigung der riesigen Protokolldatei erhalten tun und einen neuen erstellen und wieder anbringen, wenn es funktioniert. Wenn nicht, werden wir von Backups wiederherstellen gehen.

War es hilfreich?

Lösung 3

Also im Grunde würden keine Befehle agaisnt die Datenbank ausführen, überhaupt nicht. Was wir am Ende war dabei den Dienst ausschalten und die Schaffung von leeren Kopien der MDF- und LDF-Dateien und ersetzt die, die von SQL Server verwendet werden. Danach haben wir die Datenbank aus der letzten Sicherung und voila gestellt, es funktioniert wieder (meistens).

Andere Tipps

Wenn das Protokoll nutzlos ist, können Sie diese Befehle verwenden, aber bitte dokumentieren auf sie selbst, bevor sie auf einem Produktionsserver anwenden.

BACKUP LOG WITH NO_LOG für disgard den Seiten von log,

sp_helpdb auf der Suche nach den Namen der Dateien des db

DBCC SHRINKFILE ( 'Ihr Log-Dateiname', 0) -. Für die physische Datei der angegebenen Größe Trunking

Wenn Sie dort sicher sind, dass keine offenen Transaktionen die Datenbank im Single-User-Modus versetzt werden.

ALTER DATABASE [ihredb] SET SINGLE_USER MIT NO_WAIT

Wenn Sie es getan setzen zurück in Multi-User-Modus ALTER DATABASE [ihredb] SET MULTI_USER MIT NO_WAIT

Does

Sicherungsprotokoll ihredb mit truncate_only dann dbcc SHRINKDATABASE (ihredb) nicht das Logfile für Sie schrumpfen?

ALTER DATABASE [DB_NAME_HERE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [DB_NAME_HERE] SET MULTI_USER
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top