Pași pentru a migra toate datele între servere în SQL Server

Data creării paginii :

mediu

SQL Server
  • SQL Server 2019
  • SQL Server 2012

Cum este migrată migrarea datelor și avantajele și dezavantajele fiecăruia

Există mai multe modalități de a migra datele bazei de date SQL Server la SQL Server pe alte servere în bloc: Fiecare are avantajele și dezavantajele sale în timpul migrării, așa că alegeți metoda care se potrivește cel mai bine mediului dvs.

a
Metoda de migrare Conectivitate în rețea între servere Autentificarea sincronă machetelor de tabel de dimensiune de fișier în timpul migrării la versiunile anterioare
Copierea de rezervă și restaurarea bazelor de date Nu este necesar (mutați fișierele) rău ordinar Nu este necesar (înlocuire automată completă) inutil
Date de ieșire ca SQL Nu este necesar (mutați fișierele) Acceptabil mare Obligatoriu sau șters în tabel inutil
Utilizarea instrumentului Import și export date indispensabilitate Acceptabil fără În funcție de setările de migrare necesitate

Condiție prealabilă

  • Să presupunem că sql server și SQL Server Management Studio sunt instalate pe fiecare server.
  • Acest sfaturi îndrăznește să facă versiunile de server SQL diferite.

Crearea datelor eșantion

Când discutați despre migrarea datelor, faceți acest lucru în baza de date cu următoarea configurație de tabel:

Sursa de migrare a datelor

SQL Server 2012

  • Tabelul 1 (Coloană:Cheie, Valoare)
  • Tabelul 2 (Coloană:Cheie, Valoare, Observații)
  • Tabelul 3 (Coloană:Cheie, Valoare)

Următorul este un script de creare a bazei de date. Schimbați calea în timp util.

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

Mai jos este un script de creare a tabelului.

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

Următorul este un script de înregistrare suplimentare:

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

Migrarea datelor la

SQL Server 2019

  • Tabelul 1 (Coloană:Cheie, Valoare)
  • Tabelul 2 (Coloană:Cheie, Valoare)

Înregistrările din fiecare tabel sunt goale.

Următorul este un script de creare a bazei de date. Schimbați calea în timp util.

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

Mai jos este un script de creare a tabelului.

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

Cum se face backup și restaurarea migrării bazei de date

Această metodă este de a face backup întregii baze de date ca fișier pe serverul sursă, copiați-l pe serverul de destinație și ingerați-l. De aceea, toate configurațiile tabelului sunt setate la destinație, toate acestea fiind la fel ca sursa.

De asemenea, această metodă nu vă permite să migrați de la o versiune mai nouă de SQL Server la o versiune mai veche. (Dacă diferența de versiune este mică, este posibil să fie posibilă))

procedură

Porniți SQL Server Management Studio de la sursă. Alegeți un folder care se potrivește cu versiunea de SQL Server.

Conectați-vă la serverul țintă. PC-urile care utilizează SQL Server Management Studio sunt bine pe alte PC-uri, dar acest sfaturi vă permite să operați pe toate serverele proprii.

Din Object Explorer, faceți clic dreapta pe baza de date și selectați Copiere de rezervă pentru activități.

Ștergeți calea inițială de copiere de rezervă din lista de destinații de backup din colțul din dreapta jos.

Când îl ștergeți, faceți clic pe butonul Adăugare.

Faceți clic pe butonul modificare traseu.

Cred că folderul "Backup" este selectat în mod implicit, așa că introduceți numele fișierului pentru a face backup în numele fișierului de mai jos și faceți clic pe butonul OK. Numele fișierului este opțional, așa că faceți-l ușor de înțeles.

Faceți clic pe ok butonul.

Verificați dacă a fost adăugat la listă, apoi faceți clic pe OK butonul.

Deoarece fișierul de rezervă a fost creat în următorul folder, voi duce acest fișier la serverul la care vreau să-l migrez. Calea folderului depinde de versiunea de SQL Server și numele instanței, deci verificați-l în timp util.

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

