Veiksmai, kaip perkelti visus duomenis iš vieno serverio į kitą SQL serveryje

Puslapio sukūrimo data :

Aplinkos

SQL serveris
  • SQL serveris 2019
  • SQL serveris 2012

Kaip perkeliamas duomenų perkėlimas ir kiekvieno iš jų privalumai ir trūkumai

Yra keletas būdų, kaip masiškai perkelti SQL serverio duomenų bazės duomenis į SQL serverį kituose serveriuose: Kiekvienas turi savo privalumų ir trūkumų migracijos metu, todėl pasirinkite metodą, kuris geriausiai tinka jūsų aplinkai.

perkeliant
Perkėlimo metodo tinklo ryšys tarp serveriųPrechroninis failų dydžio lentelės maketų autentifikavimasį ankstesnes versijas
Duomenų bazių atsarginių kopijų kūrimas ir atkūrimas Nebūtina (failų perkėlimas) blogas Paprastų Nebūtina (automatinis visiškas pakeitimas) Nereikalingų
Išvesties duomenys kaip SQL Nebūtina (failų perkėlimas) Pakenčiamas didelis Būtina arba panaikinta lentelėje Nereikalingų
Įrankio Duomenų importavimas ir eksportavimas naudojimas būtinumas Pakenčiamas be Priklausomai nuo perkėlimo parametrų Būtinybė

Prielaida

  • Tarkime, kad sql serveris ir SQL serverio valdymo studija yra įdiegti kiekviename serveryje.
  • Šie patarimai drįsta padaryti SQL serverio versijas kitokias.

Kurti duomenų pavyzdžius

Aptardami duomenų perkėlimą, tai darote duomenų bazėje naudodami šią lentelės konfigūraciją:

Duomenų perkėlimo šaltinis

SQL serveris 2012

  • 1 lentelė (stulpelis:raktas, reikšmė)
  • 2 lentelė (Stulpelis:Raktas, Reikšmė, Pastabos)
  • 3 lentelė (stulpelis:raktas, reikšmė)

Toliau pateikiamas duomenų bazės kūrimo scenarijus. Laiku pakeiskite kelią.

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

Žemiau pateikiamas lentelės kūrimo scenarijus.

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

Toliau pateikiamas papildomas įrašo scenarijus:

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

Duomenų perkėlimas į

SQL serveris 2019

  • 1 lentelė (stulpelis:raktas, reikšmė)
  • 2 lentelė (stulpelis:raktas, reikšmė)

Kiekvienos lentelės įrašai yra tušti.

Toliau pateikiamas duomenų bazės kūrimo scenarijus. Laiku pakeiskite kelią.

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

Žemiau pateikiamas lentelės kūrimo scenarijus.

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

Kaip duomenų bazės atsarginis kopijavimas ir perkėlimo atkūrimas

Šis metodas yra sukurti atsarginę visos duomenų bazės kaip šaltinio serverio failo kopiją, nukopijuoti ją į paskirties serverį ir nuryti. Todėl visos lentelės konfigūracijos nustatomos kaip paskirties vieta, kurios visos yra tokios pačios kaip šaltinis.

Be to, šis metodas neleidžia pereiti iš naujesnės SQL serverio versijos į senesnę versiją. (Jei versijos skirtumas yra mažas, tai gali būti įmanoma))

Procedūra

Paleiskite SQL serverio valdymo studiją iš šaltinio. Pasirinkite aplanką, atitinkantį jūsų SQL serverio versiją.

Prisijunkite prie tikslinio serverio. Kompiuteriai, naudojantys "SQL Server Management Studio", puikiai tinka kitiems kompiuteriams, tačiau šie patarimai leidžia jums visiems veikti savo serveriuose.

Objektų naršyklėje dešiniuoju pelės mygtuku spustelėkite duomenų bazę ir pasirinkite Atsarginė užduočių atsarginė kopija.

Panaikinkite pradinį atsarginės kopijos maršrutą atsarginių kopijų paskirties vietų sąraše apatiniame dešiniajame kampe.

Panaikinę jį, spustelėkite mygtuką Įtraukti.

Spustelėkite mygtuką Keisti maršrutą.

Manau, kad aplankas "Atsarginė kopija" pasirenkamas pagal numatytuosius nustatymus, todėl įveskite failo vardą, kad galėtumėte kurti atsargines kopijas žemiau esančiame failo pavadinime, ir spustelėkite mygtuką Gerai. Failo vardas yra neprivalomas, todėl jį lengva suprasti.

Spustelėkite mygtuką Gerai.

Patikrinkite, ar jis buvo įtrauktas į sąrašą, tada spustelėkite mygtuką Gerai.

Kadangi atsarginis failas buvo sukurtas šiame aplanke, nuvešiu šį failą į serverį, į kurį noriu jį perkelti. Aplanko maršrutas priklauso nuo SQL serverio versijos ir egzemplioriaus pavadinimo, todėl laiku patikrinkite jį.

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

