Стъпки за мигриране на всички данни между сървъри в SQL Server

Дата на създаване на страница :

околна среда

SQL сървър
  • SQL Сървър 2019
  • SQL Сървър 2012 г.

Как се мигрира миграцията на данни и предимствата и недостатъците на всяка

Има няколко начина за мигриране на данни на SQL Server база данни на SQL Server на други сървъри в насипно състояние: Всеки има своите предимства и недостатъци по време на миграцията, така че изберете метода, който най-добре отговаря на вашата среда.

на
Миграция метод мрежова свързаност между сървъриПредишно-синхронно удостоверяванеоформления на таблици за размера на файла по време на миграция към минали версии
Архивиране и възстановяване на бази данни Не се изисква (преместване на файлове) Лош обикновен Не се изисква (автоматична пълна замяна) ненужен
Изходни данни като SQL Не се изисква (преместване на файлове) Проходим голям Задължително или изтрито в таблицата ненужен
Използване на инструмента Импортиране и експортиране на данни незаменимост Проходим без В зависимост от настройките ви за миграция Необходимост

Предпоставка

  • Да предположим, че SQL Server и SQL Server management Studio са инсталирани на всеки сървър.
  • Тези съвети се осмеляват да направят версиите на SQL server различни.

Създаване на примерни данни

При обсъждане на миграцията на данни го правите в базата данни със следната конфигурация на таблицата:

Източник на миграция на данни

SQL Сървър 2012 г.

  • Таблица 1 (колона:ключ, стойност)
  • Таблица 2 (Колона:Ключ, Стойност, Забележки)
  • Таблица 3 (колона:ключ, стойност)

По-долу е скрипт за създаване на база данни. Променете пътя своевременно.

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

По-долу е скрипт за създаване на таблица.

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

По-долу е допълнителен скрипт за запис:

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

Миграция на данни към

SQL Сървър 2019

  • Таблица 1 (колона:ключ, стойност)
  • Таблица 2 (колона:ключ, стойност)

Записите във всяка таблица са празни.

По-долу е скрипт за създаване на база данни. Променете пътя своевременно.

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

По-долу е скрипт за създаване на таблица.

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

Как архивирането на бази данни и възстановяването на миграцията

Този метод е да направите резервно копие на цялата база данни като файл на сървъра източник, да я копирате в сървъра местоназначение и да я въведете. Затова всички конфигурации на таблицата са зададени на местоназначението, всички от които са същите като източника.

Също така този метод не ви позволява да мигрирате от по-нова версия на SQL Server към по-стара версия. (Ако разликата във версията е малка, може да е възможно))

процедура

Стартирайте SQL Server управление Studio от източника. Изберете папка, която съответства на вашата версия на SQL Server.

Влезте в целевия сървър. Компютрите, използващи SQL Server Management Studio, са добре на други персонални компютри, но този Съвети ви позволява всички да работите на собствените си сървъри.

От Object Explorer щракнете с десния бутон върху базата данни и изберете Архивиране за задачи.

Изтрийте първоначалния път за архивиране в списъка с дестинации за архивиране в долния десен ъгъл.

Когато го изтриете, щракнете върху бутона Добавяне.

Кликнете върху бутона за промяна на пътя.

Мисля, че папката "Архивиране" е избрана по подразбиране, така че въведете името на файла, за да направите резервно копие в името на файла по-долу и щракнете върху OK бутон. Името на файла не е задължително, така че го направете лесен за разбиране.

Щракнете върху бутона OK.

Проверете дали е добавен към списъка и след това щракнете върху бутона OK.

Тъй като архивният файл е създаден в следната папка, ще занеса този файл на сървъра, към който искам да го мигрирам. Пътят на папката зависи от версията на SQL Server и името на екземпляра, така че го проверете своевременно.

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

Състояние след копиране в сървъра местоназначение. Той се поставя в следната папка, защото е по-лесно да се зареди, ако го поставите в папката архивиране на SQL Server. Това зависи и от версията на SQL Server и името на екземпляра, така че, моля, проверете го своевременно.

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

Стартирайте SQL Server management Studio на сървъра, към който мигрирате. Вие сте влезли във вашия сървър тук.

От Object Explorer щракнете с десния бутон върху целевата база данни и след това изберете Задачи, Възстановяване и база данни.

Уверете се, че General е избран в избора на лявата страница, изберете "Устройство" от "Източник" вдясно и кликнете върху бутона за преглед вдясно.

Кликнете върху бутона Добавяне.

Изберете файла, който сте донесли.

Изберете "Опции" от избора на лявата страница и проверете следните две. Ако проверите тези две, можете да принудите някои други системи да разменят, докато са свързани към базата данни.

  • Презаряне на съществуваща база данни
  • Затваряне на съществуваща връзка към базата данни местоназначение

Въпреки това, моля, имайте предвид, че ако възстановяването е неуспешно с "Затвори съществуваща връзка към базата данни местоназначение" е отметнато, първоначалната база данни може да не е налична.

Когато проверите, щракнете върху бутона OK.

Можете да проверите дали конфигурацията на таблицата и записите са напълно мигрирани.

Между тях, ако се опитате да възстановите по-нова версия на база данни на SQL Server по-стара версия на SQL Server, ще видите следната грешка: Този метод за миграция на данни се основава на една и съща версия един към друг или на по-нова версия.

Как да: Изходни данни като SQL (скрипт) и да го стартирате на базата данни местоназначение

Това е как да изведете всички записи в таблица като вмъкване на извлечения. Тъй като SQL отчетите са почти еднакви, те могат да бъдат приложени към други видове бази данни в някои случаи, независимо от версията на SQL Server.

