Veiksmai, kaip perkelti visus duomenis iš vieno serverio į kitą SQL serveryje
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.
perkeliantPerkė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.