Darbības, lai migrētu visus datus starp SQL Server serveriem

Lapas izveides datums :

vide

SQL Serveris
  • SQL Server 2019
  • SQL Server 2012

Kā tiek migrēta datu migrācija un katras priekšrocības un trūkumi

Ir vairāki veidi, kā migrēt SQL Server datu bāzes datus uz SQL Server citos serveros vairumā: Katram ir savas priekšrocības un trūkumi migrācijas laikā, tāpēc izvēlieties metodi, kas vislabāk atbilst jūsu videi.

Migrācijas metodes tīkla savienojamība starp serveriemIepriekšējā failu izmēru tabulu izkārtojumu autentifikācija migrēšanas laikā uz iepriekšējām versijām
Datu bāzu dublēšana un atjaunošana Nav nepieciešams (pārvietot failus) slikts Parasto Nav nepieciešams (automātiska pilnīga nomaiņa) Nevajadzīgu
Izvades dati kā SQL Nav nepieciešams (pārvietot failus) Izbraucams liels Nepieciešams vai izdzēsts tabulā Nevajadzīgu
Izmantojiet rīku Datu importēšana un eksportēšana nepieciešamība Izbraucams bez Atkarībā no migrācijas iestatījumiem nepieciešamība

Priekšnosacījumu

  • Pieņemsim, ka sql serveris un SQL Server Management Studio ir instalēti katrā serverī.
  • Šie padomi uzdrošinās padarīt SQL serveru versijas atšķirīgas.

Izveidot parauga datus

Apspriežot datu migrāciju, tas tiek darīts datu bāzē ar šādu tabulas konfigurāciju:

Datu migrācijas avots

SQL Server 2012

  • 1. tabula (kolonna:taustiņš, vērtība)
  • 2. tabula (kolonna:taustiņš, vērtība, piezīmes)
  • 3. tabula (kolonna:taustiņš, vērtība)

Tālāk ir norādīts datu bāzes izveides skripts. Mainiet ceļu savlaicīgi.

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

Zemāk ir tabulas izveides skripts.

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

Šis ir papildu ieraksta skripts:

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

Datu migrācija uz

SQL Server 2019

  • 1. tabula (kolonna:taustiņš, vērtība)
  • 2. tabula (kolonna:atslēga, vērtība)

Ieraksti katrā tabulā ir tukši.

Tālāk ir norādīts datu bāzes izveides skripts. Mainiet ceļu savlaicīgi.

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

Zemāk ir tabulas izveides skripts.

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

Kā datu bāzes dublēšana un migrācijas atjaunošana

Šī metode ir dublēt visu datu bāzi kā failu avota serverī, kopēt to mērķa serverī un uzņemt to. Tāpēc visas tabulu konfigurācijas ir iestatītas uz mērķi, un tās visas ir tādas pašas kā avots.

Turklāt šī metode neļauj migrēt no jaunākas SQL Server versijas uz vecāku versiju. (Ja versijas atšķirība ir maza, tas var būt iespējams))

Procedūru

Startējiet SQL Server pārvaldības studiju no avota. Izvēlieties mapi, kas atbilst jūsu SQL Server versijai.

Piesakieties mērķa serverī. Datoros, kuros izmanto SQL Server Management Studio, citos datoros viss ir kārtībā, taču šie padomi ļauj jums visiem darboties savos serveros.

Objektu pārlūkā ar peles labo pogu noklikšķiniet uz datu bāzes un atlasiet Dublēšana uzdevumiem.

Izdzēsiet sākotnējo dublēšanas ceļu dublējuma galamērķu sarakstā apakšējā labajā stūrī.

Dzēšot to, noklikšķiniet uz pogas Pievienot.

Noklikšķiniet uz pogas Mainīt ceļu.

Es domāju, ka mape "Backup" ir atlasīta pēc noklusējuma, tāpēc ievadiet faila nosaukumu, lai dublētu zemāk esošajā faila nosaukumā, un noklikšķiniet uz pogas Labi. Faila nosaukums nav obligāts, tāpēc padariet to viegli saprotamu.

Noklikšķiniet uz pogas Labi.

Pārbaudiet, vai tas ir pievienots sarakstam, un pēc tam noklikšķiniet uz pogas Labi.

Tā kā dublējuma fails ir izveidots nākamajā mapē, es aizvedīšu šo failu uz serveri, uz kuru vēlos to migrēt. Mapes ceļš ir atkarīgs no SQL Server versijas un instances nosaukuma, tāpēc pārbaudiet to savlaicīgi.

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

Statuss pēc kopēšanas mērķa serverī. Tas tiek ievietots šajā mapē, jo to ir vieglāk ielādēt, ja ievietojat to SQL Server mapē Dublējums. Tas ir atkarīgs arī no SQL Server versijas un instances nosaukuma, tāpēc, lūdzu, pārbaudiet to savlaicīgi.

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

