Después de optimizar tu esquema de Spanner y migrar tu aplicación, puedes mover tus datos a una base de datos de Spanner vacía del tamaño de producción y, luego, cambiar tu aplicación para usar la base de datos de Spanner.
Según tu caso de uso, es posible que puedas realizar una migración de datos en vivo con un tiempo de inactividad mínimo o que necesites un tiempo de inactividad prolongado para realizar la migración de datos.
Si tu aplicación no puede permitirse mucho tiempo de inactividad, considera realizar una migración de datos en vivo. Si tu aplicación puede manejar el tiempo de inactividad, puedes considerar migrar con tiempo de inactividad.
En una migración de datos en vivo, debes configurar la infraestructura de red necesaria para que los datos fluyan entre la base de datos de origen, la base de datos de Spanner de destino y las herramientas que usas para realizar la migración de datos. Debes decidir si usar la conectividad de red privada o pública según los requisitos de cumplimiento de tu organización. Es posible que necesites que el administrador de red de tu organización configure la infraestructura.
Migración de datos en vivo
Una migración de datos en vivo consta de dos componentes:
- Migrar los datos en una instantánea coherente de tu base de datos de origen
- Migrar el flujo de cambios (inserciones, actualizaciones y eliminaciones) desde esa instantánea, lo que se conoce como captura de datos modificados (CDC).
Si bien las migraciones de datos en vivo ayudan a proteger tus datos, el proceso implica desafíos, incluidos los siguientes:
- Almacenamiento de datos de CDC mientras se migra la instantánea
- Escribir los datos de CDC en Spanner mientras se captura el flujo de CDC entrante
- Garantizar que la migración de datos de CDC a Spanner sea más rápida que la transmisión de CDC entrante
Migración con tiempo de inactividad
Si tu base de datos de origen puede exportar a CSV o Avro, puedes migrar a Spanner con tiempo de inactividad. Para obtener más información, consulta Descripción general de la importación y exportación de Spanner.
Las migraciones con tiempo de inactividad se pueden usar para entornos de prueba o aplicaciones que pueden manejar algunas horas de tiempo de inactividad. En una base de datos activa, una migración con tiempo de inactividad puede provocar la pérdida de datos.
Para realizar una migración con tiempo de inactividad, considera el siguiente enfoque de alto nivel:
- Detén la aplicación y genera un archivo de volcado de los datos de la base de datos fuente.
- Sube el archivo de volcado a Cloud Storage en formato de volcado de MySQL, PostgreSQL, Avro o CSV.
- Carga el archivo de volcado en Spanner con Dataflow o la herramienta de migración de Spanner.
Generar varios archivos de volcado pequeños permite escribir más rápido en Spanner, ya que puede leer varios archivos de volcado en paralelo.
Cuando generes un archivo de volcado a partir de la base de datos de origen, ten en cuenta lo siguiente para generar una instantánea coherente de los datos:
- Antes de realizar el volcado, aplica un bloqueo de lectura en la base de datos de origen para evitar que los datos cambien durante la generación del archivo de volcado.
- Como alternativa, genera el archivo de volcado con una réplica de lectura de la base de datos de origen con la replicación inhabilitada.