Una guía completa sobre estrategias de migración de tecnología: (Parte 3: Migración de base de datos)
Publicado: 2020-12-25Imagine un escenario en el que compra un apartamento nuevo, está listo para mudarse y ha planificado cuidadosamente el proceso. Está todo listo para mudarse a su nuevo hogar, y de repente se da cuenta de que hay un problema. Los muebles y artefactos no encajan bien con su nuevo apartamento.
¿Cómo te sentirías si tuvieras que deshacerte de todos tus muebles y empezar de cero? Llevando esta analogía más allá, considere el nuevo apartamento como su nueva base de datos y los muebles como los datos. Estamos seguros de que los datos serían mucho más importantes que los muebles para su negocio y, por lo tanto, desearía conservar cada parte de ellos mientras planea migrar.
Como continuación de nuestra serie de migración de tecnología, en este blog intentaremos descubrir los conceptos básicos de la migración de base de datos (DBM), lo que se debe entender, considerar y cuidar al realizar la migración de base de datos.
¿Por qué y cuándo se necesita la migración de la base de datos?

Como seguimiento de nuestro blog anterior sobre migración de aplicaciones, el artículo de hoy se centra en la migración de bases de datos (también conocida como migración de esquemas) porque es una de las migraciones más importantes que se ocupa principalmente de seleccionar, extraer, transferir/actualizar los datos de un marco de base de datos a otro.
Esencialmente, la necesidad de migración de bases de datos puede ser específica de un requisito comercial, o incluso para satisfacer las políticas regulatorias múltiples más recientes instituidas por varios reguladores. Si bien no hay situaciones definidas en las que se necesita DBM, hemos enumerado algunas situaciones en las que esto es inevitable:
- Una razón común es mover su sistema obsoleto a un sistema que cumpla con los requisitos comerciales y las necesidades de datos modernas. Las nuevas y modernas técnicas de almacenamiento se han convertido en una necesidad en los tiempos de Big Data.
- Ciertos reguladores han hecho obligatorio que los datos permanezcan solo en una geografía particular. Por lo tanto, es necesario que los datos distribuidos se migren a una sola ubicación.
- Algunas empresas prefieren mover una base de datos local a una base de datos en la nube. Esto generalmente ahorra en infraestructura y recursos de experiencia que se necesitan para respaldar los datos y también para hacer que los sistemas sean más rápidos.
- La migración a una nueva plataforma garantiza la integridad completa de los datos. Reduce los costos de almacenamiento y medios, lo que da como resultado una mejora significativa en el ROI.
- Muchas empresas modernas desean mantener todos sus datos en un solo lugar. De esta forma los datos son accesibles a todos los departamentos de la empresa.
La migración del sistema de base de datos a una nueva plataforma reduce la interrupción que se produce en las operaciones comerciales diarias. Esto se puede hacer con un esfuerzo manual mínimo si la selección de una nueva plataforma de base de datos se realiza con prudencia.
Tipos de bases de datos
Antes de continuar con la migración de la base de datos, primero echemos un vistazo a los diferentes tipos de bases de datos:

