Procedura migracji wszystkich danych między serwerami w programie SQL Server

Data utworzenia strony :

środowisko

SQL Server
  • SQL Server 2019
  • SQL Server 2012

Sposób migracji migracji danych oraz zalety i wady każdego z nich

Istnieje kilka sposobów zbiorczej migracji danych bazy danych programu SQL Server do programu SQL Server na innych serwerach: Każdy z nich ma swoje zalety i wady podczas migracji, więc wybierz metodę, która najlepiej pasuje do Twojego środowiska.

Metoda migracji Łączność sieciowa między serweramiPresynchroniczne uwierzytelnianie układów tabeli rozmiarów plików podczas migracji do poprzednich wersji
Tworzenie kopii zapasowych i przywracanie baz danych Nie wymagane (przenoszenie plików) zły zwyczajny Niewymagane (automatyczna pełna wymiana) niepotrzebny
Dane wyjściowe jako SQL Nie wymagane (przenoszenie plików) Przejezdne duży Wymagane lub usunięte do tabeli niepotrzebny
Użyj narzędzia Importuj i eksportuj dane niezbędność Przejezdne bez W zależności od ustawień migracji konieczność

Warunek wstępny

  • Załóżmy, że sql Server i SQL Server Management Studio są zainstalowane na każdym serwerze.
  • Ta wskazówka ośmiela się, aby wersje serwera sql były inne.

Tworzenie przykładowych danych

Podczas omawiania migracji danych należy to zrobić w bazie danych z następującą konfiguracją tabeli:

Źródło migracji danych

SQL Server 2012

  • Tabela 1 (Kolumna:Klucz, Wartość)
  • Tabela 2 (Kolumna:Klucz, Wartość, Uwagi)
  • Tabela 3 (Kolumna:Klucz, Wartość)

Poniżej przedstawiono skrypt tworzenia bazy danych. Zmień ścieżkę w odpowiednim czasie.

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

Poniżej znajduje się skrypt tworzenia tabeli.

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

Poniżej przedstawiono dodatkowy skrypt rekordu:

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

Migracja danych do

SQL Server 2019

  • Tabela 1 (Kolumna:Klucz, Wartość)
  • Tabela 2 (kolumna:klucz, wartość)

Rekordy w każdej tabeli są puste.

Poniżej przedstawiono skrypt tworzenia bazy danych. Zmień ścieżkę w odpowiednim czasie.

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

Poniżej znajduje się skrypt tworzenia tabeli.

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 migracja kopii zapasowych i przywracania kopii zapasowych baz danych

Ta metoda polega na utworzeniu kopii zapasowej całej bazy danych jako pliku na serwerze źródłowym, skopiowaniu jej na serwer docelowy i pozyskaniu. W związku z tym wszystkie konfiguracje tabeli są ustawione na miejsce docelowe, z których wszystkie są takie same jak źródło.

Ponadto ta metoda nie pozwala na migrację z nowszej wersji programu SQL Server do starszej wersji. (Jeśli różnica wersji jest niewielka, może to być możliwe))

procedura

Uruchom program SQL Server Management Studio ze źródła. Wybierz folder, który pasuje do używanej wersji programu SQL Server.

Zaloguj się do serwera docelowego. Komputery korzystające z programu SQL Server Management Studio są w porządku na innych komputerach, ale te porady pozwalają wszystkim działać na własnych serwerach.

W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych i wybierz polecenie Kopia zapasowa dla zadań.

Usuń początkową ścieżkę kopii zapasowej z listy miejsc docelowych kopii zapasowych w prawym dolnym rogu.

Po usunięciu go kliknij przycisk Dodaj.

Kliknij przycisk zmień ścieżkę.

Myślę, że folder "Kopia zapasowa" jest domyślnie wybrany, więc wprowadź nazwę pliku do utworzenia kopii zapasowej w nazwie pliku poniżej i kliknij przycisk OK. Nazwa pliku jest opcjonalna, więc łatwo ją zrozumieć.

Kliknij przycisk OK.

Sprawdź, czy został dodany do listy, a następnie kliknij przycisk OK.

Ponieważ plik kopii zapasowej został utworzony w następującym folderze, zabiorę ten plik na serwer, na który chcę go przenieść. Ścieżka folderu zależy od wersji programu SQL Server i nazwy wystąpienia, więc sprawdź ją w odpowiednim czasie.

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

