Schritte zum Migrieren aller Daten zwischen Servern in SQL Server

Erstellungsdatum der Seite :

Umwelt

SQL Server
  • SQL Server 2019
  • SQL Server 2012

Wie die Datenmigration migriert wird und die Vor- und Nachteile der einzelnen

Es gibt mehrere Möglichkeiten, SQL Server-Datenbankdaten auf anderen Servern in großen Mengen zu SQL Server zu migrieren: Jede hat ihre Vor- und Nachteile während der Migration, also wählen Sie die Methode, die am besten zu Ihrer Umgebung passt.

von
Migrationsmethode Netzwerkkonnektivität zwischen ServernVorsynchrone AuthentifizierungTabellenlayouts in Dateigröße während der Migration zu früheren Versionen
Sichern und Wiederherstellen von Datenbanken Nicht erforderlich (Dateien verschieben) schlecht gewöhnlich Nicht erforderlich (automatischer vollständiger Austausch) unnötig
Daten als SQL ausgeben Nicht erforderlich (Dateien verschieben) passierbar groß Erforderlich oder in Tabelle gelöscht unnötig
Verwenden Sie das Tool Daten importieren und exportieren Unentbehrlichkeit passierbar ohne Abhängig von Ihren Migrationseinstellungen Notwendigkeit

Vorbedingung

  • Angenommen, SQL Server und SQL Server Management Studio sind auf jedem Server installiert.
  • Dieser Tipp wagt es, SQL Server-Versionen anders zu machen.

Erstellen von Beispieldaten

Wenn Sie die Datenmigration besprechen, tun Sie dies in der Datenbank mit der folgenden Tabellenkonfiguration:

Datenmigrationsquelle

SQL Server 2012

  • Tabelle 1 (Spalte:Schlüssel, Wert)
  • Tabelle 2 (Spalte:Schlüssel, Wert, Bemerkungen)
  • Tabelle 3 (Spalte:Schlüssel, Wert)

Im Folgenden finden Sie ein Skript zur Datenbankerstellung. Ändern Sie den Pfad rechtzeitig.

USE [master]
GO

CREATE DATABASE [SampleDatabase]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'SampleDatabase', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SampleDatabase.mdf' , SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'SampleDatabase_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SampleDatabase_log.ldf' , SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO

Unten ist ein Tabellenerstellungsskript.

USE [SampleDatabase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル1](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル1] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル2](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
	[備考] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル2] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル3](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル3] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

Im Folgenden finden Sie ein zusätzliches Datensatzskript:

USE [SampleDatabase]
GO
INSERT [dbo].[テーブル1] ([キー], [値]) VALUES (1, N'1aaa')
GO
INSERT [dbo].[テーブル1] ([キー], [値]) VALUES (2, N'1bbb')
GO
INSERT [dbo].[テーブル2] ([キー], [値], [備考]) VALUES (1, N'2aaa', N'2remarks')
GO
INSERT [dbo].[テーブル2] ([キー], [値], [備考]) VALUES (2, N'2bbb', N'2remarks')
GO
INSERT [dbo].[テーブル3] ([キー], [値]) VALUES (1, N'3aaa')
GO
INSERT [dbo].[テーブル3] ([キー], [値]) VALUES (2, N'3bbb')
GO

Datenmigration nach

SQL Server 2019

  • Tabelle 1 (Spalte:Schlüssel, Wert)
  • Tabelle 2 (Spalte:Schlüssel, Wert)

Die Datensätze in jeder Tabelle sind leer.

Im Folgenden finden Sie ein Skript zur Datenbankerstellung. Ändern Sie den Pfad rechtzeitig.

USE [master]
GO

CREATE DATABASE [SampleDatabase]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'SampleDatabase', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\SampleDatabase.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'SampleDatabase_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\SampleDatabase_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
 WITH CATALOG_COLLATION = DATABASE_DEFAULT
GO

Unten ist ein Tabellenerstellungsskript.