Stare după copierea pe serverul de destinație. Acesta este plasat în următorul folder, deoarece este mai ușor de încărcat dacă îl puneți în folderul backup al SQL Server. Acest lucru depinde, de asemenea, de versiunea de SQL Server și numele instanței, deci vă rugăm să verificați-l în timp util.

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

Porniți SQL Server Management Studio pe serverul la care migrați. Sunteți conectat la serverul dvs.

Din Object Explorer, faceți clic dreapta pe baza de date de destinație, apoi selectați Activități, Restaurare și bază de date.

Asigurați-vă că General este selectat în selecția paginii din stânga, selectați "Dispozitiv" din "Sursă" din dreapta și faceți clic pe butonul de răsfoire din dreapta.

Faceți clic pe butonul Adăugare.

Selectați fișierul pe care l-ați adus.

Selectați "Opțiuni" din selecția paginii din stânga și verificați următoarele două. Dacă verificați aceste două, puteți forța un alt sistem să schimbe în timp ce este conectat la baza de date.

  • Suprascrierea unei baze de date existente
  • Închiderea unei conexiuni existente la baza de date de destinație

Cu toate acestea, vă rugăm să rețineți că, dacă restaurarea nu reușește cu "Închideți conexiunea existentă la baza de date de destinație" este verificat, baza de date originală să nu fie disponibilă.

Când verificați, faceți clic pe OK butonul.

Puteți verifica dacă configurația tabelului și înregistrările au fost migrate complet.

De altfel, dacă încercați să restaurați o versiune mai nouă a unei baze de date SQL Server la o versiune mai veche de SQL Server, veți vedea următoarea eroare: Această metodă de migrare a datelor se bazează pe aceeași versiune între ele sau pentru o versiune mai nouă.

Cum să: Date de ieșire ca SQL (Script) și executați-l pe baza de date de destinație

Acesta este modul de ieșire toate înregistrările dintr-un tabel ca inserați declarații. Deoarece instrucțiunile SQL sunt aproape aceleași, acestea pot fi aplicate la alte tipuri de baze de date în unele cazuri, indiferent de versiunea de SQL Server.

Cu toate acestea, deoarece înregistrările sunt scrise pentru a insera propoziții unul câte unul, dimensiunea fișierului crește. Prin urmare, pe măsură ce numărul de înregistrări crește, este inutil, deci este o metodă care poate fi utilizată atunci când numărul este mic.

De asemenea, generează SQL pentru tabelul din care a fost migrat, deci nu este disponibil dacă este diferit de configurația tabelului la care este migrat. De asemenea, puteți include crearea unui tabel în SQL, dar trebuie să ștergeți tabelul o dată la destinație.

procedură

Porniți SQL Server Management Studio de la sursă. Alegeți un folder care se potrivește cu versiunea de SQL Server.

Conectați-vă la serverul țintă. PC-urile care utilizează SQL Server Management Studio sunt bine pe alte PC-uri, dar acest sfaturi vă permite să operați pe toate serverele proprii.

Faceți clic dreapta pe baza de date țintă și selectați "Sarcină" și "Generare script".

Faceți clic pe Următorul.

Puteți alege pentru ce tabele să migrați datele. Selectați toate sau selectați un anumit tabel aici.

Deoarece ieșirea este SQL, puteți selecta "Fișier", "Clipboard" sau "Afișare în fereastră". Odată selectat, faceți clic pe butonul "Avansat" din dreapta sus.

Selectați Date numai din "Tipuri de date pentru a genera scripturi" în grupul General.

După aceea, selectați "Următorul" pentru a confirma. Puteți vedea că SQL este generat. Tot ce a mai rămas este să executați acest SQL pe destinație.

Deoarece este doar o instrucțiune de inserare, dacă doriți ca datele să fie aceleași, trebuie să ștergeți toate înregistrările de la destinație în avans.

Migrarea configurațiilor de tabel, precum și

Dacă doriți, de asemenea, să migrați configurațiile tabelului, setați selecția anterioară "Tip de date pentru a genera scripturi" la Schemă și date.

Un script de creare a tabelului este, de asemenea, generat după cum urmează: Dacă doriți să utilizați acest lucru, acesta va fi executat după ștergerea tabelului care urmează să fie migrat.