Būsena po kopijavimo į paskirties serverį. Jis dedamas į šį aplanką, nes jį lengviau įkelti, jei jį įdėsite į SQL serverio atsarginės kopijos aplanką. Tai taip pat priklauso nuo SQL serverio versijos ir egzemplioriaus pavadinimo, todėl patikrinkite jį laiku.

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

Paleiskite SQL serverio valdymo studiją serveryje, į kurį perkeliate. Čia esate prisijungę prie savo serverio.

Objektų naršyklėje dešiniuoju pelės mygtuku spustelėkite paskirties duomenų bazę, tada pasirinkite Užduotys, Atkūrimas ir duomenų bazė.

Įsitikinkite, kad kairiojo puslapio pasirinktyje pasirinkta "Bendra", dešinėje pasirinkite "Įrenginys" ir dešinėje spustelėkite naršymo mygtuką.

Spustelėkite mygtuką Įtraukti.

Pasirinkite failą, kurį atnešėte.

Kairiajame puslapyje pasirinkite "Parinktys" ir patikrinkite šiuos du. Jei patikrinsite šiuos du, galite priversti kitą sistemą keistis, kai esate prisijungę prie duomenų bazės.

  • Perrašyti esamą duomenų bazę
  • Uždaryti esamą ryšį su paskirties duomenų baze

Tačiau atkreipkite dėmesį, kad jei atkūrimas nepavyksta, kai tikrinamas "Uždaryti esamą ryšį su paskirties duomenų baze", pradinė duomenų bazė gali būti nepasiekiama.

Pažymėję spustelėkite mygtuką Gerai.

Galite patikrinti, ar lentelės konfigūracija ir įrašai buvo visiškai perkelti.

Beje, jei bandysite atkurti naujesnę SQL serverio duomenų bazės versiją į senesnę SQL serverio versiją, pamatysite šią klaidą: Šis duomenų perkėlimo metodas grindžiamas ta pačia versija vienas kitam arba naujesnei versijai.

Kaip: išvesties duomenis kaip SQL (scenarijų) ir paleisti paskirties duomenų bazėje

Štai kaip išvesti visus lentelės įrašus kaip įterpti sakinius. Kadangi SQL sakiniai yra beveik vienodi, kai kuriais atvejais jie gali būti taikomi kitų tipų duomenų bazėms, neatsižvelgiant į SQL serverio versiją.

Tačiau, kadangi įrašai rašomi sakiniams įterpti po vieną, failo dydis didėja. Todėl, didėjant įrašų skaičiui, jis yra nenaudingas, todėl tai yra metodas, kurį galima naudoti, kai skaičius yra mažas.

Jis taip pat generuoja SQL lentelei, iš kurios jis buvo perkeltas, todėl jis nėra prieinamas, jei jis skiriasi nuo lentelės konfigūracijos, į kurią jis perkeliamas. Taip pat galite įtraukti lentelės kūrimą į SQL, bet turite panaikinti lentelę vieną kartą paskirties vietoje.

Procedūra

Paleiskite SQL serverio valdymo studiją iš šaltinio. Pasirinkite aplanką, atitinkantį jūsų SQL serverio versiją.

Prisijunkite prie tikslinio serverio. Kompiuteriai, naudojantys "SQL Server Management Studio", puikiai tinka kitiems kompiuteriams, tačiau šie patarimai leidžia jums visiems veikti savo serveriuose.

Dešiniuoju pelės mygtuku spustelėkite tikslinę duomenų bazę ir pasirinkite "Užduotis" ir "Generuoti scenarijų".

Spustelėkite Pirmyn.

Galite pasirinkti, kurioms lentelėms perkelti duomenis. Čia pasirinkite visą arba pasirinkite konkrečią lentelę.

Kadangi išvestis yra SQL, galite pasirinkti "Failas", "Mainų sritis" arba "Rodyti lange". Pasirinkę, viršutiniame dešiniajame kampe spustelėkite mygtuką "Išplėstinis".

Pasirinkite Duomenys tik iš grupės "Duomenų tipai scenarijams generuoti".

Po to pasirinkite "Kitas", kad patvirtintumėte. Galite matyti, kad SQL yra generuojamas. Viskas, kas liko, yra paleisti šį SQL paskirties vietoje.

Kadangi tai tik įterpimo sakinys, jei norite, kad duomenys būtų vienodi, turite iš anksto ištrinti visus paskirties vietos įrašus.

Taip pat perkelti lentelių konfigūracijas

Jei taip pat norite perkelti lentelių konfigūracijas, nustatykite ankstesnį pasirinkimą "Duomenų tipas scenarijams generuoti" į Schemą ir duomenis.

Lentelės kūrimo scenarijus taip pat generuojamas taip: Jei norite tai naudoti, jis bus įvykdytas panaikinus lentelę, kurią reikia perkelti.

Jis taip pat generuoja duomenų bazės kūrimo scenarijų, jei jis taip pat įtrauktas.

