Passos per migrar totes les dades entre servidors a l'SQL Server

Data de creació de la pàgina :

entorn

Servidor SQL
  • SQL Server 2019
  • SQL Server 2012

Com es migra la migració de dades i els avantatges i inconvenients de cada

Hi ha diverses maneres de migrar les dades de la base de dades de l'SQL Server a l'SQL Server en altres servidors de manera massiva: Cadascuna té els seus avantatges i inconvenients durant la migració, així que tria el mètode que millor s'adapti al teu entorn.

de
Mètode de migració Connectivitat de xarxa entre servidorsPre-sincrònica autenticacióles disposicions de la taula de mida de fitxer durant la migració a versions anteriors
Còpia de dades de còpia de dades i restauració No és necessari (moure fitxers) mal ordinari No és necessari (substitució completa automàtica) innecessari
Dades de sortida com a SQL No és necessari (moure fitxers) transitable gran S'ha de demanar o suprimir a la taula innecessari
Utilitza l'eina Importa i exporta dades indispensabilitat transitable sense En funció de la configuració de la migració necessitat

Precondició

  • Suposem que el servidor SQL i l'SQL Server Management Studio estan instal·lats a cada servidor.
  • Aquest Consell s'atreveix a fer que les versions del servidor SQL sigui diferent.

Crea dades d'exemple

Quan discutiu la migració de dades, ho feu a la base de dades amb la configuració de la taula següent:

Origen de migració de dades

SQL Server 2012

  • Taula 1 (Columna:Clau, Valor)
  • Taula 2 (Columna:Clau, Valor, Observacions)
  • Taula 3 (Columna:Clau, Valor)

A continuació es presenta un script de creació de bases de dades. Canviar el camí de manera oportuna.

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

A continuació es mostra un script de creació de taula.

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

A continuació es presenta un script de registre addicional:

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

Migració de dades a

SQL Server 2019

  • Taula 1 (Columna:Clau, Valor)
  • Taula 2 (Columna:Clau, Valor)

Els registres de cada taula estan buits.

A continuació es presenta un script de creació de bases de dades. Canviar el camí de manera oportuna.

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

A continuació es mostra un script de creació de taula.

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

Com es fa la còpia de seguretat i la migració de la base de dades

Aquest mètode consisteix a fer una còpia de seguretat de tota la base de dades com a fitxer al servidor d'origen, copiar-la al servidor de destinació i ingerir-la. Per tant, totes les configuracions de la taula s'estableixen a la destinació, totes les quals són iguals que l'origen.

A més, aquest mètode no us permet migrar d'una versió més recent de l'SQL Server a una versió anterior. (Si la diferència de versió és petita, pot ser possible))

procediment

Inicia l'SQL Server Management Studio des de l'origen. Trieu una carpeta que coincideixi amb la versió de l'SQL Server.

Inicia la sessió al servidor de destinació. Els ordinadors que utilitzen l'SQL Server Management Studio estan bé en altres ordinadors, però aquest Consell us permet operar en els vostres propis servidors.

Des de l'Explorador d'objectes, feu clic amb el botó dret del ratolí a la base de dades i seleccioneu Còpia de seguretat per a les tasques.

Suprimiu el camí de còpia de seguretat inicial de la llista de destinacions de còpia de seguretat de l'extrem inferior dret.

Quan el suprimiu, feu clic al botó Afegeix.

Feu clic al botó Canvia el camí.

Crec que la carpeta "Còpia de seguretat" està seleccionada per defecte, així que introduïu el nom del fitxer per fer una còpia de seguretat al nom del fitxer següent i feu clic al botó D'acord. El nom del fitxer és opcional, de manera que faciliteu-ne la comprensió.

Feu clic al botó D'acord.

Verifiqueu que s'ha afegit a la llista i, a continuació, feu clic al botó D'acord.

Com que el fitxer de còpia de seguretat s'ha creat a la carpeta següent, portaré aquest fitxer al servidor al qual vull migrar-lo. El camí de la carpeta depèn de la versió de l'SQL Server i del nom de la instància, de manera que comproveu-la oportunament.

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

