Stappen voor het migreren van alle gegevens tussen servers in SQL Server

Aanmaakdatum van pagina :

milieu

SQL Server
  • SQL Server 2019
  • SQL Server 2012

Hoe gegevensmigratie wordt gemigreerd en de voor- en nadelen van elk

Er zijn verschillende manieren om SQL Server-databasegegevens bulksgewijs naar SQL Server op andere servers te migreren: Elk heeft zijn voor- en nadelen tijdens de migratie, dus kies de methode die het beste bij uw omgeving past.

van
Migratiemethode Netwerkconnectiviteit tussen serversPre-synchrone verificatietabellay-outs van bestandsgrootte tijdens migratie naar eerdere versies
Back-ups maken van databases en deze herstellen Niet vereist (bestanden verplaatsen) slecht gewoon Niet nodig (automatische volledige vervanging) onnodig
Gegevens uitvoeren als SQL Niet vereist (bestanden verplaatsen) begaanbaar groot Vereist of verwijderd naar tabel onnodig
De tool Gegevens importeren en exporteren gebruiken onmisbaarheid begaanbaar zonder Afhankelijk van uw migratie-instellingen noodzaak

voorwaarde

  • Stel dat sql server en SQL Server Management Studio zijn geïnstalleerd op elke server.
  • Deze Tips durft het aan om sql server versies anders te maken.

Voorbeeldgegevens maken

Wanneer u gegevensmigratie bespreekt, doet u dit in de database met de volgende tabelconfiguratie:

Gegevensmigratiebron

SQL Server 2012

  • Tabel 1 (Kolom:Sleutel, waarde)
  • Tabel 2 (Kolom:Sleutel, Waarde, Opmerkingen)
  • Tabel 3 (Kolom:Sleutel, Waarde)

Het volgende is een script voor het maken van een database. Verander het pad tijdig.

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

Hieronder vindt u een script voor het maken van tabellen.

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

Het volgende is een extra recordscript:

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

Gegevensmigratie naar

SQL Server 2019

  • Tabel 1 (Kolom:Sleutel, waarde)
  • Tabel 2 (Kolom:Sleutel, Waarde)

De records in elke tabel zijn leeg.

Het volgende is een script voor het maken van een database. Verander het pad tijdig.

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

Hieronder vindt u een script voor het maken van tabellen.

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

Hoe database back-up en herstel migratie

Met deze methode maakt u een back-up van de volledige database als een bestand op de bronserver, kopieert u deze naar de doelserver en neemt u deze op. Daarom worden alle tabelconfiguraties ingesteld op de bestemming, die allemaal hetzelfde zijn als de bron.

Met deze methode kunt u ook niet migreren van een nieuwere versie van SQL Server naar een oudere versie. (Als het versieverschil klein is, is het misschien mogelijk))

procedure

Start SQL Server Management Studio vanaf de bron. Kies een map die overeenkomt met uw SQL Server-versie.

Meld u aan bij de doelserver. Pc's met SQL Server Management Studio zijn prima op andere pc's, maar met deze tips kunt u allemaal op uw eigen servers werken.

Klik in Object Explorer met de rechtermuisknop op de database en selecteer Back-up maken voor taken.

Verwijder het initiële back-uppad in de lijst met back-upbestemmingen in de rechterbenedenhoek.

Wanneer u het verwijdert, klikt u op de knop Toevoegen.

Klik op de knop Pad wijzigen.

Ik denk dat de map "Back-up" standaard is geselecteerd, dus voer de bestandsnaam in om een back-up te maken in de onderstaande bestandsnaam en klik op de knop OK. De bestandsnaam is optioneel, dus maak het gemakkelijk te begrijpen.

Klik op de knop OK.

Controleer of het aan de lijst is toegevoegd en klik vervolgens op ok.

Aangezien het back-upbestand in de volgende map is gemaakt, breng ik dit bestand naar de server waarnaar ik het wil migreren. Het mappad is afhankelijk van de versie van SQL Server en de naam van het exemplaar, dus controleer het tijdig.

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

Status na het kopiëren naar de doelserver. Het wordt in de volgende map geplaatst omdat het gemakkelijker te laden is als u het in de map Back-up van SQL Server plaatst. Dit is ook afhankelijk van de versie van SQL Server en de instantienaam, dus controleer deze tijdig.

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

