Verschieben von Datenbanken zwischen Computern mit SQL Server

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 314546 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
314546 How to move databases between computers that are running SQL Server
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt Schritt für Schritt, wie Sie Microsoft SQL Server-Benutzerdatenbanken sowie die häufigsten SQL Server-Komponenten zwischen Computern verschieben, auf denen SQL Server ausgeführt wird.

Die in diesem Artikel beschriebenen Schritte setzen voraus, dass Sie nicht die master-, model-, tempdb- oder msdb-Systemdatenbanken verschieben. Die Schritte zeigen Ihnen unterschiedliche Möglichkeiten auf, wie Sie Benutzernamen und die häufigsten Komponenten, die in den master- und msdb-Datenbanken enthalten sind, übertragen können.

Informationen zu den bestimmten Elementen, die nicht übertragen werden, wenn Sie die in diesem Artikel beschriebenen Schritte durchführen, finden Sie im Abschnitt "Weitere Informationen" in diesem Artikel.

Hinweis: Die Datenmigration von SQL Server 2000 an Microsoft SQL Server 2000 (64-Bit) wird unterstützt. Sie können eine 32-Bit-Datenbank an eine 64-Bit-Datenbank anhängen, indem Sie die gespeicherte Systemprozedur sp_attach_db oder die gespeicherte Systemprozedur sp_attach_single_file_db verwenden, oder indem Sie die Funktionen Sichern und Wiederherstellen im 32-Bit-Enterprise Manager verwenden. Sie können Datenbanken zwischen den 32-Bit- und den 64-Bit-Versionen von SQL Server hin und her verschieben. Sie können mithilfe der gleichen Methoden auch Daten von SQL Server 7.0 migrieren. Das Herunterstufen von Daten von SQL Server 2000 (64-Bit) auf SQL Server 7.0 wird hingegen nicht unterstützt. Es folgt eine Beschreibung jeder einzelnen Methode.

Wenn Sie SQL Server 2005 verwenden

Sie können die gleiche Methode wie für SQL Server 7.0 oder SQL Server 2000 verwenden, um Daten zu migrieren. Das Verwaltungstool von Microsoft SQL Server 2005 unterscheidet sich aber von dem in SQL Server 7.0 oder in SQL Server 2000. Sie sollten SQL Server Management Studio statt des SQL Server Enterprise Manager verwenden, den SQL Server Import- und Export-Assistenten (DTSWizard.exe) statt des Assistenten zum Importieren und Exportieren von Daten der Data Transformation Services

Sichern und wiederherstellen

