Trennen und Anfügen von Datenbanken

Aktualisiert: 12. Dezember 2006

Daten- und Transaktionsprotokolldateien einer Datenbank können getrennt und anschließend derselben oder einer anderen Instanz von SQL Server angefügt werden. Das Trennen und Anfügen einer Datenbank ist hilfreich, wenn Sie die Datenbank in eine andere Instanz von SQL Server auf demselben Computer ändern oder wenn Sie die Datenbank verschieben möchten.

ms190794.note(de-de,SQL.90).gifHinweis:
Das SQL Server-Speicherformat für Datenträger stimmt in 64-Bit- und in 32-Bit-Umgebungen überein. Daher können Anfügevorgänge für 32-Bit- und 64-Bit-Umgebungen übergreifend ausgeführt werden. Eine Datenbank, die von einer in der einen Umgebung ausgeführten Serverinstanz getrennt wird, kann an eine Serverinstanz angefügt werden, die in einer anderen Umgebung ausgeführt wird.
ms190794.note(de-de,SQL.90).gifHinweis:
Informationen zu Dateiberechtigungen, die beim Trennen und Anfügen einer Datenbank festgelegt werden, finden Sie unter Sichern von Daten- und Protokolldateien.

Trennen einer Datenbank

Durch das Trennen einer Datenbank wird diese aus der Instanz von SQL Server entfernt. Die Datenbank selbst bleibt jedoch innerhalb der Daten- und Transaktionsprotokolldateien intakt. Diese Dateien können anschließend verwendet werden, um die Datenbank einer beliebigen Instanz von SQL Server anzufügen. Darin eingeschlossen ist der Server, von dem die Datenbank ursprünglich getrennt wurde.

Eine Datenbank kann in folgenden Fällen nicht getrennt werden

  • Die Datenbank ist repliziert und veröffentlicht. Wenn die Datenbank repliziert ist, muss deren Veröffentlichung aufgehoben werden. Bevor Sie die Datenbank trennen können, müssen Sie die Veröffentlichung deaktivieren, indem Sie sp_replicationdboption ausführen.
    ms190794.note(de-de,SQL.90).gifHinweis:
    Wenn Sie sp_replicationdboption nicht verwenden können, können Sie die Replikation durch Ausführen von sp_removedbreplication entfernen.
  • Ein Datenbanksnapshot ist in der Datenbank vorhanden.
    Bevor Sie die Datenbank trennen können, müssen Sie alle Snapshots löschen. Weitere Informationen finden Sie unter Vorgehensweise: Löschen eines Datenbanksnapshots (Transact-SQL).
    ms190794.note(de-de,SQL.90).gifHinweis:
    Ein Datenbanksnapshot kann nicht getrennt oder angefügt werden.
  • Die Datenbank wird in einer Datenbank-Spiegelungssitzung gespiegelt.
    Die Datenbank kann nur getrennt werden, wenn die Sitzung beendet wird. Weitere Informationen finden Sie unter Entfernen der Datenbankspiegelung.
  • Die Datenbank ist fehlerverdächtig. In SQL Server 2005 kann eine fehlerverdächtige Datenbank nicht getrennt werden. Zum Trennen müssen Sie für die Datenbank den Notfallmodus aktivieren. Weitere Informationen zum Aktivieren des Notfallmodus für eine Datenbank finden Sie unter ALTER DATABASE (Transact-SQL).
  • Bei der Datenbank handelt es sich um eine Systemdatenbank.

Durch das Trennen einer Datenbank wird der Plancache für die Instanz von SQL Server gelöscht. Durch das Löschen des Plancaches wird eine Neukompilierung aller nachfolgenden Ausführungspläne verursacht, und möglicherweise entsteht plötzlich eine temporäre Verringerung der Abfrageleistung. In SQL Server 2005 Service Pack 2 enthält das SQL Server-Fehlerprotokoll für jeden geleerten Cachespeicher im Plancache folgende Meldung zur Information: "SQL Server hat für den '%s'-Cachespeicher (Bestandteil des Plancache) %d Leerungen des Cachespeichers gefunden, die von Datenbankwartungs- oder Neukonfigurierungsvorgängen ausgelöst wurden". Diese Meldung wird alle fünf Minuten protokolliert, solange der Cache innerhalb dieses Zeitintervalls geleert wird.