Startējiet SQL Server pārvaldības studiju serverī, uz kuru migrējat. Jūs esat pieteicies savā serverī šeit.

Objektu pārlūkā ar peles labo pogu noklikšķiniet uz mērķa datu bāzes un pēc tam atlasiet Uzdevumi, Atjaunošana un Datu bāze.

Pārliecinieties, vai kreisās lapas atlasē ir atlasīts vispārīgs, labajā pusē esošajā sadaļā "Avots" atlasiet "Ierīce" un labajā pusē noklikšķiniet uz pārlūkošanas pogas.

Noklikšķiniet uz pogas Pievienot.

Atlasiet paņemto failu.

Kreisās lapas atlasē atlasiet "Opcijas" un pārbaudiet šādas divas. Ja pārbaudāt šos divus, varat piespiest kādu citu sistēmu apmainīt, kamēr ir izveidots savienojums ar datu bāzi.

  • Esošas datu bāzes pārrakstīšana
  • Esoša savienojuma slēgšana ar mērķa datu bāzi

Tomēr, lūdzu, ņemiet vērā, ka, ja atjaunošana neizdodas, ja ir atzīmēta opcija "Aizvērt esošo savienojumu ar mērķa datu bāzi", sākotnējā datu bāze var nebūt pieejama.

Veicot pārbaudi, noklikšķiniet uz pogas Labi.

Varat pārbaudīt, vai tabulas konfigurācija un ieraksti ir pilnībā migrēti.

Starp citu, ja mēģināt atjaunot jaunāku SQL Server datu bāzes versiju uz vecāku SQL Server versiju, tiek parādīta šāda kļūda: Šī datu migrācijas metode ir balstīta uz to pašu versiju vai uz jaunāku versiju.

Kā: izvadīt datus kā SQL (skriptu) un palaist tos mērķa datu bāzē

Tas ir veids, kā izvadīt visus tabulas ierakstus kā ievietot pārskatus. Tā kā SQL priekšraksti ir gandrīz vienādi, dažos gadījumos tos var lietot cita veida datu bāzēm neatkarīgi no SQL Server versijas.

Tomēr, tā kā ieraksti tiek rakstīti, lai ievietotu teikumus pa vienam, faila lielums palielinās. Tāpēc, palielinoties ierakstu skaitam, tas ir bezjēdzīgi, tāpēc tā ir metode, ko var izmantot, ja skaits ir mazs.

Tas arī ģenerē SQL tabulai, no kuras tas tika migrēts, tāpēc tas nav pieejams, ja tas atšķiras no tabulas konfigurācijas, uz kuru tas tiek migrēts. Varat arī iekļaut tabulas izveidi SQL, bet tabula ir jāizdzēš vienu reizi galamērķī.

Procedūru

Startējiet SQL Server pārvaldības studiju no avota. Izvēlieties mapi, kas atbilst jūsu SQL Server versijai.

Piesakieties mērķa serverī. Datoros, kuros izmanto SQL Server Management Studio, citos datoros viss ir kārtībā, taču šie padomi ļauj jums visiem darboties savos serveros.

Ar peles labo pogu noklikšķiniet uz mērķa datu bāzes un atlasiet "Uzdevums" un "Ģenerēt skriptu".

Noklikšķiniet uz Tālāk.

Varat izvēlēties, kurām tabulām migrēt datus. Šeit atlasiet visu vai atlasiet konkrētu tabulu.

Tā kā izvade ir SQL, varat izvēlēties "Fails", "Starpliktuve" vai "Rādīt logā". Pēc atlasīšanas augšējā labajā stūrī noklikšķiniet uz pogas "Papildu".

Atlasiet Dati tikai no "Datu tipi skriptu ģenerēšanai" grupā Vispārīgi.

Pēc tam atlasiet "Tālāk", lai apstiprinātu. Var redzēt, ka SQL ir ģenerēts. Atliek tikai palaist šo SQL galamērķī.

Tā kā tas ir tikai ievietošanas priekšraksts, ja vēlaties, lai dati būtu vienādi, visi ieraksti galamērķī ir jāizdzēš iepriekš.

Migrēt arī tabulu konfigurācijas

Ja vēlaties migrēt arī tabulu konfigurācijas, iestatiet iepriekšējo atlasi "Datu tips skriptu ģenerēšanai" uz Shēma un Dati.

Tabulas izveides skripts tiek ģenerēts arī šādi: Ja vēlaties to izmantot, tas tiks izpildīts pēc migrējamās tabulas dzēšanas.