- Base de datos relacional: las bases de datos relacionales se conocen como los caballos de batalla de la industria de las bases de datos. Estas bases de datos están clasificadas por un conjunto de tablas. Las tablas constan de filas y columnas donde la fila contiene la instancia de datos y la columna contiene la entrada de datos para una categoría específica. SQL: el lenguaje de consulta estructurado es una interfaz de programación estándar para bases de datos relacionales.
- Base de datos distribuida : como sugiere el nombre, los datos se distribuyen en varios sitios de cualquier organización. Los enlaces de comunicación se utilizan para conectar sitios entre sí. Esto ayuda a acceder fácilmente a la base de datos distribuida.
- Base de datos orientada a objetos : este tipo de base de datos combina atributos de base de datos relacional y programación orientada a objetos. Varios elementos creados en C++ y Java se pueden almacenar en bases de datos relacionales, sin embargo, una base de datos orientada a objetos es más adecuada para ellos.
- Base de datos NoSQL: la base de datos NoSQL puede analizar de manera eficiente grandes datos no estructurados almacenados en múltiples servidores virtuales. Por el contrario, una base de datos relacional no puede manejar algunos rendimientos de big data de manera eficiente. Las bases de datos NoSQL pueden gestionar fácilmente estos casos y se utilizan para un gran conjunto de datos distribuidos.
- Base de datos en la nube: la base de datos en la nube es un entorno virtual que brinda la flexibilidad de pagar por uso. El usuario solo necesita pagar por el ancho de banda y la capacidad de almacenamiento que se adapte a sus necesidades.
- Base de datos de gráficos: en términos simples, un gráfico es una colección de nodos y bordes. Graph Database contiene nodos que representan entidades y el borde describe las relaciones entre esas entidades. Es un tipo de base de datos NoSQL y utiliza la teoría de grafos para mapear, almacenar y consultar relaciones.
- Base de datos centralizada : con este tipo de base de datos, los datos se almacenan en una única ubicación centralizada. La base de datos esencialmente contiene procedimientos de aplicación que también permiten a los usuarios acceder a la base de datos desde ubicaciones remotas.
Enfoques de la migración de bases de datos
Migrar los datos de una plataforma de base de datos a otra puede ser una tarea crucial. Si la migración está planificada en un entorno LIVE, la migración debe realizarse con la máxima precaución. Se debe elegir un momento de migración conveniente antes de continuar con la migración de datos. Los sistemas en vivo a menudo experimentan tiempo de inactividad cuando los datos se transfieren a una nueva base de datos.
Existen principalmente dos enfoques para la migración de bases de datos:
Migración de datos Big Bang:
Este enfoque es donde uno elige migrar la base de datos completa a la vez en un período de tiempo limitado. Aunque la migración de datos big bang parece menos compleja, requiere suficiente tiempo de inactividad para el sitio web en vivo. Además, con este enfoque, es posible que no sea fácil lograr una reversión completa del proceso de migración en caso de que la migración falle en cualquier momento.
Migración de datos poco a poco
Con este enfoque, uno tiene que dividir el proceso de migración en partes o fases más pequeñas. Casi como un enfoque ágil para la migración, si falla una sola fase, solo se debe revertir esa fase y repetir el proceso. Sin embargo, la migración de datos Trickle requiere mucho tiempo y, por lo tanto, podría aumentar el costo del proyecto.
Diferentes tipos de Migración

Base de datos relacional a base de datos relacional
Este enfoque es la migración más directa. Hay toneladas de herramientas disponibles que realizan este tipo de migración de manera bastante eficiente, casi 100% efectiva.
Base de datos relacional a base de datos no relacional y viceversa
Esta migración es más difícil en comparación con la anterior. Dado que la base de datos relacional y la base de datos no relacional son fundamentalmente diferentes, es posible que su migración no sea 100% eficiente. Esencialmente, migrar a una base de datos no relacional significa sacrificar las propiedades ACID (atómicas, consistentes, aisladas y duraderas) que garantizan la escalabilidad de una base de datos.
Sin embargo, hay varias herramientas gratuitas disponibles que admiten la migración de bases de datos relacionales a bases de datos no relacionales. Aunque su uso no es muy recomendable ya que estas herramientas no son compatibles con la estructura del esquema del sistema y la mayoría parece demasiado rígida para adaptarse a los requisitos del sistema.
Aunque hay algunos consejos básicos de conversión que podemos ofrecer para este tipo de migración que podemos considerar (para simplificar, consideremos MySQL como nuestra base de datos relacional y MongoDB como nuestra base de datos no relacional)

- Convierta el tipo de datos MySQL String a String en MongoDB. Esto puede incluir char, varchar, blob, text, etc.
- Convierta el tipo de datos Numérico de MySQL a Número en MongoDB. Esto puede incluir int, float, decimal, double, etc.
- Convierta el tipo de datos MySQL Date a Date en MongoDB. Esto puede incluir la fecha, el año, la marca de tiempo, etc.
- Convierta el tipo de datos MySQL Bool y Boolean a Boolean en MongoDB.
- Puede evaluar otros casos de la misma manera.
Migración con un modelo híbrido
El diseño del modelo híbrido integra los dos modelos de base de datos populares en un solo marco mientras mitiga los inconvenientes de cada sistema. Por ejemplo, siempre podemos optar por un enfoque híbrido en el que podamos explotar una base de datos relacional para operaciones menos exigentes, en combinación con una base de datos no relacional para iniciativas de uso intensivo de datos.
Copias de seguridad
La planificación de la estrategia de migración antes de la ejecución puede garantizar un proceso de migración sin problemas. Dicho esto, siempre debemos tener un Plan B. Asumiendo el peor de los casos donde hay alguna pérdida de datos, o los datos se corrompen mientras se ejecuta la migración; debe estar preparado para restaurar los datos a su estado original antes de volver a intentarlo. Esta es la razón por la cual la copia de seguridad de datos es un paso muy imperativo durante la DBM (migración de base de datos). Entonces, profundicemos en las opciones que existen para garantizar una copia de seguridad segura de los datos.

