Migrar una base de datos de producción a un nuevo entorno

Migrar una base de datos de producción a un nuevo entorno

Tenemos un par de bases de datos de SQL Server 2005 que pronto trasladaremos a un nuevo servidor de producción. Estas bases de datos no son masivas, pero sí lo suficientemente grandes como para que sea complicado hacerlo con el menor tiempo de inactividad posible.

Las tres bases de datos que se moverán primero, por ser las más críticas, tienen un tamaño de 5, 9 y 25 GB (solo datos sin registros).

Ahora hay algunas posibilidades, pero como no soy un DBA completo, pensé que tal vez algunas personas aquí podrían tener mejores ideas/sugerencias. Esto es lo que se nos ocurrió;

* Create a full backup, move the file and restore the backup.

Esto es posible, pero dado que las bases de datos son bastante grandes, esto significaría un tiempo de inactividad bastante grave (un par de horas) del sistema, ya que es necesario mover las bases de datos.

¿Es posible crear y restaurar una copia de seguridad hoy y luego realizar una restauración diferencial cuando hagamos el movimiento real? El problema que puedo encontrar hasta ahora con las restauraciones diferenciales es que siempre se agregan a una copia de seguridad COMPLETA, lo que dejaría los archivos del mismo tamaño y no reduciría el tiempo de inactividad debido al movimiento de los archivos de un servidor a otro.

Para hacer esto "más" complicado, la nueva base de datos se configurará para reflejar, donde el entorno anterior no se refleja. Lo que significa que tendría que restaurar la copia de seguridad diferencial en el servidor principal (no creo que esto deba causar problemas, pero pensé en preguntar).

Si hay otra manera, más fácil o mejor, de hacer esto con el menor tiempo de inactividad, también me encantaría escucharla, por supuesto.

Un usuario de StackOverflow respondió simplemente "Puedes usar la duplicación para hacer esto". Sin entrar en muchos detalles, la forma en que veo esto es que puedo crear un espejo según el nuevo principio y luego forzar que el espejo tome el control del antiguo servidor de producción. Luego desactivo la duplicación y la vuelvo a habilitar en el nuevo servidor reflejado.

¿Funcionaría así?

Respuesta1

Hice este tipo de migración varias veces y la mejor manera (para mí) es:

  • copia de seguridad completa (con base de datos en uso)

  • copia de seguridad de los registros de transacciones cada n minutos (n depende del tiempo para copiar la copia de seguridad completa)

  • copie la copia de seguridad completa al nuevo servidor y luego restaure la base de datos sin recuperación ( RESTORE....NORECOVERY)

  • copiar y restaurar (siempre sin recuperación) los registros de transacciones

  • cuando la nueva base de datos esté casi en línea, detenga las aplicaciones que utilizan la base de datos anterior, haga una copia de seguridad de los últimos registros de transacciones, cópiela en el nuevo servidor y restáurela con recuperación.

  • ahora tiene la base de datos en un nuevo servidor con muy poco tiempo de inactividad.

Respuesta2

En lo que respecta a realizar copias de seguridad y mover las bases de datos, regularmente hago una copia de seguridad de una base de datos de 30 GB en menos de media hora. Si realiza una copia de seguridad de ellos en una unidad USB externa conectada al servidor actual y los transfiere a través de la unidad USB al nuevo servidor y los restaura, no me llevará más de una hora, más o menos unos minutos.

Respuesta3

Intentaré dar un punto,
tal vez me equivoque, deje que otros digan si esta no es la forma habitual. ¿Puede configurar la replicación transaccional en un NUEVO servidor y publicar y suscribir bases de datos, de modo que ambas bases de datos se ejecuten constantemente con un retraso de menos de unos pocos segundos? .
Después de eso, cierra la conexión a su antigua base de datos de los clientes y espera unos segundos.
Deshabilite la replicación y comience a usar una nueva base de datos

información relacionada