Trin til migrering af alle data mellem servere i SQL Server

Dato for oprettelse af side :

miljø

SQL Server
  • SQL Server 2019
  • SQL Server 2012

Hvordan datamigrering migreres og fordele og ulemper ved hver

Der er flere måder at overføre SQL Server-databasedata til SQL Server på andre servere på én gang: Hver har sine fordele og ulemper under migrering, så vælg den metode, der passer bedst til dit miljø.

af
Overførselsmetode Netværksforbindelse mellem servereForsynkron godkendelsefilstørrelsestabellayout under migrering til tidligere versioner
Sikkerhedskopiering og gendannelse af databaser Ikke påkrævet (flyt filer) Dårlig sædvanlig Ikke påkrævet (automatisk fuld udskiftning) unødvendig
Output data som SQL Ikke påkrævet (flyt filer) Godkendt stor Påkrævet eller slettet til tabel unødvendig
Brug værktøjet Import og eksport af data uundværlighed Godkendt uden Afhængigt af dine migreringsindstillinger nødvendighed

forudsætning

  • Antag, at sql server og SQL Server Management Studio er installeret på hver server.
  • Dette tip tør gøre sql server-versioner forskellige.

Oprette eksempeldata

Når du diskuterer dataoverførsel, gør du det i databasen med følgende tabelkonfiguration:

Dataoverførselskilde

SQL Server 2012

  • Tabel 1 (Kolonne:Nøgle, værdi)
  • Tabel 2 (Kolonne:Nøgle, værdi, bemærkninger)
  • Tabel 3 (Kolonne:Nøgle, værdi)

Følgende er et script til oprettelse af databaser. Skift stien rettidigt.

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

Nedenfor er et tabeloprettelsesscript.

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

Følgende er et ekstra postscript:

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

Dataoverførsel til

SQL Server 2019

  • Tabel 1 (Kolonne:Nøgle, værdi)
  • Tabel 2 (Kolonne:Nøgle, værdi)

Posterne i hver tabel er tomme.

Følgende er et script til oprettelse af databaser. Skift stien rettidigt.

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

Nedenfor er et tabeloprettelsesscript.

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

Sådan sikkerhedskopierer og gendanner database migrering

Denne metode er at sikkerhedskopiere hele databasen som en fil på kildeserveren, kopiere den til destinationsserveren og indtage den. Derfor er alle tabelkonfigurationer indstillet til destinationen, som alle er de samme som kilden.

Denne metode tillader dig heller ikke at migrere fra en nyere version af SQL Server til en ældre version. (Hvis versionsforskellen er lille, kan det være muligt))

procedure

Start SQL Server Management Studio fra kilden. Vælg en mappe, der matcher din SQL Server-version.

Log ind på målserveren. Pc'er, der bruger SQL Server Management Studio, er fine på andre pc'er, men dette tip giver jer alle mulighed for at operere på jeres egne servere.

Højreklik på databasen i Object Explorer, og vælg Backup for Tasks.

Slet den oprindelige backupsti på listen over backupdestinationer i nederste højre hjørne.

Når du sletter den, skal du klikke på knappen Tilføj.

Klik på knappen Skift sti.

Jeg tror, at mappen "Backup" er valgt som standard, så indtast filnavnet for at sikkerhedskopiere i filnavnet nedenfor, og klik på OK-knappen. Filnavnet er valgfrit, så gør det let at forstå.

Klik på knappen OK.

Kontrollér, at den er føjet til listen, og klik derefter på knappen OK.

Da sikkerhedskopifilen er oprettet i den følgende mappe, tager jeg denne fil til den server, som jeg vil migrere den til. Mappestien afhænger af versionen af SQL Server og navnet på forekomsten, så kontroller den rettidigt.

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

Status efter kopiering til destinationsserveren. Den placeres i følgende mappe, fordi den er lettere at indlæse, hvis du placerer den i mappen Backup på SQL Server. Dette afhænger også af versionen af SQL Server og instansnavnet, så tjek det rettidigt.

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

Start SQL Server Management Studio på den server, du migrerer til. Du er logget ind på din server her.

Højreklik på destinationsdatabasen i Object Explorer, og vælg derefter Opgaver, Gendan og Database.

Sørg for, at Generelt er valgt i venstre sidevalg, vælg "Enhed" fra "Kilde" til højre, og klik på knappen Gennemse til højre.

Klik på knappen Tilføj.

Vælg den fil, du har medbragt.

Vælg "Indstillinger" fra valget af venstre side og kontroller de følgende to. Hvis du kontrollerer disse to, kan du tvinge et andet system til at bytte, mens du er tilsluttet databasen.

  • Overskriv en eksisterende database
  • Luk en eksisterende forbindelse til destinationsdatabasen

Bemærk dog, at hvis gendannelsen mislykkes med "Luk eksisterende forbindelse til destinationsdatabasen" er markeret, er den oprindelige database muligvis ikke tilgængelig.

Når du tjekker, skal du klikke på knappen OK.

Du kan kontrollere, at tabelkonfigurationen og posterne er blevet fuldt overført.

Hvis du i øvrigt forsøger at gendanne en nyere version af en SQL Server-database til en ældre version af SQL Server, vil du se følgende fejl: Denne metode til dataoverførsel er baseret på den samme version til hinanden eller til en nyere version.

Fremgangsmåde: Output data som SQL (Script) og Kør dem på destinationsdatabasen

Sådan udskrives alle poster i en tabel som indsættelsessætninger. Da SQL-sætninger er næsten ens, kan de i nogle tilfælde anvendes på andre typer databaser, uanset versionen af SQL Server.