Sichern Sie die Benutzerdatenbanken auf dem Quellserver, und stellen Sie die Benutzerdatenbanken anschließend auf dem Zielserver wieder her.
  • Die Datenbank kann während des Sicherungsvorgangs verwendet werden. Wenn Benutzer nach Beendigung der Sicherung INSERT-, UPDATE- oder DELETE-Anweisungen an der Datenbank durchführen, sind diese Änderungen nicht in der Sicherung der Datenbank enthalten. Wenn Sie alle Änderungen übertragen müssen, können Sie die Änderungen mit einer minimalen Ausfallzeit übertragen, sofern Sie sowohl eine Sicherungskopie des Transaktionsprotokolls als auch eine vollständige Sicherung der Datenbank durchführen.
    1. Stellen Sie die vollständige Sicherung der Datenbank auf dem Zielserver wieder her, und geben Sie die Option WITH NORECOVERY an.

      Hinweis: Weisen Sie Benutzer an, keine Aktivitäten mehr an der Datenbank auf dem Quellserver auszuführen, um weitere Änderungen an der Datenbank zu verhindern.
    2. Führen Sie eine Sicherungskopie des Transaktionsprotokolls durch und stellen Sie die Sicherungskopie des Transaktionsprotokolls auf dem Zielserver wieder her, indem Sie die Option WITH RECOVERY verwenden. Die Ausfallzeit ist auf die Dauer der Sicherungskopie des Transaktionsprotokolls und der Wiederherstellung beschränkt. Weitere Informationen finden Sie unter dem Thema "Transact-SQL-Referenz" unter dem Unterthema "RESTORE" in der Onlinedokumentation zu SQL Server.
  • Die Datenbank auf dem Zielserver hat die gleiche Größe wie die Datenbank auf dem Quellserver. Wenn Sie die Datenbank verkleinern möchten, müssen Sie entweder die Quelldatenbank vor der Durchführung der Sicherung verkleinern oder die Größe der Zieldatenbank reduzieren, nachdem der Wiederherstellungsprozess abgeschlossen ist. Weitere Informationen finden Sie unter der Überschrift "Erstellen und Warten von Datenbanken" unter dem Unterthema "Verkleinern einer Datenbank" in der Onlinedokumentation zu SQL Server.
  • Wenn Sie die Datenbank an einem anderen Dateispeicherort wiederherstellen als an dem der Quelldatenbank, müssen Sie die Option WITH MOVE angeben. Auf dem Quellserver befindet sich die Datenbank beispielsweise im Ordner "D:\Mssql\Data". Der Zielserver verfügt über kein Laufwerk D, und Sie möchten die Datenbank im Ordner "C:\Mssql\Data" wiederherstellen. Weitere Informationen dazu, wie Sie eine Datenbank an einem anderen Speicherort wiederherstellen, finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
    221465 INF: des WITH verwenden VERSCHIEBEN Option mit der Wiederherstellungsanweisung
    304692 INFO: Verschieben von SQL Server 7.0-Datenbanken auf einen neuen Server mit BACKUP und RESTORE
  • Wenn Sie eine bereits vorhandene Datenbank auf dem Zielserver überschreiben möchten, müssen Sie die Option WITH REPLACE angeben. Weitere Informationen finden Sie unter dem Thema "Transact-SQL-Referenz" unter dem Unterthema "RESTORE" in der Onlinedokumentation zu SQL Server.
  • Je nachdem, in welcher SQL Server-Version Sie die Datenbank wiederherstellen möchten, müssen der Zeichensatz, die Sortierreihenfolge und die Unicode-Sortierung des Quellservers möglicherweise mit denen des Zielservers übereinstimmen. Weitere Informationen finden Sie im Abschnitt "Anmerkungen zur Sortierung" in diesem Artikel.

Verwenden der gespeicherten Prozeduren Sp_detach_db und Sp_attach_db

Gehen Sie folgendermaßen vor, wenn Sie die gespeicherten Prozeduren sp_detach_db und sp_attach_db verwenden möchten:
  1. Geben Sie die Datenbank auf dem Quellserver mithilfe der gespeicherten Prozedur sp_detach_db frei. Sie müssen die Dateien .mdf, .ndf und .ldf, die der Datenbank zugeordnet sind, auf den Zielserver kopieren. In der folgenden Tabelle finden Sie eine Beschreibung der Dateitypen:
    Tabelle minimierenTabelle vergrößern
    DateinamenerweiterungBeschreibung
    .mdf Primäre Datendatei
    .ndf Sekundäre Datendatei
    .ldf Transaktionsprotokolldatei
  2. Fügen Sie die Datenbank dem Zielserver mithilfe der gespeicherten Prozedur sp_attach_db hinzu, und verweisen Sie auf die Dateien, die Sie im vorherigen Schritt auf den Zielserver kopiert haben. Weitere Informationen zur Anwendung dieser Methoden finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    224071 SQL Server-Datenbanken mithilfe von Detach/Attach an einen neuen Speicherort verschieben
  • Nachdem Sie die Datenbank freigegeben haben, kann nicht auf sie zugegriffen werden. Außerdem können Sie die Datenbank nicht verwenden, während Sie die Dateien kopieren. Sämtliche Daten, die zum Zeitpunkt der Freigabe in der Datenbank enthalten sind, werden verschoben.
  • Wenn Sie die Methode Attach oder Detach verwenden, müssen der Zeichensatz, die Sortierreihenfolge und die Unicode-Sortierung möglicherweise auf beiden Servern übereinstimmen. Weitere Informationen finden Sie im Abschnitt "Anmerkungen zur Sortierung" in diesem Artikel.

Anmerkungen zur Sortierung