USE [SampleDatabase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル1](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル1] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル2](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

Migration von Datenbanksicherung und -wiederherstellung

Diese Methode besteht darin, die gesamte Datenbank als Datei auf dem Quellserver zu sichern, sie auf den Zielserver zu kopieren und aufzunehmen. Daher werden alle Tabellenkonfigurationen auf das Ziel festgelegt, die alle mit der Quelle identisch sind.

Außerdem können Sie mit dieser Methode nicht von einer neueren Version von SQL Server zu einer älteren Version migrieren. (Wenn der Versionsunterschied gering ist, ist dies möglicherweise möglich))

Verfahren

Starten Sie SQL Server Management Studio von der Quelle aus. Wählen Sie einen Ordner aus, der Ihrer SQL Server-Version entspricht.

Melden Sie sich beim Zielserver an. PCs mit SQL Server Management Studio sind auf anderen PCs in Ordnung, aber mit diesen Tipps können Sie alle auf Ihren eigenen Servern arbeiten.

Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Datenbank, und wählen Sie Für Aufgaben sichern aus.

Löschen Sie den anfänglichen Sicherungspfad in der Liste der Sicherungsziele in der unteren rechten Ecke.

Wenn Sie es löschen, klicken Sie auf die Schaltfläche Hinzufügen.

Klicken Sie auf die Schaltfläche Pfad ändern.

Ich denke, dass der Ordner "Backup" standardmäßig ausgewählt ist, also geben Sie den zu sichernden Dateinamen in den Dateinamen unten ein und klicken Sie auf die Schaltfläche OK. Der Dateiname ist optional, also machen Sie es leicht verständlich.

Klicken Sie auf die Schaltfläche OK.

Überprüfen Sie, ob es der Liste hinzugefügt wurde, und klicken Sie dann auf die Schaltfläche OK.

Da die Sicherungsdatei im folgenden Ordner erstellt wurde, werde ich diese Datei auf den Server bringen, auf den ich sie migrieren möchte. Der Ordnerpfad hängt von der Version von SQL Server und dem Namen der Instanz ab, überprüfen Sie ihn daher rechtzeitig.

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup

Status nach dem Kopieren auf den Zielserver. Es wird im folgenden Ordner abgelegt, da es einfacher zu laden ist, wenn Sie es im Sicherungsordner von SQL Server ablegen. Dies hängt auch von der Version von SQL Server und dem Instanznamen ab, also überprüfen Sie es bitte rechtzeitig.

C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\Backup

Starten Sie SQL Server Management Studio auf dem Server, zu dem Sie migrieren. Sie sind hier an Ihrem Server eingeloggt.

Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Zieldatenbank, und wählen Sie dann Aufgaben, Wiederherstellen und Datenbank aus.

Stellen Sie sicher, dass in der linken Seitenauswahl Allgemein ausgewählt ist, wählen Sie "Gerät" aus der "Quelle" auf der rechten Seite und klicken Sie auf die Schaltfläche zum Durchsuchen auf der rechten Seite.

Klicken Sie auf die Schaltfläche Hinzufügen.

Wählen Sie die Datei aus, die Sie mitgebracht haben.

Wählen Sie "Optionen" aus der Auswahl der linken Seite und aktivieren Sie die folgenden beiden. Wenn Sie diese beiden aktivieren, können Sie ein anderes System zum Austausch zwingen, während Sie mit der Datenbank verbunden sind.

  • Überschreiben einer vorhandenen Datenbank
  • Schließen einer vorhandenen Verbindung mit der Zieldatenbank

Beachten Sie jedoch, dass die ursprüngliche Datenbank möglicherweise nicht verfügbar ist, wenn die Wiederherstellung mit der Option "Bestehende Verbindung zur Zieldatenbank schließen" fehlschlägt.

Wenn Sie dies überprüfen, klicken Sie auf die Schaltfläche OK.

Sie können überprüfen, ob die Tabellenkonfiguration und die Datensätze vollständig migriert wurden.

Wenn Sie übrigens versuchen, eine neuere Version einer SQL Server-Datenbank in einer älteren Version von SQL Server wiederherzustellen, wird der folgende Fehler angezeigt: Diese Methode der Datenmigration basiert auf derselben Version zueinander oder zu einer neueren Version.