Men da poster er skrevet for at indsætte sætninger en efter en, øges filstørrelsen. Derfor, da antallet af poster stiger, er det ubrugeligt, så det er en metode, der kan bruges, når antallet er lille.

Det genererer også SQL til den tabel, hvorfra den blev migreret, så den er ikke tilgængelig, hvis den er forskellig fra den tabelkonfiguration, som den migreres til. Du kan også medtage oprettelsen af en tabel i SQL, men du skal slette tabellen én gang på destinationen.

procedure

Start SQL Server Management Studio fra kilden. Vælg en mappe, der matcher din SQL Server-version.

Log ind på målserveren. Pc'er, der bruger SQL Server Management Studio, er fine på andre pc'er, men dette tip giver jer alle mulighed for at operere på jeres egne servere.

Højreklik på måldatabasen og vælg "Opgave" og "Generer script".

Klik på Næste.

Du kan vælge, hvilke tabeller der skal overføres data for. Vælg alle, eller vælg en bestemt tabel her.

Da output er SQL, kan du vælge "File", "Clipboard" eller "Vis i vindue". Når du er valgt, skal du klikke på knappen "Avanceret" øverst til højre.

Vælg Kun data fra "Typer af data til generering af scripts" i gruppen Generelt.

Vælg derefter "Næste" for at bekræfte. Du kan se, at SQL genereres. Alt, hvad der er tilbage, er at køre denne SQL på destinationen.

Da det kun er en indsættelsessætning, skal du slette alle poster på destinationen på forhånd, hvis du vil have dataene til at være de samme.

Overfør også tabelkonfigurationer

Hvis du også vil overføre tabelkonfigurationer, skal du angive det forrige valg af "Type data til generering af scripts" til Skema og Data.

Et script til oprettelse af en tabel genereres også som følger: Hvis du vil bruge dette, udføres det, når du har slettet den tabel, der skal migreres.

Det genererer også et databaseoprettelsesscript, hvis det også er inkluderet.

Sådan overfører du data ved hjælp af Import og eksport af data

Når du installerer SQL Server, installerer du også et værktøj kaldet Import og eksport af data. Du kan bruge den til at overføre data fra en tabel til en anden server.

Fordelen ved denne værktøjsmigrering er, at data også kan migreres til ældre versioner af SQL Server. Det er lidt vanskeligt at bruge, men det kan migreres på niveau med flere minutter, selv med ca. 1 million data, så det er også velegnet til stor datamigrering. Bemærk dog, at kilde- og destinationsserverne skal være forbundet på et privat netværk og ikke kan bruges mellem servere med helt forskellige netværk.

forudsætning

Byg SQL Server-godkendelse eller Windows-godkendelse, så du kan få adgang til hver SQL Server fra en pc, der bruger dette værktøj.

Dette tip bruger dette værktøj fra den server, hvorfra det blev migreret.

procedure

Vælg Importér og eksportér data i menuen Start. Det er inkluderet i en mappe i SQL Server, men mappenavnet varierer afhængigt af versionen af SQL Server, så kig efter det rettidigt.

Klik på Næste.

Vælg den database, du vil overføre fra. Denne gang kører den på kildeserveren, så du kan passere gennem Windows-godkendelse.

Bemærkninger til indstilling af parameternavn
Datakilder SQL Server Native Client 11.0
Server navn (lokalt) Hvis det er en anden server, eller der er angivet et instansnavn, skal du angive dets værdi
Godkendelse Windows-godkendelse
database SampleDatabase Indtast navnet på den database, hvorfra du rent faktisk vil migrere

Indstil derefter forbindelsesindstillingerne for destinationsdatabasen. Sql Server-godkendelse bruges, fordi den er på en anden server.

Bemærkninger til indstilling af parameternavn
Datakilder SQL Server Native Client 11.0
Server navn Målservernavn (+ \ forekomstnavn)]
Godkendelse SQL Server-godkendelse
database SampleDatabase Indtast navnet på den database, der rent faktisk skal migreres til

Marker "Kopier data fra en eller flere tabeller eller visninger", og klik på den næste knap.

Vælg den tabel, du vil overføre. Denne liste viser også visningen, så tjek den ikke.

Hvis kilde- og destinationstabelnavnene er de samme, vælges den tabel, der skal overføres, automatisk. Den indstiller også automatisk tilknytningen af kolonnenavne, hvis kolonnenavnene er de samme.

Her er nogle ting, du skal huske på:

  • Hvis den primære nøgle er automatisk tal, mislykkes overførslen, hvis du ikke markerer "Tillad indsættelse af id" fra "Rediger tilknytning"
  • Hvis der ikke er nogen tabeller at overføre til, oprettes der en tabel
  • Hvis destinationstabellen ikke har det samme kolonnenavn, overføres den ikke. Fortsæt ikke med at overføre eller ændre destinationskolonnen.
  • Poster tilføjes som standard. Hvis du vil erstatte den, skal du slette posten på destinationen på forhånd eller markere "Slet rækker i destinationstabellen" fra "Rediger tilknytning"

Faktisk skal du overveje ovenstående, men i dette tip er der ingen data på destinationen, og der er ingen automatisk nummerering, så du kan fortsætte uden at indstille noget.

Sørg for, at "Kør nu" er markeret, og klik på "Næste".

Klik på OK.

Dataoverførsel begynder. Luk, når alle vandringer er fuldført.

Hvis du ser på måldatabasen, kan du kontrollere, at der er oprettet en tabel, der ikke eksisterede. Du kan også se, at der ikke er flere kolonner til eksisterende tabeller.

Du kan bekræfte, at dataene overføres. Bemærk, at kolonnerne i tabel 2 ikke er tilknyttet og ikke er blevet overført.