Wenn Sie mithilfe der Sicherung und Wiederherstellungen oder den Methoden Attach und Detach Datenbanken zwischen SQL Server 7.0-Servern verschieben, müssen der Zeichensatz, die Sortierreihenfolge und die Unicode-Sortierung auf beiden Servern übereinstimmen. Wenn Sie Datenbanken von SQL Server 7.0-Servern auf SQL Server 2000-Server oder zwischen SQL Server 2000-Servern verschieben, wird in der Datenbank die Sortierung der Quelldatenbank beibehalten. Das heißt, dass die Zieldatenbank eine andere Sortierung hat als die master-, model-, tempdb- und msdb-Datenbanken des Zielservers, wenn der Zielserver, auf dem SQL Server 2000 ausgeführt wird, eine andere Sortierung hat als die Quelldatenbank. Weitere Informationen finden Sie in der Onlinedokumentation von SQL Server 2000 unter "Umgebungen mit gemischten Sortierungen".

Importieren und exportieren von Daten (um Objekte und Daten zwischen SQL Server-Datenbanken zu kopieren)

Sie können mithilfe des Assistenten zum Importieren und Exportieren von Daten der Data Transformation Services eine gesamte Datenbank kopieren oder einzelne Objekte und Daten aus der Quelldatenbank in die Zieldatenbank kopieren.
  • Die Quelldatenbank kann während der Übertragung verwendet werden. Wenn die Quelldatenbank während der Übertragung verwendet wird, stellen Sie eventuell während der Übertragung einige Blockierungen fest.
  • Wenn Sie den Assistenten zum Importieren und Exportieren von Daten verwenden, müssen der Zeichensatz, die Sortierreihenfolge und die Sortierung auf dem Quellserver und dem Zielordner nicht übereinstimmen.
  • Da nicht verwendete Bereiche in der Quelldatenbank nicht verschoben werden, kann die Zieldatenbank kleiner sein als die Quelldatenbank. Gleichermaßen kann die Zieldatenbank kleiner sein als die Quelldatenbank, wenn Sie lediglich einige Objekte verschieben.
  • Die Data Transformation Services von SQL Server 7.0 können möglicherweise Daten von Texten und Bildern, die mehr als 64 KB betragen, nicht einwandfrei übertragen. Dieses Problem gilt nicht für die SQL Server 2000-Version der Data Transformation Services. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    257425 Update: Ein Task zur DTS-Objektübertragung überträgt größere als 64 KB BLOB-Daten nicht

Schritt 2: Benutzernamen und Kennwörter übertragen

Wenn Sie die Benutzernamen vom Quellserver nicht an den Zielserver übertragen, können sich Ihre aktuellen SQL Server-Benutzer möglicherweise nicht am Zielserver anmelden. Folgen Sie den Anweisungen im folgenden Microsoft Knowledge Base-Artikel, um Benutzernamen und Kennwörter zu übertragen:
246133 HOW TO: Übertragen von Benutzernamen und Kennwörtern zwischen Instanzen von SQL-Server
Die Standarddatenbanken für die Benutzernamen auf dem Zielserver unterscheiden sich möglicherweise von der Standarddatenbank für die Benutzernamen auf dem Quellserver. Sie können die Standarddatenbank für einen Benutzernamen mithilfe der gespeicherten Prozedur sp_defaultdb ändern. Weitere Informationen finden Sie unter dem Thema "Transact-SQL-Referenz" unter dem Unterthema "sp_defaultdb" in der Onlinedokumentation zu SQL Server.

Schritt 3: Verwaiste Benutzer beheben