De asemenea, generează un script de creare a bazei de date dacă este, de asemenea, inclus.

Cum se migrează datele utilizând Importul și exportul datelor

Pe măsură ce instalați SQL Server, instalați, de asemenea, un instrument numit Import și export date. Îl puteți utiliza pentru a migra date dintr-un tabel pe alt server.

Avantajul acestei migrări instrument este că datele pot fi, de asemenea, migrat la versiuni mai vechi de SQL Server. Este puțin dificil de utilizat, dar poate fi migrat la nivelul de câteva minute chiar și cu aproximativ 1 milion de date, deci este, de asemenea, potrivit pentru migrarea mare a datelor. Rețineți, totuși, că serverele sursă și destinație trebuie să fie conectate într-o rețea privată și nu pot fi utilizate între servere cu rețele complet diferite.

Condiție prealabilă

Construiți autentificarea SQL Server sau autentificarea Windows, astfel încât să puteți accesa fiecare SERVER SQL de pe un PC care utilizează acest instrument.

Acest sfaturi utilizează acest instrument de pe serverul de pe care a fost migrat.

procedură

Selectați Import și export date din meniul Start. Acesta este inclus într-un folder în SQL Server, dar numele folderului variază în funcție de versiunea de SQL Server, deci căutați-l în timp util.

Faceți clic pe Următorul.

Selectați baza de date din care doriți să migrați. De data aceasta se execută pe serverul sursă, astfel încât să puteți trece prin autentificarea Windows.

Observații de
valoare pentru setarea numelui parametrului
Surse de date SQL Server Native Client 11.0
Numele serverului (local) Dacă este un alt server sau este specificat un nume de instanță, vă rugăm să puneți valoarea acestuia
autentificare Autentificare Windows
bază de date ExempluDatabase Introduceți numele bazei de date din care doriți să migrați efectiv

Apoi, setați setările de conexiune pentru baza de date de destinație. Autentificarea SQL Server este utilizat deoarece este pe un alt server.

Observații de
valoare pentru setarea numelui parametrului
Surse de date SQL Server Native Client 11.0
Numele serverului Numele serverului țintă (+ \nume instanță)]
autentificare Autentificare SQL Server
bază de date ExempluDatabase Introduceți numele bazei de date la care să migrați efectiv

Bifați "Copiați date din unul sau mai multe tabele sau vizualizări" și faceți clic pe butonul următor.

Selectați tabelul pe care doriți să îl migrați. Această listă afișează, de asemenea, vizualizarea, deci nu o verificați.

Dacă numele tabelelor sursă și destinație sunt aceleași, tabelul care urmează să fie migrat este selectat automat. De asemenea, setează automat maparea numelor de coloane dacă numele coloanelor sunt aceleași.

Iată câteva lucruri de reținut:

  • Dacă cheia primară este autonumered, migrarea nu va reuși dacă nu verificați "Permite inserarea ID-ului" din "Editare mapare"
  • Dacă nu există tabele la care să migrați, se creează un tabel
  • Dacă tabelul destinație nu are același nume de coloană, acesta nu va fi migrat. Nu continuați să migrați sau să modificați coloana destinație.
  • Înregistrările sunt adăugate în mod implicit. Dacă doriți să o înlocuiți, ștergeți înregistrarea de la destinație în prealabil sau bifați "Ștergeți rândurile din tabelul de destinație" din "Editare mapare"

De fapt, trebuie să luați în considerare cele de mai sus, dar în acest Sfaturi, nu există date la destinație și nu există numerotare automată, astfel încât să puteți continua fără a seta nimic.

Asigurați-vă că este bifat "Rulați acum" și faceți clic pe "Următorul".

Faceți clic pe Terminat.

Începe migrarea datelor. Închideți când toate migrările sunt finalizate.

Dacă vă uitați la baza de date țintă, puteți verifica dacă a fost creat un tabel care nu a existat. De asemenea, puteți vedea că nu mai există coloane pentru tabelele existente.

Puteți verifica dacă datele sunt migrate. Notă coloanele din tabelul 2 nu sunt mapate și nu au fost migrate.