Postup migrace všech dat mezi servery v SYSTÉMU SQL Server

Datum vytvoření stránky :

životní prostředí

SQL Server
  • SQL Server 2019
  • SQL Server 2012

Způsob migrace dat a výhody a nevýhody jednotlivých migrací

Existuje několik způsobů, jak hromadně migrovat data databáze SQL Server na SQL Server na jiných serverech: Každý z nich má během migrace své výhody a nevýhody, proto vyberte metodu, která nejlépe vyhovuje vašemu prostředí.

Metoda migrace Síťové připojení mezi serveryPředsynchronní ověřování rozložení tabulky velikostí souborů během migrace na předchozí verze
Zálohování a obnovení databází Není vyžadováno (přesunout soubory) Špatné obyčejný Není vyžadováno (automatická úplná výměna) nepotřebný
Výstup dat jako SQL Není vyžadováno (přesunout soubory) sjízdný velký Povinné nebo odstraněné do tabulky nepotřebný
Použití nástroje Import a export dat nezbytnost sjízdný bez V závislosti na nastavení migrace nutnost

předpoklad

  • Předpokládejme, že SQL Server a SQL Server Management Studio jsou nainstalovány na každém serveru.
  • Tento tip se odvažuje lišit verze serveru SQL Server.

Vytvoření ukázkových dat

Při diskusi o migraci dat tak učiníte v databázi s následující konfigurací tabulky:

Zdroj migrace dat

SQL Server 2012

  • Tabulka 1 (Sloupec:Klíč, Hodnota)
  • Tabulka 2 (Sloupec:Klíč, Hodnota, Poznámky)
  • Tabulka 3 (Sloupec:Klíč, Hodnota)

Následuje skript pro vytvoření databáze. Změňte cestu včas.

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

Níže je uveden skript pro vytváření tabulek.

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

Následuje další skript záznamu:

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

Migrace dat do

SQL Server 2019

  • Tabulka 1 (Sloupec:Klíč, Hodnota)
  • Tabulka 2 (Sloupec:Klíč, Hodnota)

Záznamy v každé tabulce jsou prázdné.

Následuje skript pro vytvoření databáze. Změňte cestu včas.

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

Níže je uveden skript pro vytváření tabulek.

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

Jak zálohování a obnovení migrace databáze

Tato metoda slouží k zálohování celé databáze jako souboru na zdrojovém serveru, zkopírování na cílový server a ingestování. Proto jsou všechny konfigurace tabulky nastaveny na cíl, z nichž všechny jsou stejné jako zdroj.

Tato metoda také neumožňuje migraci z novější verze serveru SQL Server na starší verzi. (Pokud je rozdíl ve verzi malý, může to být možné))

procedura

Spusťte SQL Server Management Studio ze zdroje. Vyberte složku, která odpovídá vaší verzi sql serveru SQL Server.

Přihlaste se k cílovému serveru. Počítače používající SQL Server Management Studio jsou v pořádku na jiných počítačích, ale tyto tipy vám umožní pracovat na vlastních serverech.

V Průzkumníku objektů klikněte pravým tlačítkem na databázi a vyberte Zálohování pro úlohy.

Odstraňte počáteční cestu k záloze v seznamu cílů zálohování v pravém dolním rohu.

Když ji odstraníte, klikněte na tlačítko Přidat.

Klikněte na tlačítko Změnit cestu.

Myslím, že složka "Zálohování" je ve výchozím nastavení vybrána, takže zadejte název souboru, který chcete zálohovat, do názvu souboru níže a klikněte na tlačítko OK. Název souboru je volitelný, takže je snadno srozumitelný.

Klikněte na ikonu OK knoflík.

Ověřte, zda byl přidán do seznamu, a klepněte na tlačítko OK.

Vzhledem k tomu, že záložní soubor byl vytvořen v následující složce, vezmu tento soubor na server, na který jej chci migrovat. Cesta ke složce závisí na verzi serveru SQL Server a názvu instance, proto ji včas zkontrolujte.

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