So trennen Sie eine Datenbank

Sichern, Wiederherstellen und Trennen

Beim Trennen einer schreibgeschützten Datenbank gehen Informationen zu den differenziellen Basen von differenziellen Sicherungen verloren. Weitere Informationen finden Sie unter Sichern schreibgeschützter Datenbanken.

Antworten auf Fehler beim Trennen

Fehler beim Trennen einer Datenbank können verhindern, dass die Datenbank ordnungsgemäß geschlossen wird und das Transaktionsprotokoll neu erstellt wird. Führen Sie die folgenden Maßnahmen aus, falls eine Fehlermeldung angezeigt wird:

  1. Fügen Sie alle zur Datenbank gehörenden 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

Eine kopierte oder getrennte SQL Server-Datenbank kann angefügt werden. In SQL Server 2005 werden Volltextdateien, die zu einer Datenbank gehören, mit der Datenbank angefügt. Weitere Informationen finden Sie unter Anfügen und Trennen von Volltextkatalogen.

ms190794.security(de-de,SQL.90).gifSicherheitshinweis:
Es empfiehlt sich nicht, Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen anzufügen oder wiederherzustellen. Solche Datenbanken können bösartigen Code enthalten, die unbeabsichtigten Transact-SQL-Code ausführen oder Fehler verursachen können, indem das Schema oder die physikalische Datenbankstruktur geändert wird. Bevor Sie eine Datenbank einer unbekannten oder nicht vertrauenswürdigen Quelle verwenden, führen Sie in der Datenbank auf einem Nichtproduktionsserver DBCC CHECKDB aus, und überprüfen Sie auch den Code der Datenbank, wie z. B. gespeicherte Prozeduren oder anderen benutzerdefinierten Code.

Beim Anfügen wird die Datenbank gestartet. Im Allgemeinen wird die Datenbank beim Anfügen in genau demselben Status wieder verfügbar gemacht, in dem sie sich unmittelbar vor dem Trennen oder Kopieren befunden hat. In SQL Server 2005 werden durch Anfüge- und Trennvorgänge jedoch die datenbankübergreifenden Besitzketten für die Datenbank deaktiviert. Informationen zum Aktivieren der Verkettung finden Sie unter cross db ownership chaining (Option). Außerdem wird TRUSTWORTHY auf OFF festgelegt, wenn die Datenbank angefügt wird. Informationen zum Festlegen von TRUSTWORTHY auf ON finden Sie unter ALTER DATABASE (Transact-SQL).

Wenn Sie eine Datenbank anfügen, müssen alle Datendateien (MDF- und NDF-Dateien) verfügbar sein. Wenn eine Datendatei einen anderen Pfad als beim Erstellen oder beim letzten Anfügen der Datenbank aufweist, müssen Sie den aktuellen Pfad der Datei angeben.

ms190794.note(de-de,SQL.90).gifHinweis:
Wenn die angefügte primäre Datendatei schreibgeschützt ist, geht Datenbankmodul davon aus, dass auch die Datenbank schreibgeschützt ist.