Estat després de copiar al servidor de destinació. Es col·loca a la carpeta següent perquè és més fàcil de carregar si el col·loqueu a la carpeta còpia de seguretat de l'SQL Server. Això també depèn de la versió de l'SQL Server i del nom de la instància, així que comproveu-ho oportunament.

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

Inicia l'SQL Server Management Studio al servidor al qual migreu. Heu iniciat la sessió al vostre servidor aquí.

Des de l'Explorador d'objectes, feu clic amb el botó dret del ratolí a la base de dades de destinació i, a continuació, seleccioneu Tasques, Restaura i Base de dades.

Assegureu-vos que General estigui seleccionat a la selecció de la pàgina esquerra, seleccioneu "Dispositiu" des de la "Font" de la dreta i feu clic al botó navega a la dreta.

Feu clic al botó Afegeix.

Seleccioneu el fitxer que heu portat.

Seleccioneu "Opcions" de la selecció de la pàgina esquerra i comproveu les dues següents. Si comproveu aquests dos, podeu forçar un altre sistema a intercanviar mentre està connectat a la base de dades.

  • Sobreescriu una base de dades existent
  • Tanca una connexió existent a la base de dades de destinació

No obstant això, tingueu en compte que si la restauració falla amb "Tanca la connexió existent a la base de dades de destinació", és possible que la base de dades original no estigui disponible.

Quan ho comproveu, feu clic al botó D'acord.

Podeu verificar que la configuració de la taula i els registres s'han migrat completament.

Per cert, si intenteu restaurar una versió més recent d'una base de dades de l'SQL Server a una versió anterior de l'SQL Server, veureu l'error següent: Aquest mètode de migració de dades es basa en la mateixa versió entre si o en una versió més recent.

Com: dades de sortida com a SQL (script) i executar-les a la base de dades de destinació

Així és com es produeixen tots els registres d'una taula com a declaracions d'inserció. Com que les declaracions SQL són gairebé les mateixes, es poden aplicar a altres tipus de bases de dades en alguns casos, independentment de la versió de l'SQL Server.

No obstant això, atès que els registres s'escriuen per inserir frases una per una, la mida del fitxer augmenta. Per tant, a mesura que augmenta el nombre de registres, és inútil, de manera que és un mètode que es pot utilitzar quan el nombre és petit.

També genera SQL per a la taula des de la qual es va migrar, de manera que no està disponible si és diferent de la configuració de la taula a la qual es migra. També podeu incloure la creació d'una taula a sQL, però heu de suprimir la taula una vegada a la destinació.

procediment

Inicia l'SQL Server Management Studio des de l'origen. Trieu una carpeta que coincideixi amb la versió de l'SQL Server.

Inicia la sessió al servidor de destinació. Els ordinadors que utilitzen l'SQL Server Management Studio estan bé en altres ordinadors, però aquest Consell us permet operar en els vostres propis servidors.

Feu clic amb el botó dret del ratolí a la base de dades de destinació i seleccioneu "Tasca" i "Generar script".

Feu clic a Endavant.

Podeu triar per a quines taules voleu migrar les dades. Seleccioneu-ho tot o seleccioneu una taula específica aquí.

Com que la sortida és SQL, podeu seleccionar "Fitxer", "Porta-retalls" o "Mostra a la finestra". Un cop seleccionat, feu clic al botó "Avançat" de la part superior dreta.

Seleccioneu Dades només a "Tipus de dades per generar scripts" al grup General.

Després d'això, seleccioneu "Següent" per confirmar-ho. Podeu veure que s'ha generat SQL. Només queda executar aquest SQL a la destinació.

Com que només és una declaració d'inserció, si voleu que les dades siguin iguals, heu d'eliminar tots els registres de la destinació amb antelació.

Migra també les configuracions de la taula

Si també voleu migrar les configuracions de la taula, definiu la selecció anterior "Tipus de dades per generar scripts" a Esquema i Dades.

També es genera un script de creació de taula de la manera següent: Si voleu utilitzar-lo, s'executarà després de suprimir la taula que s'ha de migrar.