Start SQL Server Management Studio op de server waarnaar u migreert. U bent hier ingelogd op uw server.

Klik in Object explorer met de rechtermuisknop op de doeldatabase en selecteer vervolgens Taken, Herstellen en Database.

Zorg ervoor dat Algemeen is geselecteerd op de linkerpaginaselectie, selecteer "Apparaat" in de "Bron" aan de rechterkant en klik op de bladerknop aan de rechterkant.

Klik op de knop Toevoegen.

Selecteer het bestand dat u hebt meegenomen.

Selecteer "Opties" in de selectie van de linkerpagina en controleer de volgende twee. Als u deze twee controleert, kunt u een ander systeem dwingen om te wisselen terwijl u verbonden bent met de database.

  • Een bestaande database overschrijven
  • Een bestaande verbinding met de doeldatabase sluiten

Houd er echter rekening mee dat als het herstel mislukt met "Bestaande verbinding met de doeldatabase sluiten" is aangevinkt, de oorspronkelijke database mogelijk niet beschikbaar is.

Wanneer u dit controleert, klikt u op de knop OK.

U kunt controleren of de tabelconfiguratie en records volledig zijn gemigreerd.

Als u overigens een nieuwere versie van een SQL Server-database probeert te herstellen naar een oudere versie van SQL Server, ziet u de volgende fout: Deze methode van gegevensmigratie is gebaseerd op dezelfde versie naar elkaar of naar een nieuwere versie.

Procedure: Gegevens uitvoeren als SQL (script) en uitvoeren op de doeldatabase

Zo kunt u alle records in een tabel uitvoeren als invoeginstructies. Omdat SQL-instructies bijna hetzelfde zijn, kunnen ze in sommige gevallen worden toegepast op andere typen databases, ongeacht de versie van SQL Server.

Omdat records echter worden geschreven om zinnen één voor één in te voegen, neemt de bestandsgrootte toe. Daarom is het, naarmate het aantal records toeneemt, nutteloos, dus het is een methode die kan worden gebruikt wanneer het aantal klein is.

Het genereert ook SQL voor de tabel van waaruit het is gemigreerd, dus het is niet beschikbaar als het verschilt van de tabelconfiguratie waarnaar het is gemigreerd. U kunt ook het maken van een tabel in SQL opnemen, maar u moet de tabel eenmaal op de bestemming verwijderen.

procedure

Start SQL Server Management Studio vanaf de bron. Kies een map die overeenkomt met uw SQL Server-versie.

Meld u aan bij de doelserver. Pc's met SQL Server Management Studio zijn prima op andere pc's, maar met deze tips kunt u allemaal op uw eigen servers werken.

Klik met de rechtermuisknop op de doeldatabase en selecteer "Taak" en "Script genereren".

Klik op Volgende.

U kunt kiezen voor welke tabellen u gegevens wilt migreren. Selecteer hier alles of selecteer een specifieke tabel.

Aangezien de uitvoer SQL is, kunt u "Bestand", "Klembord" of "Weergeven in venster" selecteren. Eenmaal geselecteerd, klikt u op de knop "Geavanceerd" in de rechterbovenhoek.

Selecteer Alleen gegevens in 'Typen gegevens om scripts te genereren' in de groep Algemeen.

Selecteer daarna "Volgende" om te bevestigen. U kunt zien dat SQL wordt gegenereerd. Het enige dat overblijft, is om deze SQL op de bestemming uit te voeren.

Omdat het slechts een insert-instructie is, moet u, als u wilt dat de gegevens hetzelfde zijn, alle records op de bestemming van tevoren verwijderen.

Ook tabelconfiguraties migreren

Als u ook tabelconfiguraties wilt migreren, stelt u de vorige selectie 'Type gegevens om scripts te genereren' in op Schema en Gegevens.

Een script voor het maken van tabellen wordt ook als volgt gegenereerd: Als u dit wilt gebruiken, wordt dit uitgevoerd na het verwijderen van de te migreren tabel.

Het genereert ook een script voor het maken van een database als het ook is opgenomen.

Gegevens migreren met behulp van Gegevens importeren en exporteren

