Para la transferencia de grandes volúmenes de datos entre servidores SQL se aplican varias estrategias, incluyendo bulk insert, procesos ETL (Extract-Transform-Load), replicación, así como mecanismos de respaldo/recuperación, db-links y herramientas integradas de exportación-importación.
Es óptimo utilizar mecanismos de transferencia por lotes. Un ejemplo en SQL Server es BULK INSERT para cargar archivos grandes, o SSIS/Integration Services para escenarios ETL complejos. En variantes más portátiles se utilizan scripts con lógica LIMIT/OFFSET y fijación de la posición de transferencia. Para mayor fiabilidad se aplica frecuentemente:
-- Transferencia de datos en porciones entre bases (PostgreSQL) INSERT INTO target_db.public.data_table (col1, col2) SELECT col1, col2 FROM source_db.public.data_table WHERE transferred = FALSE LIMIT 10000;
¿Cuál es la diferencia entre replicación y exportación-importación, y por qué la replicación no siempre es adecuada para la migración de grandes archivos históricos?
Respuesta: La replicación mantiene la sincronización de cambios actuales y funciona de manera eficiente para datos "vivos". Para la migración de archivos históricos, la replicación puede no ser suficientemente rápida y flexible, ya que no admite transformaciones personalizadas y no resuelve el problema de la transferencia masiva única: aquí se utilizan más a menudo ETL.
Historia
La empresa integró varias bases regionales en un único almacén. Durante la importación masiva sin lotes, el sistema "se colgó" debido a la falta de memoria RAM, lo que llevó a un commit parcial y recuperación manual del estado. Se corrigió al pasar a la exportación por lotes con registro de progreso a través de tablas de staging.
Historia
Debido al control incorrecto de las sumas de verificación durante la transferencia de archivos grandes mediante BULK INSERT, parte de la información se dañó, pero este hecho se descubrió semanas después. La solución fue recalcular las sumas de verificación antes y después de cada lote con repetición automática en caso de discrepancia.
Historia
En un intento de migrar más de 100 millones de filas a través de la exportación-importación estándar, un desarrollador no tuvo en cuenta la gestión de bloqueo: el bloqueo de tablas en el servidor de destino provocó una interrupción de las operaciones comerciales durante varias horas. Conclusión: para tales tareas, utilizar solo ventanas nocturnas y copia por etapas con una reindexación temporal.