Gewusst wie: Ausgeben von Daten als SQL (Skript) und Ausführen in der Zieldatenbank

So geben Sie alle Datensätze in einer Tabelle als insert-Anweisungen aus. Da SQL-Anweisungen nahezu identisch sind, können sie in einigen Fällen unabhängig von der Version von SQL Server auf andere Datenbanktypen angewendet werden.

Da Datensätze jedoch geschrieben werden, um Sätze nacheinander einzufügen, erhöht sich die Dateigröße. Daher ist es nutzlos, wenn die Anzahl der Datensätze zunimmt, also ist es eine Methode, die verwendet werden kann, wenn die Anzahl klein ist.

Außerdem wird SQL für die Tabelle generiert, aus der es migriert wurde, sodass es nicht verfügbar ist, wenn es sich von der Tabellenkonfiguration unterscheidet, in die es migriert wird. Sie können auch die Erstellung einer Tabelle in SQL einschließen, müssen die Tabelle jedoch einmal am Ziel löschen.

Verfahren

Starten Sie SQL Server Management Studio von der Quelle aus. Wählen Sie einen Ordner aus, der Ihrer SQL Server-Version entspricht.

Melden Sie sich beim Zielserver an. PCs mit SQL Server Management Studio sind auf anderen PCs in Ordnung, aber mit diesen Tipps können Sie alle auf Ihren eigenen Servern arbeiten.

Klicken Sie mit der rechten Maustaste auf die Zieldatenbank und wählen Sie "Aufgabe" und "Skript generieren".

Klicken Sie auf Weiter.

Sie können auswählen, für welche Tabellen Daten migriert werden sollen. Wählen Sie hier alle oder eine bestimmte Tabelle aus.

Da die Ausgabe SQL ist, können Sie "Datei", "Zwischenablage" oder "Im Fenster anzeigen" auswählen. Klicken Sie nach der Auswahl auf die Schaltfläche "Erweitert" oben rechts.

Wählen Sie in der Gruppe "Allgemein" unter "Datentypen zum Generieren von Skripts" die Option Nur Daten aus.

Danach wählen Sie "Weiter", um zu bestätigen. Sie können sehen, dass SQL generiert wird. Alles, was noch übrig ist, ist, dieses SQL auf dem Ziel auszuführen.

Da es sich nur um eine insert-Anweisung handelt, müssen Sie, wenn Sie möchten, dass die Daten identisch sind, alle Datensätze am Ziel im Voraus löschen.

Migrieren von Tabellenkonfigurationen

Wenn Sie auch Tabellenkonfigurationen migrieren möchten, legen Sie die vorherige Auswahl "Datentyp zum Generieren von Skripts" auf Schema und Daten fest.

Ein Tabellenerstellungsskript wird ebenfalls wie folgt generiert: Wenn Sie dies verwenden möchten, wird es nach dem Löschen der zu migrierenden Tabelle ausgeführt.

Es generiert auch ein Datenbankerstellungsskript, wenn es ebenfalls enthalten ist.

Migrieren von Daten mithilfe von Daten importieren und exportieren

Bei der Installation von SQL Server installieren Sie auch ein Tool namens Importieren und Exportieren von Daten. Sie können es verwenden, um Daten von einer Tabelle zu einem anderen Server zu migrieren.

Der Vorteil dieser Toolmigration besteht darin, dass Daten auch zu älteren Versionen von SQL Server migriert werden können. Es ist etwas schwierig zu bedienen, aber es kann sogar mit etwa 1 Million Daten auf der Ebene von mehreren Minuten migriert werden, so dass es auch für die Migration großer Datenmengen geeignet ist. Beachten Sie jedoch, dass der Quell- und Zielserver in einem privaten Netzwerk verbunden sein müssen und nicht zwischen Servern mit völlig unterschiedlichen Netzwerken verwendet werden können.

Vorbedingung