Tas arī ģenerē datu bāzes izveides skriptu, ja tas ir iekļauts.

Kā migrēt datus, izmantojot datu importēšanu un eksportēšanu

Instalējot SQL Server, instalējat arī rīku ar nosaukumu Importēt un eksportēt datus. To var izmantot, lai migrētu datus no tabulas uz citu serveri.

Šī rīka migrācijas priekšrocība ir tā, ka datus var migrēt arī uz vecākām SQL Server versijām. To ir nedaudz grūti izmantot, bet to var migrēt vairāku minūšu līmenī pat ar aptuveni 1 miljonu datu, tāpēc tas ir piemērots arī lielai datu migrācijai. Tomēr ņemiet vērā, ka avota un mērķa serveriem jābūt savienotiem privātā tīklā un tos nevar izmantot starp serveriem ar pilnīgi atšķirīgiem tīkliem.

Priekšnosacījumu

Veidojiet SQL Server autentifikāciju vai Windows autentifikāciju, lai katram SQL Serverim varētu piekļūt no datora, kas izmanto šo rīku.

Šie padomi izmanto šo rīku no servera, no kura tas tika migrēts.

Procedūru

Izvēlnē Sākt atlasiet Importēt un eksportēt datus. Tas ir iekļauts SQL Server mapē, bet mapes nosaukums mainās atkarībā no SQL Server versijas, tāpēc meklējiet to savlaicīgi.

Noklikšķiniet uz Tālāk.

Atlasiet datu bāzi, no kuras vēlaties migrēt. Šoreiz tas darbojas avota serverī, lai jūs varētu iziet cauri Windows autentifikācijai.

Parametra nosaukuma iestatījuma vērtības piezīmes
Datu avoti SQL Server vietējais klients 11.0
Servera nosaukums (vietējais) Ja tas ir cits serveris vai ir norādīts instances nosaukums, lūdzu, ievietojiet tā vērtību
Autentifikācijas Windows autentifikācija
datu bāze Paraugadatu bāze Ievadiet tās datu bāzes nosaukumu, no kuras faktiski vēlaties migrēt

Pēc tam iestatiet mērķa datu bāzes savienojuma iestatījumus. Sql Server autentifikācija tiek izmantota, jo tā atrodas citā serverī.

Parametra nosaukuma iestatījuma vērtības piezīmes
Datu avoti SQL Server vietējais klients 11.0
Servera nosaukums Mērķa servera nosaukums (+ \instances nosaukums)]
Autentifikācijas SQL Server autentifikācija
datu bāze Paraugadatu bāze Ievadiet datu bāzes nosaukumu, uz kuru faktiski migrēt

Atzīmējiet "Kopēt datus no vienas vai vairākām tabulām vai skatiem" un noklikšķiniet uz nākamās pogas.

Atlasiet tabulu, kuru vēlaties migrēt. Šajā sarakstā tiek rādīts arī skats, tāpēc nepārbaudiet to.

Ja avota un mērķa tabulu nosaukumi ir vienādi, migrējamā tabula tiek atlasīta automātiski. Tas arī automātiski iestata kolonnu nosaukumu kartēšanu, ja kolonnu nosaukumi ir vienādi.

Šeit ir dažas lietas, kas jāpatur prātā:

  • Ja primārā atslēga ir automātiski numurēta, migrācija neizdosies, ja sadaļā "Rediģēt kartēšanu" nepārbaudīsiet "Atļaut ID ievietošanu"
  • Ja nav tabulu, uz kurām migrēt, tiek izveidota tabula
  • Ja mērķa tabulai nav vienāds kolonnas nosaukums, tā netiks migrēta. Neturpiniet migrēt vai mainīt mērķa kolonnu.
  • Ieraksti tiek pievienoti pēc noklusējuma. Ja vēlaties to aizstāt, iepriekš izdzēsiet ierakstu galamērķī vai atzīmējiet "Dzēst rindas mērķa tabulā" sadaļā "Rediģēt kartēšanu"

Faktiski jums ir jāapsver iepriekš minētais, bet šajos padomos galamērķī nav datu un nav automātiskas numerācijas, tāpēc jūs varat turpināt, neko nenosakot.

Pārliecinieties, vai ir atzīmēta opcija "Run Now", un noklikšķiniet uz "Tālāk".

Noklikšķiniet uz Gatavs.

Sākas datu migrācija. Aizvērt, kad visas migrēšanas ir pabeigtas.

Ja aplūkojat mērķa datu bāzi, varat pārbaudīt, vai ir izveidota neesoša tabula. Var arī redzēt, ka esošajām tabulām vairs nav kolonnu.

Varat pārbaudīt, vai dati tiek migrēti. Piezīmju kolonnas 2. tabulā nav kartētas un nav migrētas.