Procedura migracji wszystkich danych między serwerami w programie SQL Server
ś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ącewartoś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ącewartoś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.