Pasos para migrar todos los datos entre servidores en SQL Server

Fecha de creación de la página :

medio ambiente

SQL Server
  • SQL Server 2019
  • SQL Server 2012

Cómo se migra la migración de datos y las ventajas y desventajas de cada uno

Hay varias formas de migrar datos de base de datos de SQL Server a SQL Server en otros servidores de forma masiva: Cada uno tiene sus ventajas y desventajas durante la migración, así que elija el método que mejor se adapte a su entorno.

Método de migración Conectividad de red entre servidoresAutenticación previamente síncrona de diseños de tabla de tamaño de archivo durante la migración a versiones anteriores
Copia de seguridad y restauración de bases de datos No es necesario (mover archivos) malo ordinario No es necesario (reemplazo completo automático) innecesario
Datos de salida como SQL No es necesario (mover archivos) pasable grande Requerido o eliminado a la tabla innecesario
Utilice la herramienta Importar y exportar datos indispensabilidad pasable sin En función de la configuración de migración necesidad

precondición

  • Suponga que SQL Server y SQL Server Management Studio están instalados en cada servidor.
  • Este Consejo se atreve a hacer que las versiones de sql server sean diferentes.

Crear datos de ejemplo

Al describir la migración de datos, lo hace en la base de datos con la siguiente configuración de tabla:

Origen de migración de datos

SQL Server 2012

  • Tabla 1 (Columna:Clave, Valor)
  • Tabla 2 (Columna:Clave, Valor, Observaciones)
  • Tabla 3 (Columna:Clave, Valor)

A continuación se muestra un script de creación de base de datos. Cambie la ruta 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ón se muestra un script de creación de tablas.

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ón se muestra un script de registro adicional:

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ón de datos a

SQL Server 2019

  • Tabla 1 (Columna:Clave, Valor)
  • Tabla 2 (Columna:Clave, Valor)

Los registros de cada tabla están vacíos.

A continuación se muestra un script de creación de base de datos. Cambie la ruta 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ón se muestra un script de creación de tablas.

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

Cómo hacer backup y restore de bases de datos en migración

Este método consiste en realizar una copia de seguridad de toda la base de datos como un archivo en el servidor de origen, copiarla en el servidor de destino e ingerirla. Por lo tanto, todas las configuraciones de tabla se establecen en el destino, todas las cuales son las mismas que el origen.

Además, este método no permite migrar de una versión más reciente de SQL Server a una versión anterior. (Si la diferencia de versión es pequeña, puede ser posible))

procedimiento

Inicie SQL Server Management Studio desde el origen. Elija una carpeta que coincida con su versión de SQL Server.

Inicie sesión en el servidor de destino. Los equipos que usan SQL Server Management Studio están bien en otros equipos, pero este consejo le permite operar en sus propios servidores.

En el Explorador de objetos, haga clic con el botón secundario en la base de datos y seleccione Copia de seguridad para tareas.

Elimine la ruta de copia de seguridad inicial en la lista de destinos de copia de seguridad en la esquina inferior derecha.

Cuando lo elimine, haga clic en el botón Agregar.

Haga clic en el botón Cambiar ruta de acceso.

Creo que la carpeta "Copia de seguridad" está seleccionada de forma predeterminada, así que ingrese el nombre del archivo para hacer una copia de seguridad en el nombre del archivo a continuación y haga clic en el botón Aceptar. El nombre del archivo es opcional, así que haz que sea fácil de entender.

Haga clic en el botón Aceptar.

Compruebe que se ha agregado a la lista y, a continuación, haga clic en el botón Aceptar.

Dado que el archivo de copia de seguridad se ha creado en la siguiente carpeta, llevaré este archivo al servidor al que quiero migrarlo. La ruta de la carpeta depende de la versión de SQL Server y del nombre de la instancia, así que compruébelo de manera oportuna.

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

Estado después de copiar en el servidor de destino. Se coloca en la carpeta siguiente porque es más fácil de cargar si lo coloca en la carpeta Copia de seguridad de SQL Server. Esto también depende de la versión de SQL Server y el nombre de la instancia, así que compruébelo de manera oportuna.

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

Inicie SQL Server Management Studio en el servidor al que va a migrar. Ha iniciado sesión en su servidor aquí.

En el Explorador de objetos, haga clic con el botón secundario en la base de datos de destino y, a continuación, seleccione Tareas, Restaurar y Base de datos.

Asegúrese de que General esté seleccionado en la selección de la página izquierda, seleccione "Dispositivo" en la "Fuente" a la derecha y haga clic en el botón Examinar a la derecha.

Haga clic en el botón Agregar.

Seleccione el archivo que trajo.

Seleccione "Opciones" de la selección de la página izquierda y verifique las dos siguientes. Si marca estos dos, puede forzar a algún otro sistema a intercambiar mientras está conectado a la base de datos.

  • Sobrescribir una base de datos existente
  • Cerrar una conexión existente a la base de datos de destino

Sin embargo, tenga en cuenta que si la restauración falla con la opción "Cerrar conexión existente a la base de datos de destino" está marcada, es posible que la base de datos original no esté disponible.

Cuando lo compruebe, haga clic en el botón Aceptar.

Puede comprobar que la configuración de la tabla y los registros se han migrado por completo.

Por cierto, si intenta restaurar una versión más reciente de una base de datos de SQL Server a una versión anterior de SQL Server, verá el siguiente error: Este método de migración de datos se basa en la misma versión entre sí o en una versión más reciente.

Cómo: Generar datos como SQL (script) y ejecutarlos en la base de datos de destino

Esta es la forma de generar todos los registros de una tabla como instrucciones insert. Debido a que las instrucciones SQL son casi las mismas, se pueden aplicar a otros tipos de bases de datos en algunos casos, independientemente de la versión de SQL Server.

