Freigeben über


Datenbank Trennen und Anhängen (SQL Server)

Die Daten- und Transaktionsprotokolldateien einer Datenbank können getrennt und dann erneut an dieselbe oder eine andere Instanz von SQL Server angefügt werden. Das Trennen und Anfügen einer Datenbank ist nützlich, wenn Sie die Datenbank in eine andere Instanz von SQL Server auf demselben Computer ändern oder die Datenbank verschieben möchten.

Das SQL Server-Speicherformat auf dem Datenträger ist in den 64-Bit- und 32-Bit-Umgebungen identisch. Daher funktioniert das Anfügen in 32-Bit- und 64-Bit-Umgebungen. Eine datenbank, die von einer Serverinstanz getrennt ist, die in einer Umgebung ausgeführt wird, kann auf einer Serverinstanz angefügt werden, die in einer anderen Umgebung ausgeführt wird.

Sicherheit

Dateizugriffsberechtigungen werden während einer Reihe von Datenbankvorgängen festgelegt, einschließlich des Trennens oder Anfügens einer Datenbank.

Von Bedeutung

Es wird empfohlen, Keine Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen anzufügen oder wiederherzustellen. Solche Datenbanken können schädlichen Code enthalten, der möglicherweise unbeabsichtigten Transact-SQL -Code ausführt oder Fehler verursacht, indem er das Schema oder die physische Datenbankstruktur ändert. Bevor Sie eine Datenbank aus einer unbekannten oder nicht vertrauenswürdigen Quelle verwenden, führen Sie DBCC CHECKDB auf der Datenbank auf einem Nichtproduktserver aus, und überprüfen Sie den Code, z. B. gespeicherte Prozeduren oder anderen benutzerdefinierten Code, in der Datenbank.

Trennen einer Datenbank

Durch das Trennen einer Datenbank wird sie aus der SQL Server-Instanz entfernt, die Datenbank bleibt jedoch in den Datendateien und Transaktionsprotokolldateien erhalten. Diese Dateien können dann verwendet werden, um die Datenbank an eine beliebige Instanz von SQL Server anzufügen, einschließlich des Servers, von dem die Datenbank getrennt wurde.

Sie können eine Datenbank nicht trennen, wenn eine der folgenden Werte zutrifft:

  • Die Datenbank wird repliziert und veröffentlicht. Wenn die Datenbank repliziert wird, muss die Veröffentlichung aufgehoben werden. Bevor Sie die Datenbank trennen können, müssen Sie die Veröffentlichung ausschalten, indem Sie sp_replicationdboption ausführen.

    Hinweis

    Wenn Sie sp_replicationdboption nicht verwenden können, können Sie die Replikation entfernen, indem Sie sp_removedbreplication ausführen.

  • Für die Datenbank gibt es eine Datenbankmomentaufnahme.

    Bevor Sie die Datenbank trennen können, müssen Sie alle ihre Schnappschüsse löschen. Weitere Informationen finden Sie unter Drop a Database Snapshot (Transact-SQL).

    Hinweis

    Eine Datenbankmomentaufnahme kann nicht getrennt oder angefügt werden.

  • Die Datenbank wird in einer Datenbankspiegelungssitzung gespiegelt.

    Die Datenbank kann nur getrennt werden, wenn die Sitzung beendet wird. Weitere Informationen finden Sie unter Entfernen der Datenbankspiegelung (SQL Server).

  • Die Datenbank ist verdächtig. Eine verdächtigte Datenbank kann nicht getrennt werden; bevor Sie sie trennen können, müssen Sie sie in den Notmodus versetzen. Weitere Informationen zum Einfügen einer Datenbank in den Notfallmodus finden Sie unter ALTER DATABASE (Transact-SQL).

  • Die Datenbank ist eine Systemdatenbank.

Sichern, Wiederherstellen und Trennen

Durch das Trennen einer schreibgeschützten Datenbank gehen Informationen über die differenziellen Grundlagen von Differenzsicherungen verloren. Weitere Informationen finden Sie unter Differenzielle Sicherungen (SQL Server).

Reagieren auf Abtrennfehler

Fehler, die beim Trennen einer Datenbank erzeugt wurden, können verhindern, dass die Datenbank sauber geschlossen wird und das Transaktionsprotokoll neu erstellt wird. Wenn Sie eine Fehlermeldung erhalten, führen Sie die folgenden Korrekturmaßnahmen aus:

  1. Fügen Sie alle mit der Datenbank verknüpften Dateien neu an, nicht nur die primäre Datei.

  2. Beheben Sie das Problem, das die Fehlermeldung verursacht hat.

  3. Trennen Sie die Datenbank erneut.

Anfügen einer Datenbank

Sie können eine kopierte oder getrennte SQL Server-Datenbank anfügen. Wenn Sie eine SQL Server 2014-Serverinstanz anfügen, werden die Katalogdateien zusammen mit den anderen Datenbankdateien wie in SQL Server 2005 von ihrem vorherigen Speicherort angefügt. Weitere Informationen finden Sie unter Upgrade der Volltextsuche.

Wenn Sie eine Datenbank anfügen, müssen alle Datendateien (MDF- und NDF-Dateien) verfügbar sein. Wenn eine Datendatei einen anderen Pfad hat, als die Datenbank zum ersten Mal erstellt oder zuletzt angefügt wurde, müssen Sie den aktuellen Pfad der Datei angeben.

