Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie hängt man MDF ohne Protokolldatei an?

Für Ihre Ausgangssituation scheinen Sie so etwas versucht zu haben (oder was auch immer die GUI für Sie vorbereitet, wenn Sie durch die Dialoge gehen):

CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;

Diese Methode erfordert jedoch sowohl ein mdf Datei und ein ldf Datei. Andernfalls erhalten Sie eine Fehlermeldung ähnlich der:

Jetzt gibt es eine Möglichkeit, fortzufahren, selbst wenn Sie nur das mdf haben Datei. Angenommen, Sie haben ein mdf Datei, die ordnungsgemäß von SQL Server getrennt wurde, sollten Sie die Datei mdf anhängen können Datei ohne Protokolldatei mit der folgenden Syntax:

CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;

Es scheint jedoch, dass in Ihrem Fall die Datei nicht ordnungsgemäß von SQL Server getrennt wurde:

Es gibt mehrere mögliche Erklärungen, einschließlich der in der Fehlermeldung erwähnten. Vielleicht wurde es von einem ungültigen SAN-Shadow abgerufen oder im schreibgeschützten Zustand getrennt oder nach einem Absturz von SQL Server oder dem zugrunde liegenden System wiederhergestellt oder während des Kopierens/Herunterladens beschädigt, oder wer weiß was noch.

Sie müssen sich an den Support von Yaf oder den Support des Dienstanbieters wenden, um zu sehen, ob es korrekte Sicherungen gibt verfügbar oder, falls dies nicht möglich ist, alternative Kopien des mdf Datei. Denken Sie auch daran, dass keiner von uns wirklich weiß, was Yaf ist, oder eine Möglichkeit hat, zu überprüfen, von welchem ​​Yaf Sie sprechen.

Ansonsten scheinen Sie Pech zu haben, da diese spezielle mdf Datei ist ungültig und wird Sie daher nicht sehr weit bringen.

Genau aus diesem Grund sind die Ansätze zum Trennen/Anhängen und/oder zum Kopieren von Dateien auf Betriebssystemebene keine sehr nützlichen Methoden zur Sicherung (oder Migration) für SQL Server. Sie benötigen einen geeigneten Sicherungs-/Wiederherstellungsplan, was bedeutet, dass Sie ordnungsgemäße vollständige/diff/log-Sicherungen erstellen, die Ihrer Toleranz für Datenverlust entsprechen. Und das Trennen einer Datenbank ist fast immer eine minderwertige Idee - wenn etwas mit dem mdf passiert Datei während oder nach dem Trennen haben Sie jetzt NULL Kopien Ihrer Datenbank.