Nachdem Sie die Benutzernamen und Kennwörter an den Zielserver übertragen haben, können Ihre Benutzer möglicherweise nicht auf die Datenbank zugreifen. Benutzernamen sind über die Sicherheit-ID (Security Identifier, SID) den Benutzern zugeordnet, und wenn die SID nach dem Verschieben einer Datenbank inkonsistent ist, kann SQL Server dem Benutzer den Zugriff auf die Datenbank verweigern. Dieses Problem wird als "verwaister Benutzer" bezeichnet. Wenn Sie Benutzernamen und Kennwörter mithilfe des DTS-Features in SQL Server 2000 zum Transfer von Benutzernamen übertragen, treten möglicherweise verwaiste Benutzer auf. Darüber hinaus verursachen integrierte Benutzernamen, die Zugriff auf einen Zielserver hatten, der sich in einer anderen Domäne befindet als der Quellserver, verwaiste Benutzer.
  1. Ermitteln Sie verwaiste Benutzer. Öffnen Sie Query Analyzer auf dem Zielserver, und führen Sie anschließend den folgenden Code in der Benutzerdatenbank aus, die Sie verschoben haben:
    exec sp_change_users_login 'Report'
    Die Prozedur listet sämtliche verwaisten Benutzer auf, die nicht mit einem Benutzernamen verknüpft sind. Wenn keine Benutzer aufgelistet sind, überspringen Sie Schritt 2 und Schritt 3, und fahren Sie mit Schritt 4 fort.
  2. Beheben Sie das Problem der verwaisten Benutzer. Wenn ein Benutzer verwaist ist, können sich die Benutzer einer Datenbank erfolgreich beim Server anmelden, sie erhalten jedoch nicht die Zugriffsberechtigung für die Datenbank. Wenn Sie versuchen, die Anmeldung bei der Datenbank zuzulassen, wird die folgende Fehlermeldung angezeigt, weil der Benutzer bereits existiert:
    Microsoft SQL-DMO (ODBC SQLState: 42000) Fehler 15023: Der Benutzer oder die Rolle '%s' ist in der aktuellen Datenbank bereits vorhanden.
    Weitere Informationen zur Behebung des Problems der verwaisten Benutzer finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    240872 Lösen von Zugriffsproblemen, wenn eine Datenbank auf einen anderen SQL-Server verschoben wird

    Dieser Artikel enthält Anweisungen, wie Sie die Benutzernamen den Benutzern der Datenbank zuordnen können und verwaiste Benutzer der standardmäßigen SQL Server-Benutzernamen und integrierten Benutzernamen zu beheben.

    274188 PRB: Problemthema "Behandlung" bei verwaisten Benutzern in Online-Dokumentation befindet sich Unvollständig

    Dieser Artikel beschreibt die erforderliche Vorgehensweise.sp_change_users_login, um verwaiste Benutzer einzeln zu korrigieren. Die gespeicherte Prozedur sp_change_users_login behebt nur verwaiste Benutzer der standardmäßigen SQL Server-Benutzernamen.
  3. Wenn der Datenbankbesitzer (dbo) als verwaist aufgeführt ist, führen Sie den folgenden Code in der Benutzerdatenbank aus:
    exec sp_changedbowner 'sa'
    Die gespeicherte Prozedur ändert den Datenbankbesitzer in dboum und behebt das Problem. Wenn Sie den Datenbankbesitzer in einen anderen Benutzer umändern möchten, führen Sie sp_changedbowner erneut mit dem gewünschten Benutzer aus. Weitere Informationen finden Sie unter dem Thema "Transact-SQL-Referenz" unter dem Unterthema "sp_changedbowner" in der Onlinedokumentation zu SQL Server.
  4. Wenn auf Ihrem Zielserver SQL Server 2000 Service Pack 1 ausgeführt wird, ist der Datenbankbesitzer möglicherweise nicht in der Liste im Ordner Benutzer in Enterprise Manager enthalten, nachdem Sie das Anhängen oder Wiederherstellen (oder beides) durchgeführt haben. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    305711 BUG: DBO-Benutzer zeigt nicht in Enterprise Manager an
  5. Möglicherweise wird die folgende Fehlermeldung angezeigt, wenn Sie versuchen, das Kennwort des Systemadministrators (sa) mithilfe von Enterprise Manager zu ändern, falls der Benutzername, der dbo auf dem Quellserver zugeordnet wurde, nicht auf dem Zielserver existiert:
    Fehler 21776: [SQL-DMO] Der Name 'dbo' wurde in der Auflistung Users nicht gefunden. Wenn es sich um einen vollständigen Namen handelt, trennen Sie die Namensteile mit [], und versuchen Sie es dann erneut.
    Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    218172 PRB:Ändern des SA-Kennworts in Enterprise Manager nicht möglich
Achtung: Wenn Sie die Datenbank erneut wiederherstellen oder anhängen, verwaisen Datenbankbenutzer möglicherweise erneut, und Sie müssen Schritt 3 wiederholen.

Schritt 4: Aufträge, Warnungen und Operatoren verschieben