Hinweis

Wenn die primäre Datendatei, welche angefügt wird, schreibgeschützt ist, nimmt das Datenbankmodul an, dass die Datenbank ebenfalls schreibgeschützt ist.

Wenn eine verschlüsselte Datenbank zuerst an eine Instanz von SQL Server angefügt wird, muss der Datenbankbesitzer den Hauptschlüssel der Datenbank öffnen, indem die folgende Anweisung ausgeführt wird: OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'. Es wird empfohlen, die automatische Entschlüsselung des Masterschlüssels zu aktivieren, indem Sie die folgende Anweisung ausführen: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY. Weitere Informationen finden Sie unter CREATE MASTER KEY (Transact-SQL) und ALTER MASTER KEY (Transact-SQL).

Die Anforderung zum Anfügen von Protokolldateien hängt teilweise davon ab, ob die Datenbank lesend-schreibend oder schreibgeschützt ist, wie folgt:

  • Bei einer Lese-/Schreibdatenbank können Sie in der Regel eine Protokolldatei an einem neuen Speicherort anfügen. In einigen Fällen erfordert das erneute Anziehen einer Datenbank jedoch die vorhandenen Protokolldateien. Daher ist es wichtig, alle getrennten Protokolldateien immer beizubehalten, bis die Datenbank erfolgreich angefügt wurde.

    Wenn eine Lese-/Schreibdatenbank über eine einzelne Protokolldatei verfügt und Sie keinen neuen Speicherort für die Protokolldatei angeben, sucht der Anfügungsvorgang am alten Speicherort für die Datei. Wenn sie gefunden wird, wird die alte Protokolldatei verwendet, unabhängig davon, ob die Datenbank sauber heruntergefahren wurde. Wenn die alte Protokolldatei jedoch nicht gefunden wird und die Datenbank sauber heruntergefahren wurde und keine aktive Protokollkette aufweist, versucht der Anfügungsvorgang, eine neue Protokolldatei für die Datenbank zu erstellen.

  • Wenn die angefügte primäre Datendatei schreibgeschützt ist, kann der SQL Server den in der primären Datei gespeicherten Protokollspeicherort nicht aktualisieren.

Metadatenänderungen beim Anfügen einer Datenbank

Wenn eine schreibgeschützte Datenbank entfernt und dann wieder angefügt wird, gehen die Sicherungsinformationen zur aktuellen Differenzialbasis verloren. Die differenzielle Basis ist die neueste vollständige Sicherung aller Daten in der Datenbank oder in einer Teilmenge der Dateien oder Dateigruppen der Datenbank. Ohne die Basissicherungsinformationen wird die Masterdatenbank nicht mit der schreibgeschützten Datenbank synchronisiert, sodass differenzielle Sicherungen anschließend unerwartete Ergebnisse liefern können. Wenn Sie also differenzielle Sicherungen mit einer schreibgeschützten Datenbank verwenden, sollten Sie eine neue differenzielle Basis einrichten, indem Sie nach dem erneuten Anfügen der Datenbank eine vollständige Sicherung erstellen. Informationen zu differenziellen Sicherungen finden Sie unter Differenzielle Sicherungen (SQL Server).

Beim Anfügen erfolgt der Datenbankstart. Im Allgemeinen platziert das Anfügen einer Datenbank sie in demselben Zustand, in dem sie sich befand, als sie getrennt oder kopiert wurde. Die Vorgänge zum Anfügen und Trennen deaktivieren jedoch die datenbankübergreifende Besitzverkettung für die Datenbank. Informationen zum Aktivieren der Verkettung finden Sie unter cross db ownership chaining Server Configuration Option. Außerdem wird VERTRAUENSWÜRDIG bei jedem Anfügen der Datenbank auf "AUS" festgelegt. Informationen zum Festlegen von VERTRAUENSWÜRDIG auf EIN finden Sie unter ALTER DATABASE (Transact-SQL).

Sichern und Wiederherstellen und Anfügen

Wie jede Datenbank, die vollständig oder teilweise offline ist, kann eine Datenbank mit der Wiederherstellung von Dateien nicht angefügt werden. Wenn Sie die Wiederherstellungssequenz beenden, können Sie die Datenbank anfügen. Anschließend können Sie die Wiederherstellungssequenz neu starten.

Anfügen einer Datenbank an eine andere Serverinstanz

Von Bedeutung

Eine Datenbank, die in einer neueren Version von SQL Server erstellt wurde, kann in früheren Versionen nicht angefügt werden.

Wenn Sie eine Datenbank an eine andere Serverinstanz anfügen, um Benutzern und Anwendungen eine konsistente Erfahrung zu bieten, müssen Sie möglicherweise einige oder alle Metadaten für die Datenbank, z. B. Anmeldungen und Aufträge, auf der anderen Serverinstanz neu erstellen. Weitere Informationen finden Sie unter Verwalten von Metadaten beim Bereitstellen einer Datenbank auf einer anderen Serverinstanz (SQL Server).

Verwandte Aufgaben

So trennen Sie eine Datenbank

So fügen Sie eine Datenbank an

So aktualisieren Sie eine Datenbank mithilfe von Trennen- und Anfügenvorgängen

So verschieben Sie eine Datenbank mithilfe von Trennen- und Anfügenvorgängen

So löschen Sie eine Datenbankmomentaufnahme

Siehe auch

Datenbankdateien und Dateigruppen