Kaip perkelti duomenis naudojant importavimo ir eksportavimo duomenis

Įdiegę SQL serverį, taip pat įdiegiate įrankį, pavadintą Importuoti ir eksportuoti duomenis. Jį galite naudoti duomenims perkelti iš lentelės į kitą serverį.

Šio įrankio perkėlimo privalumas yra tas, kad duomenis taip pat galima perkelti į senesnes SQL serverio versijas. Tai šiek tiek sunku naudoti, tačiau jis gali būti perkeltas kelių minučių lygiu net ir su maždaug 1 milijonu duomenų, todėl jis taip pat tinka didelėms duomenų perkėlimui. Tačiau atkreipkite dėmesį, kad šaltinio ir paskirties serveriai turi būti prijungti privačiame tinkle ir negali būti naudojami tarp serverių su visiškai skirtingais tinklais.

Prielaida

Sukurkite SQL serverio autentifikavimą arba "Windows" autentifikavimą, kad galėtumėte pasiekti kiekvieną SQL serverį iš kompiuterio, kuris naudoja šį įrankį.

Šis patarimas naudoja šį įrankį iš serverio, iš kurio jis buvo perkeltas.

Procedūra

Meniu Pradėti pasirinkite Importuoti ir eksportuoti duomenis. Jis įtrauktas į SQL serverio aplanką, tačiau aplanko pavadinimas skiriasi priklausomai nuo SQL serverio versijos, todėl ieškokite jo laiku.

Spustelėkite Pirmyn.

Pasirinkite duomenų bazę, iš kurios norite migruoti. Šį kartą jis veikia šaltinio serveryje, kad galėtumėte pereiti per "Windows" autentifikavimą.

Parametro pavadinimo nustatymo reikšmės pastabos
Duomenų šaltiniai SQL serverio vietinis klientas 11.0
Serverio pavadinimas (vietinis) Jei tai yra kitas serveris arba nurodytas egzemplioriaus pavadinimas, įdėkite jo reikšmę
autentifikavimas Windows autentifikavimas
duomenų bazė SampleDatabase Įveskite duomenų bazės, iš kurios norite iš tikrųjų perkelti, pavadinimą

Tada nustatykite paskirties duomenų bazės ryšio parametrus. Sql serverio autentifikavimas naudojamas, nes jis yra kitame serveryje.

Parametro pavadinimo nustatymo reikšmės pastabos
Duomenų šaltiniai SQL serverio vietinis klientas 11.0
Serverio pavadinimas Paskirties serverio pavadinimas (+ \egzemplioriaus pavadinimas)]
autentifikavimas SQL serverio autentifikavimas
duomenų bazė SampleDatabase Įveskite duomenų bazės, į kurią norite faktiškai pereiti, pavadinimą

Patikrinkite "Kopijuoti duomenis iš vienos ar kelių lentelių ar rodinių" ir spustelėkite kitą mygtuką.

Pasirinkite lentelę, kurią norite perkelti. Šiame sąraše taip pat rodomas rodinys, todėl netikrinkite jo.

Jei šaltinio ir paskirties lentelės pavadinimai yra vienodi, automatiškai pasirenkama perkeltina lentelė. Jis taip pat automatiškai nustato stulpelių pavadinimų susiejimą, jei stulpelių pavadinimai yra vienodi.

Štai keletas dalykų, kuriuos reikia nepamiršti:

  • Jei pirminis raktas yra automatiškai numeruotas, perkėlimas nepavyks, jei netikrinsite "Leisti ĮTERPTI ID" iš "Redaguoti susiejimą"
  • Jei nėra lentelių, į kurias būtų galima pereiti, sukuriama lentelė
  • Jei paskirties lentelė neturi to paties stulpelio pavadinimo, ji nebus perkelta. Nebekelkite perkelti ir nekeisti paskirties stulpelio.
  • Įrašai įtraukiami pagal numatytuosius nustatymus. Jei norite jį pakeisti, iš anksto panaikinkite įrašą paskirties vietoje arba pažymėkite "Naikinti paskirties lentelės eilutes" dalyje "Redaguoti susiejimą"

Tiesą sakant, jūs turite apsvarstyti tai, kas išdėstyta pirmiau, tačiau šiame patarime paskirties vietoje nėra duomenų ir nėra automatinio numeravimo, todėl galite tęsti nieko nenustatydami.

Įsitikinkite, kad pažymėta "Vykdyti dabar" ir spustelėkite "Pirmyn".

Spustelėkite Atlikta.

Prasideda duomenų perkėlimas. Uždarykite, kai visi perkėlimai bus baigti.

Jei pažvelgsite į paskirties duomenų bazę, galite patikrinti, ar buvo sukurta lentelė, kurios nebuvo. Taip pat galite matyti, kad nebėra esamų lentelių stulpelių.

Galite patikrinti, ar duomenys perkeliami. 2 lentelės pastabų stulpeliai nesusieti ir nebuvo perkelti.