Въпреки това, тъй като записите са написани за вмъкване на изречения един по един, размерът на файла се увеличава. Ето защо, тъй като броят на записите се увеличава, той е безполезен, така че това е метод, който може да се използва, когато броят е малък.

Той също така генерира SQL за таблицата, от която е била мигрирана, така че не е достъпна, ако е различна от конфигурацията на таблицата, към която е мигрирана. Можете също да включите създаването на таблица в SQL, но трябва да изтриете таблицата веднъж в местоназначението.

процедура

Стартирайте SQL Server управление Studio от източника. Изберете папка, която съответства на вашата версия на SQL Server.

Влезте в целевия сървър. Компютрите, използващи SQL Server Management Studio, са добре на други персонални компютри, но този Съвети ви позволява всички да работите на собствените си сървъри.

Щракнете с десния бутон върху целевата база данни и изберете "Задача" и "Генериране на скрипт".

Щракнете върху напред.

Можете да изберете за кои таблици да мигрирате данни. Изберете всички или изберете конкретна таблица тук.

Тъй като изходът е SQL, можете да изберете "Файл", "Клипборд" или "Покажи в прозорец". След като сте избрали, кликнете върху бутона "Разширени" горе вдясно.

Изберете Данни само от "Видове данни за генериране на скриптове" в групата Общи.

След това изберете "Напред", за да потвърдите. Можете да видите, че SQL се генерира. Остава само да стартирате този SQL на местоназначението.

Тъй като това е просто декларация за вмъкване, ако искате данните да бъдат еднакви, трябва предварително да изтриете всички записи в местоназначението.

Мигриране на конфигурации на таблици, както и

Ако искате също да мигрирате конфигурациите на таблици, задайте предишната селекция "Тип данни за генериране на скриптове" на Схема и Данни.

Също така се генерира скрипт за създаване на таблица, както следва: Ако искате да използвате това, то ще бъде изпълнено след изтриване на таблицата, която трябва да бъде мигрирана.

Той също така генерира скрипт за създаване на база данни, ако той също е включен.

Как да мигрирате данни чрез импортиране и експортиране на данни

Докато инсталирате SQL Server, инсталирате и инструмент, наречен Импортиране и експортиране на данни. Можете да го използвате за мигриране на данни от таблица към друг сървър.

Предимството на този инструмент миграция е, че данните също могат да бъдат мигрирани към по-стари версии на SQL Server. Малко е трудно да се използва, но може да се мигрира на ниво от няколко минути дори с около 1 милион данни, така че е подходящ и за миграция на големи данни. Имайте предвид обаче, че източниците и сървърите местоназначение трябва да бъдат свързани в частна мрежа и не могат да се използват между сървъри с напълно различни мрежи.

Предпоставка

Изграждане на удостоверяване на SQL Server или windows удостоверяване, така че можете да получите достъп до всеки SQL Server от компютър, който използва този инструмент.

Този Съвети използва този инструмент от сървъра, от който е бил мигриран.

процедура

Изберете Импортиране и експортиране на данни от менюто "Старт". Тя е включена в папка в SQL Server, но името на папката варира в зависимост от версията на SQL Server, така че потърсете го своевременно.

Щракнете върху напред.

Изберете базата данни, от която искате да мигрирате. Този път тя се изпълнява на сървъра източник, така че можете да преминете през Windows удостоверяване.

Параметри
име настройка стойност забележки
Източници на данни Роден клиент на SQL Server 11.0
Име на сървъра (местно) Ако е различен сървър или е зададено име на екземпляр, моля, поставете стойността му
удостоверяване Удостоверяване на Windows
база данни Примерна База данни Въведете името на базата данни, от която искате действително да мигрирате

След това задайте настройките за връзка за целевата база данни. Sql Server удостоверяване се използва, защото тя е на друг сървър.

Параметри
име настройка стойност забележки
Източници на данни Роден клиент на SQL Server 11.0
Име на сървъра Име на целеви сървър (+ \име на екземпляр)]
удостоверяване Удостоверяване на SQL Сървър
база данни Примерна База данни Въведете името на базата данни, за да мигрирате действително към

Проверете "Копиране на данни от една или повече таблици или изгледи" и кликнете върху следващия бутон.

Изберете таблицата, която искате да мигрирате. Този списък показва и изгледа, така че не го проверявайте.

Ако имената на таблиците източник и местоназначение са еднакви, таблицата, която трябва да се мигрира, автоматично се избира. Той също така автоматично задава съпоставянето на имената на колоните, ако имената на колоните са еднакви.

Ето някои неща, които трябва да имате предвид:

  • Ако основният ключ е автонумериран, миграцията ще е неуспешна, ако не проверите "Разреши вмъкване на ИД" от "Редактиране на съпоставяне"
  • Ако няма таблици, към които да мигрирате, се създава таблица
  • Ако таблицата местоназначение няма същото име на колона, тя няма да бъде мигрирана. Не продължавайте да мигрирате и не променяйте колоната местоназначение.
  • Записите се добавят по подразбиране. Ако искате да го замените, изтрийте записа в местоназначението предварително или проверете "Изтриване на редове в таблицата местоназначение" от "Редактиране на съпоставяне"

Всъщност, трябва да разгледате горното, но в този Съвети, няма данни в местоназначението и няма автоматично номериране, така че можете да продължите, без да зададете нищо.

Уверете се, че "Run Now" е отметнато и кликнете върху "Напред".

Кликнете върху Готово.

Започва миграцията на данни. Затворете, когато всички миграции приключат.

Ако погледнете целевата база данни, можете да проверите дали е създадена таблица, която не е съществувала. Можете също да видите, че няма повече колони за съществуващи таблици.

Можете да проверите дали данните се мигрират. Забележка колони в таблица 2 не са нанесени и не са били мигрирани.