Stan po skopiowaniu na serwer docelowy. Jest on umieszczony w następującym folderze, ponieważ jest łatwiejszy do załadowania, jeśli umieścisz go w folderze Kopia zapasowa programu SQL Server. Zależy to również od wersji programu SQL Server i nazwy wystąpienia, dlatego należy je sprawdzić w odpowiednim czasie.

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

Uruchom program SQL Server Management Studio na serwerze, na który jest przeprowadzana migracja. Jesteś zalogowany na swoim serwerze tutaj.

W Eksploratorze obiektów kliknij prawym przyciskiem myszy docelową bazę danych, a następnie wybierz zadania, przywracanie i baza danych.

Upewnij się, że Ogólne jest zaznaczone w lewym wyborze strony, wybierz "Urządzenie" z "Źródła" po prawej stronie i kliknij przycisk przeglądania po prawej stronie.

Kliknij przycisk Dodaj.

Wybierz przyniesiony plik.

Wybierz "Opcje" z wyboru lewej strony i sprawdź następujące dwa. Jeśli zaznaczysz te dwa, możesz wymusić zamianę innego systemu podczas połączenia z bazą danych.

  • Zastępowanie istniejącej bazy danych
  • Zamykanie istniejącego połączenia z docelową bazą danych

Należy jednak pamiętać, że jeśli przywracanie nie powiedzie się z zaznaczoną opcją "Zamknij istniejące połączenie z docelową bazą danych", oryginalna baza danych może być niedostępna.

Podczas sprawdzania kliknij przycisk OK.

Można sprawdzić, czy konfiguracja tabeli i rekordy zostały w pełni zmigrowane.

Nawiasem mówiąc, jeśli spróbujesz przywrócić nowszą wersję bazy danych programu SQL Server do starszej wersji programu SQL Server, zobaczysz następujący błąd: Ta metoda migracji danych opiera się na tej samej wersji do siebie lub do nowszej wersji.

Porady: wyprowadzanie danych jako SQL (skrypt) i uruchamianie ich w docelowej bazie danych

W ten sposób można wyprowadzić wszystkie rekordy w tabeli jako instrukcje insert. Ponieważ instrukcje SQL są prawie takie same, w niektórych przypadkach można je zastosować do innych typów baz danych, niezależnie od wersji programu SQL Server.

Ponieważ jednak rekordy są pisane w celu wstawiania zdań jeden po drugim, rozmiar pliku wzrasta. Dlatego wraz ze wzrostem liczby rekordów jest bezużyteczna, więc jest to metoda, którą można zastosować, gdy liczba jest mała.

Generuje również kod SQL dla tabeli, z której został zmigrowany, więc nie jest dostępny, jeśli różni się od konfiguracji tabeli, do której jest migrowany. Można również uwzględnić tworzenie tabeli w języku SQL, ale należy usunąć tabelę raz w miejscu docelowym.

procedura

Uruchom program SQL Server Management Studio ze źródła. Wybierz folder, który pasuje do używanej wersji programu SQL Server.

Zaloguj się do serwera docelowego. Komputery korzystające z programu SQL Server Management Studio są w porządku na innych komputerach, ale te porady pozwalają wszystkim działać na własnych serwerach.

Kliknij prawym przyciskiem myszy docelową bazę danych i wybierz "Zadanie" i "Generuj skrypt".

Kliknij przycisk Dalej.

Możesz wybrać tabele, dla których chcesz przeprowadzić migrację danych. Zaznacz tutaj całość lub wybierz konkretną tabelę.

Ponieważ wyjściem jest SQL, możesz wybrać "Plik", "Schowek" lub "Pokaż w oknie". Po wybraniu kliknij przycisk "Zaawansowane" w prawym górnym rogu.

Wybierz opcję Tylko dane z listy "Typy danych do generowania skryptów" w grupie Ogólne.

Następnie wybierz "Dalej", aby potwierdzić. Widać, że SQL jest generowany. Wszystko, co pozostaje, to uruchomić ten SQL w miejscu docelowym.

Ponieważ jest to tylko instrukcja insert, jeśli chcesz, aby dane były takie same, musisz wcześniej usunąć wszystkie rekordy w miejscu docelowym.

Migrowanie konfiguracji tabel

Jeśli chcesz również przeprowadzić migrację konfiguracji tabel, ustaw poprzedni wybór "Typ danych do generowania skryptów" na Schemat i dane.

Skrypt tworzenia tabeli jest również generowany w następujący sposób: Jeśli chcesz użyć tego, zostanie on wykonany po usunięciu tabeli do migracji.

Generuje również skrypt tworzenia bazy danych, jeśli jest również dołączony.