Stav po zkopírování na cílový server. Je umístěn v následující složce, protože je snadnější načíst, pokud jej vložíte do složky Backup serveru SQL Server. To také závisí na verzi serveru SQL Server a názvu instance, proto jej včas zkontrolujte.

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

Spusťte SQL Server Management Studio na serveru, na který migrujete. Zde jste přihlášeni ke svému serveru.

V Průzkumníku objektů klikněte pravým tlačítkem na cílovou databázi a pak vyberte Úlohy, Obnovit a Databáze.

Ujistěte se, že je ve výběru levé stránky vybrána možnost Obecné, vyberte "Zařízení" z "Zdroj" vpravo a klikněte na tlačítko Procházet vpravo.

Klikněte na tlačítko Přidat.

Vyberte soubor, který jste přinesli.

Vyberte "Možnosti" z výběru levé stránky a zkontrolujte následující dvě. Pokud zaškrtnete tyto dva, můžete vynutit přepnutí jiného systému při připojení k databázi.

  • Přepsání existující databáze
  • Zavření existujícího připojení k cílové databázi

Upozorňujeme však, že pokud se obnovení nezdaří se zaškrtnutím políčka "Zavřít existující připojení k cílové databázi", nemusí být původní databáze k dispozici.

Když zaškrtnete, klikněte na tlačítko OK.

Můžete ověřit, zda byla konfigurace tabulky a záznamy plně migrovány.

Mimochodem, pokud se pokusíte obnovit novější verzi databáze serveru SQL Server na starší verzi serveru SQL Server, zobrazí se následující chyba: Tato metoda migrace dat je založena na stejné verzi k sobě navzájem nebo k novější verzi.

Postupy: Výstup dat jako SQL (skript) a jejich spuštění v cílové databázi

Takto lze vygenerovat všechny záznamy v tabulce jako příkazy insert. Vzhledem k tomu, že příkazy SQL jsou téměř stejné, mohou být v některých případech použity na jiné typy databází bez ohledu na verzi serveru SQL Server.

Vzhledem k tomu, že záznamy jsou psány tak, aby vkládaly věty jeden po druhém, velikost souboru se zvětšuje. Proto, jak se počet záznamů zvyšuje, je to zbytečné, takže je to metoda, kterou lze použít, když je počet malý.

Generuje také SQL pro tabulku, ze které byla migrována, takže není k dispozici, pokud se liší od konfigurace tabulky, do které je migrována. Můžete také zahrnout vytvoření tabulky v SQL, ale musíte odstranit tabulku jednou v cíli.

procedura

Spusťte SQL Server Management Studio ze zdroje. Vyberte složku, která odpovídá vaší verzi sql serveru SQL Server.

Přihlaste se k cílovému serveru. Počítače používající SQL Server Management Studio jsou v pořádku na jiných počítačích, ale tyto tipy vám umožní pracovat na vlastních serverech.

Klikněte pravým tlačítkem na cílovou databázi a vyberte "Úloha" a "Generovat skript".

Klikněte na Další.

Můžete zvolit, pro které tabulky chcete migrovat data. Zde vyberte vše nebo vyberte konkrétní tabulku.

Vzhledem k tomu, že výstup je SQL, můžete vybrat "Soubor", "Schránka" nebo "Zobrazit v okně". Po výběru klikněte na tlačítko "Pokročilé" vpravo nahoře.

Vyberte pouze data z "Typy dat pro generování skriptů" ve skupině Obecné.

Poté vyberte "Další" pro potvrzení. Můžete vidět, že sql je generován. Vše, co zbývá, je spustit tento SQL v cíli.

Vzhledem k tomu, že se jedná pouze o příkaz insert, pokud chcete, aby data byla stejná, musíte předem odstranit všechny záznamy v cíli.

Migrace konfigurací tabulek také

Pokud chcete také migrovat konfigurace tabulek, nastavte předchozí výběr "Typ dat pro generování skriptů" na Schéma a data.

Skript pro vytvoření tabulky je také generován následujícím způsobem: Pokud to chcete použít, bude provedeno po odstranění tabulky, která má být migrována.

Generuje také skript pro vytvoření databáze, pokud je také zahrnut.