Respaldo en la nube

Uno de los métodos más eficientes y seguros para proteger su iniciativa de migración es ejecutar una copia de seguridad en el almacenamiento en la nube. Esencialmente, cuando realiza una copia de seguridad de sus datos en el almacenamiento en la nube, sus archivos se almacenan fuera del sitio. Esto elimina las vulnerabilidades del hardware local que pueden causar problemas. Entonces, ¿por qué una copia de seguridad en la nube?
- Las copias de seguridad en la nube son asequibles porque solo debe pagar por uso.
- Una copia de seguridad en la nube es segura ya que proporciona cifrado de extremo a extremo.
- Permite una fácil recuperación ante desastres y restauración de datos
- Las sólidas opciones de copia de seguridad en la nube incluyen la copia de seguridad completa de la imagen del sistema. Por lo tanto, no necesita volver a instalar el sistema operativo. Las computadoras y los servidores se restauran a la última versión en funcionamiento.
software para compartir archivos

Las suites de software como Dropbox están creciendo para satisfacer las necesidades de sus usuarios. Dropbox mantiene versiones de archivos que se pueden restaurar cuando sea necesario. Similar a la copia de seguridad en la nube, esta opción es asequible y los archivos se almacenan fuera del sitio. ¿Cuáles son sus ventajas?
- Los archivos se pueden restaurar en cualquier sistema en cualquier ubicación.
- Es gratuito y admite la colaboración.
- Altamente seguro (el almacenamiento en la nube encripta sus archivos en tránsito)
- Capacidades de trabajo fuera de línea
Sin embargo, una desventaja es que la restauración no está automatizada. Debe copiar y pegar los datos en la estructura del directorio de intercambio de archivos para guardar los datos. Los archivos deben residir en una estructura definida o, de lo contrario, no se realizará una copia de seguridad. Si los archivos están en una carpeta o directorio compartido, probablemente necesitará más ancho de banda para hacer una copia de seguridad de esos archivos.
En términos generales, existen otros medios disponibles para realizar copias de seguridad, como una copia de seguridad en una unidad flash o en un disco duro externo. Pero estas opciones no se recomiendan ya que no son completamente seguras en comparación con el software de copia de seguridad en la nube o de intercambio de archivos. Por ejemplo, cualquier daño físico a un disco duro puede provocar la pérdida de datos. Además, son más vulnerables y susceptibles a ataques de ransomware y criptovirus.
¿Cómo garantizar que los datos estén seguros?
Al realizar la migración de datos, debe asegurarse de que los datos confidenciales no se violen ni se alteren. Si la migración sale mal, puede tener mayores consecuencias y provocar fugas o pérdidas de datos, como los ejemplos citados aquí en 2020.
Desafortunadamente, las fugas de datos pueden dañar la reputación del cliente, provocar la pérdida de negocios y clientes; o en algunos casos, puede provocar acciones legales. Para evitar todas esas consecuencias, debe elaborar un plan de seguridad de antemano teniendo en cuenta la estrategia de migración.
- Para empezar, el acceso confiable y seguro al servidor y el acceso a los datos deben estar en su lista de prioridades.
- Aumente el número de permisos necesarios para la transferencia de datos. En organizaciones más grandes, los departamentos de seguridad limitan el acceso a los servidores y definen la migración de datos entre los servidores involucrados.
- Los datos corren un alto riesgo cuando hay más partes involucradas. Por lo tanto, evite la transferencia entre partes a través de dispositivos de almacenamiento portátiles o correos electrónicos. En tales casos, los datos pueden verse fácilmente comprometidos.
- Para garantizar el acceso, el almacenamiento y la recuperación seguros de los datos, se debe practicar constantemente el cifrado y el descifrado. Puede utilizar algoritmos de cifrado híbrido para garantizar la máxima seguridad de los datos. Pero esto no es recomendable para todo el mundo. Si la migración falla, los datos se desordenarían y podrían provocar la corrupción o la pérdida de datos.
Para garantizar una migración segura, evite utilizar herramientas primitivas. El uso de herramientas primitivas podría debilitar su sistema y dejar lagunas para que accedan los piratas informáticos. Debe emplear herramientas sólidas para la migración de datos que sean funcionalmente específicas.
Proceso de migración de datos
La migración de datos es principalmente un proceso de varias fases y se deben seguir los siguientes pasos para evitar la pérdida de datos y garantizar una migración segura de la base de datos.
- Evaluación :
- Recopile el análisis de requisitos comerciales y defina el objetivo clave que se debe lograr con DBM.
- Definir el alcance
- Llevar a cabo una amplia elaboración de perfiles de datos:
- Revise los datos de origen, el formato de los datos, revise la estructura del esquema, el contenido y las relaciones entre las instancias de datos
- Comprender el sistema de destino
- Identificar a las partes interesadas
- Presupuestar toda la actividad
- Copias de seguridad
- Asegúrese de que los datos que está migrando estén respaldados de forma segura. Se recomienda utilizar una copia de seguridad en la nube.
- Asegúrese de que el destino esté limpio y protegido de cualquier piratería de datos.
- Disponibilidad de recursos :
- La disponibilidad de tiempo para la migración y el tiempo de inactividad del sistema de destino.
- Asegúrese de que el recurso humano contratado tenga el conjunto de habilidades correcto.
- Identifique la herramienta y los scripts correctos.
- Ejecución de migración de datos :
- El proceso de migración puede incluir secuencias de comandos, herramientas ETL u otras herramientas comparables para mover los datos.
- En el momento de la migración, transformará los datos, normalizará los tipos de datos y, por último, comprobará posibles errores.
- Pruebas y ajustes :
- El equipo y el equipo del cliente deben estar absolutamente seguros de que todos los datos se migran correctamente.
- Por lo tanto, verifique si los datos se mueven correctamente, si los datos están completos y asegúrese de que no falten valores.
- Además, asegúrese de que los datos sean válidos y no contengan valores nulos.
- En caso de que haya alguna discrepancia de datos, debe haber una reversión de datos y todo el proceso debe reiniciarse.
- Auditoría
Una vez que la nueva base de datos esté activa, se puede configurar un sistema para auditar los datos. Esto garantizará la precisión de la migración de la base de datos y llamará la atención sobre datos incompletos e inexactos.
Riesgos potenciales con la migración de la base de datos