També genera un script de creació de bases de dades si també s'inclou.

Com migrar les dades mitjançant l'ús de dades d'importació i exportació

A mesura que instal·leu l'SQL Server, també instal·leu una eina anomenada Importa i exporta dades. Podeu utilitzar-lo per migrar dades d'una taula a un altre servidor.

L'avantatge d'aquesta migració d'eines és que les dades també es poden migrar a versions anteriors de l'SQL Server. És una mica difícil d'utilitzar, però es pot migrar a nivell de diversos minuts fins i tot amb prop d'1 milió de dades, de manera que també és adequat per a la migració de dades grans. Tingueu en compte, però, que els servidors d'origen i de destinació han d'estar connectats en una xarxa privada i no es poden utilitzar entre servidors amb xarxes completament diferents.

Precondició

Creeu l'autenticació de l'SQL Server o l'autenticació del Windows perquè pugueu accedir a cada SQL Server des d'un PC que utilitzi aquesta eina.

Aquest Consell utilitza aquesta eina des del servidor des del qual s'ha migrat.

procediment

Seleccioneu Importa i exporta dades des del menú Inicia. S'inclou en una carpeta de l'SQL Server, però el nom de la carpeta varia en funció de la versió de l'SQL Server, així que cerqueu-lo de manera oportuna.

Feu clic a Endavant.

Seleccioneu la base de dades des de la qual voleu migrar. Aquesta vegada s'està executant al servidor d'origen, de manera que podeu passar per l'autenticació del Windows.

Observacions del valor de configuració del nom del paràmetre
Orígens de dades Client natiu de l'SQL Server 11.0
Nom del servidor (local) Si es tracta d'un altre servidor o s'especifica un nom d'instància, poseu-ne el valor
autenticació Autenticació del Windows
base de dades SampleDatabase Introduïu el nom de la base de dades des de la qual voleu migrar

A continuació, definiu la configuració de la connexió per a la base de dades de destinació. S'està utilitzant l'autenticació de l'SQL Server perquè es troba en un servidor diferent.

Observacions del valor de configuració del nom del paràmetre
Orígens de dades Client natiu de l'SQL Server 11.0
Nom del servidor Nom del servidor de destinació (+ \nom de la instància)]
autenticació Autenticació de l'SQL Server
base de dades SampleDatabase Introduïu el nom de la base de dades a la que realment migrar

Marqueu "Copia les dades d'una o més taules o visualitzacions" i feu clic al botó següent.

Seleccioneu la taula que voleu migrar. Aquesta llista també mostra la visualització, així que no la comproveu.

Si els noms de les taules d'origen i de destinació són els mateixos, la taula a migrar se seleccionarà automàticament. També estableix automàticament l'assignació dels noms de les columnes si els noms de les columnes són els mateixos.

Aquí hi ha algunes coses a tenir en compte:

  • Si la clau principal és numerada automàticament, la migració fallarà si no marqueu "Permet la inserció d'identificadors" des de "Edita l'assignació"
  • Si no hi ha taules per migrar, es crearà una taula
  • Si la taula de destinació no té el mateix nom de columna, no es migrarà. No continuïs migrant ni canviant la columna de destinació.
  • Els registres s'afegeixen per defecte. Si voleu substituir-lo, suprimiu el registre a la destinació amb antelació o marqueu "Suprimeix files a la taula de destinació" des de "Edita l'assignació"

De fet, heu de tenir en compte l'anterior, però en aquests Consells, no hi ha dades a la destinació i no hi ha numeració automàtica, de manera que podeu continuar sense establir res.

Assegureu-vos que "Executa ara" estigui marcat i feu clic a "Següent".

Feu clic a Fet.

Comença la migració de dades. Tanqueu quan s'acabin totes les migracions.

Si mireu la base de dades de destinació, podeu verificar que s'ha creat una taula que no existia. També podeu veure que no hi ha més columnes per a les taules existents.

Podeu verificar que les dades s'estan migrant. Les columnes de notes de la taula 2 no estan assignades i no s'han migrat.