Wenn eine verschlüsselte Datenbank zum ersten Mal an eine neue Instanz von SQL Server angefügt wird, muss der Datenbankbesitzer den Masterschlüssel der Datenbank öffnen, indem er die folgende Anweisung ausführt: OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'. Es empfiehlt sich, die automatische Entschlüsselung des Masterschlüssels zu aktivieren, indem folgende Anweisung ausgeführt wird: 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 Anforderungen für das Anfügen von Protokolldateien hängen wie im Folgenden beschrieben teilweise davon ab, ob die Datenbank Lese-/Schreibzugriff aufweist oder schreibgeschützt ist:

  • Für eine Datenbank mit Lese-/Schreibzugriff können Sie gewöhnlich eine Protokolldatei in einem neuen Speicherort anfügen. In manchen Fällen sind zum erneuten Anfügen der Datenbank jedoch die vorhandenen Protokolldateien erforderlich. Bewahren Sie daher unbedingt immer alle getrennten Protokolldateien auf, bis die Datenbank erfolgreich ohne sie angefügt wurde.
    Wenn eine Datenbank mit Lese-/Schreibzugriff eine einzige Protokolldatei aufweist und Sie keinen neuen Speicherort für die Protokolldatei angeben, wird beim Anfügen im alten Speicherort nach der Datei gesucht. Wenn sie gefunden wird, wird die alte Protokolldatei verwendet, unabhängig davon, ob die Datenbank ordnungsgemäß heruntergefahren wurde. Wenn allerdings die alte Protokolldatei nicht gefunden wird und die Datenbank ordnungsgemäß heruntergefahren wurde und keine aktive Protokollkette aufweist, wird beim Anfügen versucht, eine neue Protokolldatei für die Datenbank zu erstellen. Weitere Informationen finden Sie unter Grundlegendes zur Architektur des Transaktionsprotokolls.
  • Wenn die angefügte primäre Datendatei schreibgeschützt ist, geht Datenbankmodul davon aus, dass auch die Datenbank schreibgeschützt ist. Für eine schreibgeschützte Datenbank müssen die Protokolldateien in dem Speicherort vorhanden sein, der in der primären Datei der Datenbank angegeben ist. Eine neue Protokolldatei kann nicht erstellt werden, weil SQL Server den in der primären Datei gespeicherten Protokollspeicherort nicht aktualisieren kann.
    ms190794.note(de-de,SQL.90).gifWichtig:
    Wenn eine schreibgeschützte Datenbank getrennt und dann erneut angefügt wird, gehen die Informationen zur differenziellen Basis verloren. Dadurch ist die master-Datenbank nicht mehr mit der schreibgeschützten Datenbank synchronisiert. Differenzielle Sicherungen, die anschließend erstellt werden, können zu unerwarteten Ergebnissen führen. Wenn Sie deshalb differenzielle Sicherungen für eine schreibgeschützte Datenbank verwenden, sollten Sie nach dem erneuten Anfügen der Datenbank eine aktuelle differenzielle Basis einrichten, indem Sie eine vollständige Sicherung erstellen.

Sichern, Wiederherstellen und Anfügen

Eine Datenbank mit Wiederherstellungsdateien kann ebenso wie eine Datenbank, die vollständig oder teilweise offline ist, nicht angefügt werden. Sie können die Datenbank anfügen, wenn Sie die Wiederherstellungssequenz beenden. Sie können die Wiederherstellungssequenz anschließend erneut starten.

Anfügen einer Datenbank an eine andere Serverinstanz

Wenn Sie eine Datenbank an eine andere Serverinstanz anfügen, müssen Sie möglicherweise einen Teil oder auch alle Metadaten für die Datenbank, wie Anmeldenamen und Aufträge, auf der anderen Serverinstanz erneut erstellen, um Benutzern und Anwendungen ein konsistentes Verhalten zu bieten. Weitere Informationen finden Sie unter Verwalten von Metadaten beim Bereitstellen einer Datenbank auf einer anderen Serverinstanz.

ms190794.note(de-de,SQL.90).gifHinweis:
Eine Datenbank, die in einer neueren Version von SQL Server erstellt wurde, kann in früheren Versionen nicht angefügt werden.
ms190794.note(de-de,SQL.90).gifHinweis:
Anfügevorgänge können mit dem vardecimal-Speicherformat wie vorgesehen ausgeführt werden. Jedes Datenbankmodul muss jedoch auf mindestens SQL Server 2005 Service Pack 2 aktualisiert werden, und für alle zugehörigen Datenbanken muss das vardecimal-Speicherformat aktiviert werden. Beispielsweise können Sie keine Service Pack 2-Datenbank, für die das vardecimal-Speicherformat aktiviert ist, an eine frühere Version von SQL Server anfügen. Weitere Informationen zum vardecimal-Speicherformat finden Sie unter Speichern von Dezimaldaten als Daten variabler Länge.

So fügen Sie eine Datenbank an

So aktualisieren Sie eine Datenbank von einer früheren Version von SQL Server

