Migración de datos de SQL Server 2005 a 2016

9

Soy nuevo en la administración de SQL Server, pero me siento cómodo con el lenguaje SQL y con la creación de paquetes SSIS.

Quiero migrar datos de SQL Server 2005 a 2016.

Mi pregunta es si debo preocuparme por las bases de datos del sistema y otros objetos, como índices, procedimientos almacenados, vista, seguridad y permisos. inicios de sesión o solo puedo migrar datos.

Cuál sería el procedimiento recomendado en este caso.

Robert
fuente
¿Estás intentando actualizar una instancia de producción ? es decir, ¿necesita los mismos inicios de sesión, índices, procesos almacenados, etc.? Tal como está, su pregunta es realmente bastante amplia. Realice el recorrido y lea el centro de ayuda sobre cómo hacer buenas preguntas. ¡Gracias!
Max Vernon

Respuestas:

7

Max dio una respuesta decente que votaré una vez que termine de escribir esta vista alternativa.

No soy un fanático de restaurar las bases de datos del sistema cuando realizo una migración de actualización y prefiero realizar migraciones en lugar de las actualizaciones en el lugar, como lo mencioné en esta larga respuesta a otra pregunta.

Básicamente me gusta comenzar "fresco" cuando hago una migración. Encuentro que jugar con las migraciones y actualizaciones de la base de datos del sistema a través de la restauración a veces causa frustraciones con las restauraciones y puede llevar a posibles pecados.

También preguntaste sobre índices, procedimientos almacenados, vistas. Esos elementos en el nivel de la base de datos deben vivir dentro de una base de datos de usuario. Por lo tanto, cuando restaure la base de datos X al nuevo servidor, todos los objetos de la base de datos (tablas, usuarios, vistas, procesos, funciones, etc.) también estarán allí.

Lo que existe en las bases de datos del sistema son trabajos, inicios de sesión, alertas, servidores vinculados, claves de cifrado, etc. Elementos de nivel de instancia.

Me gusta revisarlos y migrar sobre lo que necesito usando varios scripts, últimamente son los scripts DBATools.Io powershell. Me gusta usar su script para copiar inicios de sesión SQL especialmente, porque maneja a los usuarios autenticados de SQL manteniendo sus contraseñas e identificadores de seguridad iguales para que los usuarios de la base de datos de esos inicios de sesión funcionen. También tienen un comando completo de migración de SQL Server que ejecuta sus subcomandos para copiar los elementos que normalmente copiaría.

No creo que Max esté equivocado con esa respuesta, de ahí el voto a favor. Acabo de tener más éxito y más suerte y me siento más cómodo migrando a una nueva en lugar de tratar de restaurar las bases de datos del sistema entre versiones. Diría que honestamente no puedo recordar la última vez que hice una migración de actualización de versión y no lo hice de esta manera en lugar de restaurar las bases de datos del sistema.

Mike Walsh
fuente
Gracias por tu respuesta. No quiero actualizar de 2005 a 2016. Quiero migrar una base de datos de una instancia que ya no se usa en SQL Server 2005 a una instancia existente en 2016. Esta migración aún no se ha aprobado, pero quiero estar preparado cuando lo hace. Básicamente, obtuve este proyecto porque soy el único que tiene experiencia en SQL en cuanto a consultas y creación de paquetes SSIS. También me preocupaban los problemas de compatibilidad. Una vez más gracias.
Robert
Claro, pero al pasar de 2005 a 2016, está haciendo una actualización. Estás haciendo una actualización y una migración. Debido a que está tomando una base de datos de una versión de SQL a otra, eso implica una actualización segura. Debe ejecutar el asesor de actualizaciones en su base de datos.
Mike Walsh
¿Qué sucede si SQL Server 2005 está alojado en Windows Server 2003 R2 x86 y SQL Server 2016 está en un sistema operativo más nuevo?
Robert
@MikeWalsh Estoy de acuerdo con casi todo lo que describiste en tu respuesta. Yo también sigo casi todo al hacer la actualización / migración de SQL
nam
4

Debería considerar la migración de las bases de datos del sistema (maestro, msdb y quizás modelo), si necesita acceder a los metadatos almacenados en esas bases de datos.

Master almacena artículos como inicios de sesión, certificados de seguridad, etc.

msdb contiene detalles sobre copias de seguridad y almacena configuraciones de trabajo del Agente SQL Server, entre otros detalles.

El modelo puede haber sido personalizado por usted o su equipo para permitir que las bases de datos en blanco recién creadas contengan un conjunto de objetos predefinidos que utiliza en cada base de datos.

La migración de las bases de datos del sistema se puede lograr con bastante facilidad; MSDN ofrece instrucciones detalladas en Copia de seguridad y restauración de bases de datos del sistema (SQL Server) .

Dependiendo de sus requisitos, puede realizar una BACKUP DATABASEoperación contra las bases de datos de usuario en la instancia de 2005 y luego RESTORE DATABASEen la instancia de 2016 para traer toda la base de datos, incluidos todos los datos, índices y otros objetos.

Esto, al menos inicialmente, requerirá la misma cantidad de espacio consumido por la base de datos en la instancia de 2005. Sin embargo, una vez que haya restaurado la base de datos, puede aprovechar la compresión de datos para reducir sustancialmente la huella requerida.

Consulte Acerca de trabajar con copias de seguridad de SQL Server para obtener detalles sobre cómo realizar copias de seguridad y Acerca de los escenarios de restauración para obtener detalles sobre las restauraciones.

Max Vernon
fuente
2

¿Es para 2012 o 2016? Hace una diferencia en eso, IIRC 2012 es una ruta de migración probada mientras que 2016 no lo es. Como tal, los problemas conocidos están documentados y / o serán detectados por Upgrade Advisor para 2012. Una ruta no probada aún podría funcionar sin ningún problema, es simplemente desconocido. Dicho esto, te recomiendo que vayas a 2016. Sospecho que el esfuerzo será casi el mismo.

Consulte ¿Está actualizando desde SQL Server 2005? en la documentación para las opciones de actualización de 2005 y enlaces a un proceso de actualización muy detallado. El proceso de actualización se escribió para 2014 pero aún es aplicable para 2016.

SQLmojoe
fuente
1
Es 2016. Perdón por eso
Robert