Cada vez que lo hago, hemos hecho dos pases ...
- tome una instantánea y, trabajando en un servidor diferente, úsela para determinar qué se debe hacer para la migración y escríbala.
- una vez que tienen el script en la mano, la instantánea se restaura en el sistema de prueba y se programa para ver si se ejecutará dentro del tiempo requerido, o se ajusta y modifica hasta que pueda.
- haga que las partes interesadas firmen que nada se ve mal con los datos en el sistema de prueba.
Luego, durante un fin de semana, tiene una interrupción programada:
- El viernes por la noche, los sistemas que usan la base de datos se desactivan, se realiza una copia de seguridad en frío completa y los scripts se ejecutan para migrar / modificar / lo que sea a los datos
- Los sistemas se vuelven a instalar bajo alguna dirección privada o se configuran de alguna manera para que no esté abierto a nadie más que a las partes interesadas para las pruebas de aceptación
- Si las partes interesadas lo aprueban, el sistema se pone en línea y se hace público; de lo contrario, la base de datos se restaura a partir de la copia de seguridad realizada el viernes por la noche y comienza el proceso nuevamente.
Con nuestro horario, la gente de la base de datos generalmente tenía desde las 6 p. M. Del viernes hasta las 10 a. M. Del sábado para ejecutar las secuencias de comandos de copia de seguridad y migración, por lo que nuestro objetivo era que se ejecutaran en menos de 8 horas (~ 6 de las cuales eran copias de seguridad), así que ' tendría algo de tiempo para nuestras pruebas y correcciones antes de que se publique a las partes interesadas.
A las partes interesadas se les dio su ventana de tiempo por adelantado, por lo que sabían dejar su fin de semana abierto para la prueba al comienzo de la ventana. También se les informaría al final de su ventana, generalmente el domingo por la tarde, donde si todos no hubieran cerrado la sesión, tendríamos que comenzar a retroceder.
Ah, y por supuesto ... si alguien tuvo un cambio durante cualquiera de las pruebas de aceptación, e hicimos un cambio, significaba que todas las aprobaciones de las partes interesadas se anularon, y tuvieron que volver a probar ... entonces intentaríamos darles todo un tiempo para buscar problemas y ejecutar las correcciones como un lote, en lugar de aplicarlos uno por uno.
Afortunadamente, las únicas veces que tuve una de esas situaciones en las que no podíamos tener un tiempo de inactividad significativo, los sistemas que estaba migrando se alimentaban de scripts, no de la entrada del usuario, por lo que podía tener dos sistemas paralelos en funcionamiento y cambiarlos. cuando las cosas se cerraron. (solo una vez hubo un problema, cuando mi jefe insistió en que hiciéramos una copia de seguridad completa, sin entender que todo iba a estar en línea con una IP diferente ... entonces, ¿qué debería haber sido una interrupción de 5 minutos en un el mal día se convirtió en un corte de 5 horas).