In SQL Server 2005 können Sie eine Benutzerdatenbank von SQL Server 7.0 oder SQL Server 2000 durch Trennen und Anfügen aktualisieren. Es gelten dabei jedoch folgende Einschränkungen:

  • Kopien der Datenbanken master, model oder msdb, die mit SQL Server 7.0 oder SQL Server 2000 erstellt wurden, können in SQL Server 2005 nicht angefügt werden.
  • Protokolldateien aus SQL Server 7.0 mit Vorgängen zur Indexerstellung können in SQL Server 2000 oder SQL Server 2005 nicht angefügt werden.
  • Wenn Sie eine replizierte Datenbank anfügen, die nicht getrennt, sondern kopiert wurde, gilt Folgendes:
    • Wenn Sie die Datenbank an eine aktualisierte Version der gleichen Serverinstanz anfügen, müssen Sie sp_vupgrade_replication ausführen, um die Replikation zu aktualisieren, nachdem der Anfügevorgang abgeschlossen wurde. Weitere Informationen finden Sie unter sp_vupgrade_replication (Transact-SQL).
    • Wenn Sie die Datenbank an eine andere Serverinstanz unabhängig von der Version anfügen, müssen Sie sp_removedbreplication ausführen, um die Replikation zu entfernen, nachdem der Anfügevorgang abgeschlossen wurde. Weitere Informationen finden Sie unter sp_removedbreplication (Transact-SQL).

So aktualisieren Sie eine Datenbank durch Trennen und Anfügen

Verschieben einer Datenbank oder Datenbankdatei

ms190794.note(de-de,SQL.90).gifWichtig:
Es wird empfohlen, Datenbanken mit der ALTER DATABASE-Prozedur für geplante Verschiebungen zu verschieben, anstatt Trenn- und Anfügevorgänge zu verwenden. Weitere Informationen finden Sie unter Verschieben von Datenbankdateien.

Gewöhnlich kann eine Datenbank durch Trennen und Anfügen verschoben werden. Eine Datenbank wird in der Regel an einen der folgenden Speicherorte verschoben:

  • Auf einen anderen physikalischen Datenträger auf demselben Computer. Dies kann erforderlich sein, wenn der Speicherplatz des Datenträgers, auf dem sich eine Datendatei befindet, vollständig belegt ist und Sie die vorhandene Datei erweitern möchten (anstatt die Datenbank durch Hinzufügen einer neuen Datei auf einem anderen Datenträger zu erweitern).
  • Auf einen anderen Computer, ohne die Datenbank neu erstellen und von einer Datenbanksicherung wiederherstellen zu müssen.

Das Verschieben einer Datenbank durch Trennen und Anfügen umfasst folgende Phasen:

  1. Trennen der Datenbank.
  2. Verschieben der Datenbankdateien auf den anderen Server oder Datenträger.
  3. Anfügen der Datenbank, indem Sie den neuen Speicherort der verschobenen Datei(en) angeben.

So verschieben Sie eine Datenbank durch Trennen und Anfügen

Siehe auch

Konzepte

Trennen und Anfügen von Datenbanken
Sichern von Daten- und Protokolldateien
Grundlegendes zu Dateien und Dateigruppen

Andere Ressourcen

CREATE DATABASE (Transact-SQL)
sp_detach_db (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Neuer Inhalt:
  • Es wurde ein Hinweis dazu hinzugefügt, dass das SQL Server-Speicherformat für Datenträger in 64-Bit- und 32-Bit-Umgebungen übereinstimmt.
  • Im Abschnitt "Anfügen einer Datenbank an eine andere Serverinstanz" wurde ein Hinweis hinzugefügt.
  • Es wurde ein Hinweis für das vardecimal-Speicherformat hinzugefügt.

17. Juli 2006

Neuer Inhalt:
  • Der Abschnitt "Trennen einer Datenbank" wurde mit Informationen zum Löschen des Plancaches ergänzt.

17. Juli 2006

Neuer Inhalt:
  • Die Einschränkung, dass Systemdatenbanken nicht getrennt werden dürfen, wurde hinzugefügt.
  • Der Abschnitt "Sichern, Wiederherstellen und Trennen" wurde hinzugefügt.
  • Der Abschnitt "Sichern, Wiederherstellen und Anfügen" wurde hinzugefügt.

05. Dezember 2005

Neuer Inhalt:
  • Ein Sicherheitshinweis wurde hinzugefügt.