Jak migrować dane przy użyciu importu i eksportu danych

Podczas instalowania programu SQL Server instalowane jest również narzędzie o nazwie Import i eksport danych. Można go użyć do migracji danych z tabeli na inny serwer.

Zaletą tej migracji narzędzi jest to, że dane można również migrować do starszych wersji programu SQL Server. Jest trochę trudny w użyciu, ale może być migrowany na poziomie kilku minut nawet z około 1 milionem danych, więc nadaje się również do migracji dużych danych. Należy jednak pamiętać, że serwer źródłowy i docelowy muszą być połączone w sieci prywatnej i nie mogą być używane między serwerami o zupełnie innych sieciach.

Warunek wstępny

Skompiluj uwierzytelnianie programu SQL Server lub uwierzytelnianie systemu Windows, aby uzyskać dostęp do każdego programu SQL Server z komputera korzystającego z tego narzędzia.

W tej poradzie jest używane to narzędzie z serwera, z którego zostało ono przeniesione.

procedura

Wybierz polecenie Importuj i eksportuj dane z menu Start. Jest on zawarty w folderze w programie SQL Server, ale nazwa folderu różni się w zależności od wersji programu SQL Server, więc poszukaj go w odpowiednim czasie.

Kliknij przycisk Dalej.

Wybierz bazę danych, z której chcesz przeprowadzić migrację. Tym razem działa na serwerze źródłowym, więc możesz przejść przez uwierzytelnianie systemu Windows.

Uwagi dotyczące
wartości ustawiania nazwy parametru
Źródła danych SQL Server Native Client 11.0
Nazwa serwera (lokalny) Jeśli jest to inny serwer lub określono nazwę instancji, podaj jej wartość
uwierzytelnianie Uwierzytelnianie systemu Windows
baza danych Przykładowa baza danych Wprowadź nazwę bazy danych, z której chcesz przeprowadzić migrację

Następnie ustaw ustawienia połączenia dla docelowej bazy danych. Uwierzytelnianie programu Sql Server jest używane, ponieważ znajduje się na innym serwerze.

Uwagi dotyczące
wartości ustawiania nazwy parametru
Źródła danych SQL Server Native Client 11.0
Nazwa serwera Nazwa serwera docelowego (+ \nazwa instancji)]
uwierzytelnianie Uwierzytelnianie programu SQL Server
baza danych Przykładowa baza danych Wprowadź nazwę bazy danych, do której ma zostać przeprowadzona migracja

Zaznacz "Kopiuj dane z jednej lub więcej tabel lub widoków" i kliknij przycisk Dalej.

Wybierz tabelę, którą chcesz przenieść. Ta lista pokazuje również widok, więc nie sprawdzaj go.

Jeśli nazwy tabeli źródłowej i docelowej są takie same, tabela do migracji jest wybierana automatycznie. Automatycznie ustawia również mapowanie nazw kolumn, jeśli nazwy kolumn są takie same.

Oto kilka rzeczy, o których należy pamiętać:

  • Jeśli klucz podstawowy jest automatycznie obliczany, migracja nie powiedzie się, jeśli nie zaznaczysz opcji "Zezwalaj na wstawianie identyfikatora" w sekcji "Edytuj mapowanie"
  • Jeśli nie ma tabel do migracji, tworzona jest tabela
  • Jeśli tabela docelowa nie ma tej samej nazwy kolumny, nie zostanie poddana migracji. Nie kontynuuj migracji ani nie zmieniaj kolumny docelowej.
  • Rekordy są dodawane domyślnie. Jeśli chcesz go zastąpić, usuń wcześniej rekord w miejscu docelowym lub zaznacz "Usuń wiersze w tabeli docelowej" z "Edytuj mapowanie"

W rzeczywistości musisz wziąć pod uwagę powyższe, ale w tym Poradniku nie ma danych w miejscu docelowym i nie ma automatycznej numeracji, więc możesz kontynuować bez ustawiania czegokolwiek.

Upewnij się, że "Uruchom teraz" jest zaznaczone i kliknij "Dalej".

Kliknij przycisk Gotowe.

Rozpocznie się migracja danych. Zamknij po zakończeniu wszystkich migracji.

Jeśli spojrzysz na docelową bazę danych, możesz sprawdzić, czy tabela, która nie istniała, została utworzona. Można również zobaczyć, że nie ma już kolumn dla istniejących tabel.

Możesz sprawdzić, czy dane są migrowane. Uwaga Kolumny w tabeli 2 nie są mapowane i nie zostały poddane migracji.