Sin embargo, dado que los registros se escriben para insertar oraciones una por una, el tamaño del archivo aumenta. Por lo tanto, a medida que aumenta el número de registros, es inútil, por lo que es un método que se puede usar cuando el número es pequeño.

También genera SQL para la tabla desde la que se migró, por lo que no está disponible si es diferente de la configuración de tabla a la que se migra. También puede incluir la creación de una tabla en SQL, pero debe eliminar la tabla una vez en el destino.

procedimiento

Inicie SQL Server Management Studio desde el origen. Elija una carpeta que coincida con su versión de SQL Server.

Inicie sesión en el servidor de destino. Los equipos que usan SQL Server Management Studio están bien en otros equipos, pero este consejo le permite operar en sus propios servidores.

Haga clic derecho en la base de datos de destino y seleccione "Tarea" y "Generar script".

Haga clic en Siguiente.

Puede elegir para qué tablas desea migrar datos. Seleccione todo o seleccione una tabla específica aquí.

Dado que la salida es SQL, puede seleccionar "Archivo", "Portapapeles" o "Mostrar en ventana". Una vez seleccionado, haga clic en el botón "Avanzado" en la parte superior derecha.

Seleccione Solo datos en "Tipos de datos para generar scripts" en el grupo General.

Después de eso, seleccione "Siguiente" para confirmar. Puede ver que se genera SQL. Todo lo que queda es ejecutar este SQL en el destino.

Dado que es solo una instrucción insert, si desea que los datos sean los mismos, debe eliminar todos los registros en el destino con anticipación.

Migrar también configuraciones de tabla

Si también desea migrar configuraciones de tabla, establezca la selección anterior "Tipo de datos para generar scripts" en Esquema y Datos.

También se genera un script de creación de tablas de la siguiente manera: Si desea utilizar esto, se ejecutará después de eliminar la tabla que se va a migrar.

También genera un script de creación de base de datos si también se incluye.

Cómo migrar datos mediante Importar y exportar datos

Al instalar SQL Server, también instala una herramienta denominada Importar y exportar datos. Puede usarlo para migrar datos de una tabla a otro servidor.

La ventaja de esta migración de herramientas es que los datos también se pueden migrar a versiones anteriores de SQL Server. Es un poco difícil de usar, pero se puede migrar a nivel de varios minutos incluso con aproximadamente 1 millón de datos, por lo que también es adecuado para la migración de datos grandes. Sin embargo, tenga en cuenta que los servidores de origen y destino deben estar conectados en una red privada y no se pueden utilizar entre servidores con redes completamente diferentes.

precondición

Cree la autenticación de SQL Server o la autenticación de Windows para que pueda tener acceso a cada SQL Server desde un equipo que use esta herramienta.

Este Consejo utiliza esta herramienta desde el servidor desde el que se migró.

procedimiento

Seleccione Importar y exportar datos en el menú Inicio. Se incluye en una carpeta de SQL Server, pero el nombre de la carpeta varía según la versión de SQL Server, así que búsquelo de manera oportuna.

Haga clic en Siguiente.

Seleccione la base de datos desde la que desea migrar. Esta vez se está ejecutando en el servidor de origen, por lo que puede pasar a través de la autenticación de Windows.

parámetro
Observaciones de valor de configuración de nombre de
Fuentes de datos SQL Server Native Client 11.0
Nombre del servidor (local) Si se trata de un servidor diferente o se especifica un nombre de instancia, ponga su valor
autenticación Autenticación de Windows
base de datos Base de datos de ejemplo Escriba el nombre de la base de datos desde la que desea migrar realmente

A continuación, establezca la configuración de conexión para la base de datos de destino. La autenticación de Sql Server se usa porque está en un servidor diferente.

parámetro
Observaciones de valor de configuración de nombre de
Fuentes de datos SQL Server Native Client 11.0
Nombre del servidor Nombre del servidor de destino (+ \nombre de instancia)]
autenticación Autenticación de SQL Server
base de datos Base de datos de ejemplo Escriba el nombre de la base de datos a la que se va a migrar realmente

Marque "Copiar datos de una o más tablas o vistas" y haga clic en el botón siguiente.

Seleccione la tabla que desea migrar. Esta lista también muestra la vista, así que no la compruebes.

Si los nombres de las tablas de origen y destino son los mismos, la tabla que se va a migrar se selecciona automáticamente. También establece automáticamente la asignación de nombres de columna si los nombres de columna son los mismos.

Aquí hay algunas cosas a tener en cuenta:

  • Si la clave principal se numera automáticamente, la migración fallará si no marca "Permitir inserción de ID" en "Editar asignación"
  • Si no hay tablas a las que migrar, se crea una tabla
  • Si la tabla de destino no tiene el mismo nombre de columna, no se migrará. No continúe migrando ni cambiando la columna de destino.
  • Los registros se agregan de forma predeterminada. Si desea reemplazarlo, elimine el registro en el destino por adelantado o marque "Eliminar filas en la tabla de destino" de "Editar asignación"

De hecho, debe considerar lo anterior, pero en este Consejos, no hay datos en el destino y no hay numeración automática, por lo que puede continuar sin configurar nada.

Asegúrese de que "Ejecutar ahora" esté marcado y haga clic en "Siguiente".

Haga clic en Listo.

Comienza la migración de datos. Cierre cuando se completen todas las migraciones.

Si observa la base de datos de destino, puede comprobar que se ha creado una tabla que no existía. También puede ver que no hay más columnas para las tablas existentes.

Puede comprobar que los datos se están migrando. Nota Las columnas de la tabla 2 no se asignan y no se han migrado.