Schritt 4 ist optional. Sie können für alle Aufträge, Warnungen und Operatoren auf dem Quellserver Skripte erstellen und das Skript anschließend auf dem Zielserver ausführen.
  • Gehen Sie folgendermaßen vor, um Aufträge, Warnungen und Operatoren zu verschieben:
    1. Öffnen Sie den SQL Server Enterprise Manager, und erweitern Sie dann den Ordner Verwaltung.
    2. Erweitern Sie SQL Server-Agent, und klicken Sie danach mit der rechten Maustaste entweder auf Warnungen, Aufträge oder Operatoren.
    3. Klicken Sie auf Alle Aufgaben und anschließend auf SQL-Skript generieren. Klicken Sie unter SQL Server 7.0 auf Alle Objekte für Skripterstellung (Script All Jobs) oder Warnungen oder Operatoren.
    Sie haben die Option, Skripte für Alle Warnungen, Alle Aufträge oder Alle Operatoren zu erstellen, je nachdem, auf welches Element Sie mit der rechten Maustaste klicken.
  • Sie können Aufträge, Warnungen und Operatoren von SQL Server 7.0 an SQL Server 2000 verschieben, oder zwischen Computerservern verschieben, auf denen SQL Server 7.0 und SQL Server 2000 ausgeführt werden.
  • Wenn Sie Operatoren haben, die für Benachrichtigungen durch SQLMail auf dem Quellserver eingerichtet sind, müssen Sie SQLMail auf dem Zielserver mit der gleichen Funktionalität einrichten. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    263556 INF: Konfigurieren von SQL Mail

Schritt 5: DTS-Pakete verschieben

Schritt 5 ist optional. Wenn DTS-Pakete auf dem Quellserver unter SQL Server oder dem Repository gespeichert sind, können Sie sie nach Bedarf verschieben. Gehen Sie folgendermaßen vor, um Pakete zwischen Servern zu verschieben:

Methode 1

  1. Speichern Sie das DTS-Paket auf dem Quellserver in einer Datei, und öffnen Sie die Datei mit dem DTS-Paket auf dem Zielserver.
  2. Speichern Sie das Paket auf dem Zielserver unter SQL Server oder dem Repository.
    Hinweis: Sie müssen jedes Paket einzeln in einer separaten Datei verschieben.

Methode 2

  1. Öffnen Sie jedes DTS-Paket im DTS-Designer.
  2. Klicken Sie im Menü Paket auf Speichern unter.
  3. Geben Sie den Ziel-SQL Server an.
Hinweis: Das Paket wird möglicherweise nicht einwandfrei auf dem neuen Server ausgeführt. Sie müssen das Paket eventuell bearbeiten und sämtliche Verweise im Paket auf Verbindungen, Dateien, Datenquellen, Profile und andere Informationen auf dem alten Quellserver so ändern, dass sie auf den neuen Zielserver verweisen. Sie müssen diese Änderungen an einem Paket über die Paketbasis vornehmen, je nach Design jedes einzelnen Pakets.

Weitere Informationen

Sie möchten möglicherweise auch andere Elemente verschieben, wie beispielsweise Replikationen, Protokollversand, Volltextkataloge, benannte Sicherungsgeräte, Wartungspläne und Verbindungsserver. Überprüfen Sie den Quellserver nach diesen Konfigurationen, und führen Sie bei Bedarf die entsprechenden Schritte durch, um diese Konfigurationen auf dem Zielserver manuell vorzunehmen.

Weitere Informationen zum Verschieben von Volltextkomponenten finden Sie im folgenden Artikel der Microsoft Knowledge Base:
240867 Wie Verschieben, Kopieren und sichern Ordnern des Voll-Textkatalog und Dateien zu
Datenbankdiagramme sowie der Sicherungs- und Wiederherstellungsverlauf werden nicht verschoben, wenn Sie die in diesem Artikel beschriebenen Schritte durchführen. Wenn Sie diese Informationen verschieben müssen, verschieben Sie die msdb-Systemdatenbank. Weitere Informationen zum Verschieben der Systemdatenbank msdb finden Sie in den im Abschnitt "Schritt 1: Benutzerdatenbanken verschieben" in diesem Artikel aufgeführten Microsoft Knowledge Base-Artikeln. Wenn Sie die msdb-Datenbank verschieben, müssen Sie die Schritte "Schritt 4: Aufträge, Warnungen und Operatoren verschieben" bzw. "Schritt 5: DTS-Pakete verschieben" nicht durchführen.

Informationsquellen

Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
320125 Wie Verschieben eines Datenbank-Diagramms

Eigenschaften

Artikel-ID: 314546 - Geändert am: Freitag, 12. Juli 2013 - Version: 7.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-Bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
Keywords: 
kbsqlsetup kbhowtomaster KB314546
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com