Terwijl u SQL Server installeert, installeert u ook een hulpprogramma met de naam Gegevens importeren en exporteren. U kunt het gebruiken om gegevens van een tabel naar een andere server te migreren.

Het voordeel van deze toolmigratie is dat gegevens ook kunnen worden gemigreerd naar oudere versies van SQL Server. Het is een beetje moeilijk te gebruiken, maar het kan worden gemigreerd op het niveau van enkele minuten, zelfs met ongeveer 1 miljoen gegevens, dus het is ook geschikt voor grote gegevensmigratie. Houd er echter rekening mee dat de bron- en doelservers verbonden moeten zijn op een particulier netwerk en niet kunnen worden gebruikt tussen servers met volledig verschillende netwerken.

voorwaarde

Bouw SQL Server-verificatie of Windows-verificatie zodat u toegang hebt tot elke SQL Server vanaf een pc die dit hulpprogramma gebruikt.

Deze tips gebruikt dit hulpprogramma vanaf de server van waaruit het is gemigreerd.

procedure

Selecteer Gegevens importeren en exporteren in het menu Start. Het is opgenomen in een map in SQL Server, maar de mapnaam varieert afhankelijk van de versie van SQL Server, dus zoek er tijdig naar.

Klik op Volgende.

Selecteer de database waaruit u wilt migreren. Deze keer wordt het uitgevoerd op de bronserver, zodat u Windows-verificatie kunt doorlopen.

Opmerking over de waarde van parameternamen
Gegevensbronnen SQL Server Native Client 11,0
Servernaam (lokaal) Als het een andere server is of als er een instantienaam is opgegeven, voert u de waarde ervan in
authenticatie Windows-verificatie
databank Voorbeelddatabase Voer de naam in van de database van waaruit u daadwerkelijk wilt migreren

Stel vervolgens de verbindingsinstellingen voor de doeldatabase in. Sql Server-verificatie wordt gebruikt omdat deze zich op een andere server bevindt.

Opmerking over de waarde van parameternamen
Gegevensbronnen SQL Server Native Client 11,0
Servernaam Doelservernaam (+ \instantienaam)]
authenticatie SQL Server-verificatie
databank Voorbeelddatabase Voer de naam in van de database waarnaar u daadwerkelijk wilt migreren

Vink "Gegevens uit een of meer tabellen of weergaven kopiëren" aan en klik op de volgende knop.

Selecteer de tabel die u wilt migreren. Deze lijst toont ook de weergave, dus controleer deze niet.

Als de namen van de bron- en doeltabel hetzelfde zijn, wordt de tabel die u wilt migreren automatisch geselecteerd. Het stelt ook automatisch de toewijzing van kolomnamen in als de kolomnamen hetzelfde zijn.

Houd rekening met het volgende:

  • Als de primaire sleutel automatisch wordt geteld, mislukt de migratie als u 'Id-invoeging toestaan' niet inschakelt in 'Toewijzing bewerken'
  • Als er geen tabellen zijn om naar te migreren, wordt een tabel gemaakt
  • Als de doeltabel niet dezelfde kolomnaam heeft, wordt deze niet gemigreerd. Ga niet verder met migreren of wijzigen van de doelkolom.
  • Records worden standaard toegevoegd. Als u deze wilt vervangen, verwijdert u de record op de bestemming van tevoren of vinkt u 'Rijen in de doeltabel verwijderen' aan in 'Toewijzing bewerken'

In feite moet u rekening houden met het bovenstaande, maar in deze tips zijn er geen gegevens op de bestemming en is er geen automatische nummering, dus u kunt doorgaan zonder iets in te stellen.

Zorg ervoor dat "Nu uitvoeren" is aangevinkt en klik op "Volgende".

Klik op Gereed.

De gegevensmigratie begint. Sluit wanneer alle migraties zijn voltooid.

Als u naar de doeldatabase kijkt, kunt u controleren of er een tabel is gemaakt die niet bestond. U kunt ook zien dat er geen kolommen meer zijn voor bestaande tabellen.

U kunt controleren of de gegevens worden gemigreerd. Opmerking Kolommen in tabel 2 zijn niet toegewezen en zijn niet gemigreerd.