La migración de bases de datos es un procedimiento muy complejo y conlleva riesgos e incertidumbres. Siempre puede superarlos mediante una planificación y ejecución adecuadas. Los riesgos que se pueden encontrar son:
- Sistemas de origen desactualizados: aquí, la fuente de datos puede estar desactualizada, redundante, obsoleta o trivial
- Arquitectura de base de datos dispar: en este escenario, las bases de datos de origen podrían estar ubicadas en varias ubicaciones y podrían tener arquitecturas totalmente diferentes entre sí, pero la base de datos de destino necesita que todo esté sincronizado.
- Tiempo de inactividad prolongado: hay casos en los que la migración planificada demora más de lo esperado y, debido a esto, hay un tiempo de inactividad prolongado para el sistema. Esto podría causar pérdidas comerciales para el cliente final y podría no ser aceptable.
- Posible pérdida de datos: no todas las pérdidas de datos se pueden identificar durante la fase de prueba. Algunas instancias de pérdida de datos pueden identificarse eventualmente cuando el sistema recibe suficiente tráfico.
Migración desde una base de datos en tiempo real: para cualquier sitio web de transacciones altas, migrar la base de datos siempre es difícil, ya que se realizan actualizaciones de datos constantes; y la migración de datos en vivo y en tiempo real no es posible. Tiene que haber un tiempo de inactividad para que ocurra cualquier migración.
Observaciones finales
Siempre puede buscar orientación de expertos externos sobre migración de bases de datos. Somos estudios criollos que nos especializamos en migraciones de bases de datos, y estaremos encantados de ayudar o consultar en cualquier esfuerzo de este tipo. Manténgase atado al cuarto y último blog de la serie de migración tecnológica.