Jak migrovat data pomocí importu a exportu dat

Při instalaci serveru SQL Server také nainstalujete nástroj s názvem Import a export dat. Můžete jej použít k migraci dat z tabulky na jiný server.

Výhodou migrace tohoto nástroje je, že data lze migrovat také do starších verzí systému SQL Server. Je trochu obtížně použitelný, ale může být migrován na úrovni několika minut i s přibližně 1 milionem dat, takže je vhodný i pro migraci velkých dat. Všimněte si však, že zdrojový a cílový server musí být připojeny v privátní síti a nelze je používat mezi servery se zcela odlišnými sítěmi.

předpoklad

Vytvořte ověřování SYSTÉMU SQL Server nebo ověřování systému Windows, abyste měli přístup ke každému serveru SQL Server z počítače, který používá tento nástroj.

Tento tip používá tento nástroj ze serveru, ze kterého byl migrován.

procedura

V nabídce Start vyberte Importovat a exportovat data. Je součástí složky v SQL Server, ale název složky se liší v závislosti na verzi SQL Server, takže ji vyhledejte včas.

Klikněte na Další.

Vyberte databázi, ze které chcete migrovat. Tentokrát běží na zdrojovém serveru, takže můžete projít ověřováním systému Windows.

Poznámky k nastavení hodnoty názvu parametru
Zdroje dat SQL Server Nativní klient 11.0
Název serveru (místní) Pokud se jedná o jiný server nebo je zadán název instance, zadejte jeho hodnotu
autentizace Ověřování systému Windows
databáze Ukázkovádatabáze Zadejte název databáze, ze které chcete skutečně migrovat.

Dále nastavte nastavení připojení pro cílovou databázi. Ověřování serveru Sql Server se používá, protože je na jiném serveru.

Poznámky k nastavení hodnoty názvu parametru
Zdroje dat SQL Server Nativní klient 11.0
Název serveru Název cílového serveru (+ \název instance)]
autentizace Ověřování systému SQL Server
databáze Ukázkovádatabáze Zadejte název databáze, do které se má skutečně migrovat.

Zaškrtněte políčko "Kopírovat data z jedné nebo více tabulek nebo zobrazení" a klikněte na další tlačítko.

Vyberte tabulku, kterou chcete migrovat. Tento seznam také zobrazuje zobrazení, takže ho nekontrolujte.

Pokud jsou názvy zdrojové a cílové tabulky stejné, automaticky se vybere tabulka, která se má migrovat. Automaticky také nastaví mapování názvů sloupců, pokud jsou názvy sloupců stejné.

Zde je několik věcí, které je třeba mít na paměti:

  • Pokud je primární klíč automaticky číselně, migrace se nezdaří, pokud nezaškrtnete možnost "Povolit vložení ID" z možnosti "Upravit mapování".
  • Pokud nejsou k dispozici žádné tabulky, na které by bylo možné migrovat, vytvoří se tabulka.
  • Pokud cílová tabulka nemá stejný název sloupce, nebude migrována. Nepokračujte v migraci ani neměňte cílový sloupec.
  • Záznamy jsou přidávány ve výchozím nastavení. Chcete-li jej nahradit, odstraňte záznam v cílovém umístění předem nebo zaškrtněte políčko "Odstranit řádky v cílové tabulce" z "Upravit mapování"

Ve skutečnosti musíte zvážit výše uvedené, ale v tomto Tipu nejsou v cíli žádná data a neexistuje žádné automatické číslování, takže můžete pokračovat bez nastavení čehokoli.

Ujistěte se, že je zaškrtnuto políčko "Spustit nyní" a klikněte na tlačítko "Další".

Klikněte na Hotovo.

Spustí se migrace dat. Po dokončení všech migrací se zavřete.

Pokud se podíváte na cílovou databázi, můžete ověřit, že byla vytvořena tabulka, která neexistovala. Můžete také vidět, že pro existující tabulky neexistují žádné další sloupce.

Můžete ověřit, zda jsou data migrována. Sloupce poznámky v tabulce 2 nejsou mapovány a nebyly migrovány.