Erstellen Sie die SQL Server-Authentifizierung oder die Windows-Authentifizierung, damit Sie von einem PC, der dieses Tool verwendet, auf jeden SQL Server zugreifen können.

In diesen Tipps wird dieses Tool von dem Server verwendet, von dem es migriert wurde.

Verfahren

Wählen Sie im Startmenü die Option Daten importieren und exportieren aus. Es ist in einem Ordner in SQL Server enthalten, aber der Ordnername variiert je nach Version von SQL Server, also suchen Sie rechtzeitig danach.

Klicken Sie auf Weiter.

Wählen Sie die Datenbank aus, aus der Sie migrieren möchten. Dieses Mal wird es auf dem Quellserver ausgeführt, sodass Sie die Windows-Authentifizierung durchlaufen können.

Hinweise zum Wert der Parameternameneinstellung
Datenquellen SQL Server Native Client 11.0
Servername (lokal) Wenn es sich um einen anderen Server handelt oder ein Instanzname angegeben ist, geben Sie bitte dessen Wert ein.
Authentifizierung Windows-Authentifizierung
Datenbank SampleDatabase Geben Sie den Namen der Datenbank ein, aus der Sie tatsächlich migrieren möchten.

Legen Sie als Nächstes die Verbindungseinstellungen für die Zieldatenbank fest. Die SQL Server-Authentifizierung wird verwendet, da sie sich auf einem anderen Server befindet.

Hinweise zum Wert der Parameternameneinstellung
Datenquellen SQL Server Native Client 11.0
Servername Name des Zielservers (+ \Instanzname)]
Authentifizierung SQL Server-Authentifizierung
Datenbank SampleDatabase Geben Sie den Namen der Datenbank ein, zu der tatsächlich migriert werden soll.

Aktivieren Sie "Daten aus einer oder mehreren Tabellen oder Ansichten kopieren" und klicken Sie auf die Schaltfläche Weiter.

Wählen Sie die Tabelle aus, die Sie migrieren möchten. Diese Liste zeigt auch die Ansicht, also überprüfen Sie sie nicht.

Wenn die Namen der Quell- und Zieltabelle identisch sind, wird die zu migrierende Tabelle automatisch ausgewählt. Außerdem wird automatisch die Zuordnung von Spaltennamen festgelegt, wenn die Spaltennamen identisch sind.

Hier sind einige Dinge, die Sie beachten sollten:

  • Wenn der Primärschlüssel automatisch aufgezählt wird, schlägt die Migration fehl, wenn Sie unter "Zuordnung bearbeiten" nicht das Kontrollkästchen "ID-Insertion zulassen" aktivieren.
  • Wenn keine Tabellen für die Migration vorhanden sind, wird eine Tabelle erstellt.
  • Wenn die Zieltabelle nicht denselben Spaltennamen hat, wird sie nicht migriert. Fahren Sie nicht mit der Migration fort oder ändern Sie die Zielspalte.
  • Datensätze werden standardmäßig hinzugefügt. Wenn Sie es ersetzen möchten, löschen Sie den Datensatz am Ziel im Voraus oder aktivieren Sie "Zeilen in der Zieltabelle löschen" unter "Zuordnung bearbeiten"

In der Tat müssen Sie das oben Genannte berücksichtigen, aber in diesen Tipps gibt es keine Daten am Ziel und es gibt keine automatische Nummerierung, so dass Sie fortfahren können, ohne etwas einzustellen.

Stellen Sie sicher, dass "Jetzt ausführen" aktiviert ist, und klicken Sie auf "Weiter".

Klicken Sie auf Fertig.

Die Datenmigration beginnt. Schließen Sie, wenn alle Migrationen abgeschlossen sind.

Wenn Sie sich die Zieldatenbank ansehen, können Sie überprüfen, ob eine Tabelle erstellt wurde, die nicht vorhanden war. Sie können auch sehen, dass es keine Spalten mehr für vorhandene Tabellen gibt.

Sie können überprüfen, ob die Daten migriert werden. Hinweisspalten in Tabelle 2 sind nicht zugeordnet und wurden nicht migriert.