¿Puede explicar en profundidad qué es la replicación de la base de datos y qué métodos se conocen al respecto, incluidas las analogías de la vida real?

No creo que sea posible dar una respuesta profunda a la replicación de la base de datos en Quora. Especialmente si quieres analogías de la vida real.

Hay libros completos escritos sobre este tema desde un punto de vista holístico. Aquí hay uno bonito que he leído.

Replicación de datos: Herramientas y técnicas para administrar la información distribuida: 9780471157540: Computer Science Books @ Amazon.com

Hay libros completos escritos en una plataforma específica de implementación específica. Oracle probablemente tiene las opciones más versátiles y complejas para la replicación de la base de datos y Oracle Streams es solo una forma de hacerlo.

Aquí hay dos libros que solo hablan sobre una única forma de replicar Oracle Streams. Solo he leído el primero.

Guía del implementador de Oracle 11g Streams: Ann LR McKinnell, Eric Yen: 9781847199706: Amazon.com: Libros

Oracle Streams 11g Replicación de datos (Oracle Press): 9780071496643: Computer Science Books @ Amazon.com

O puede ver un libro de replicación de Oracle en profundidad utilizando la implementación de Goldengate. No he leído este libro …

Oracle GoldenGate 11g Handbook: 9780071790888: Computer Science Books @ Amazon.com

Aquí hay un libro específico de Sybase que he leído sobre cómo quiere que pienses.

Amazon.com: Sybase 15.0 Replication Server Administration (9781598220452): Saroj Kapoor Bagai, Jagan Bandi Reddy: Libros

Aquí está la forma de MySQL de pensar en la replicación que he leído y aún me puede hacer llorar un poco cuando llegue al final. La implementación de MySQL de “replicación” es una de las muchas razones por las que odio esa plataforma.

MySQL de alto rendimiento: optimización, copias de seguridad y replicación: Baron Schwartz, Peter Zaitsev, Vadim Tkachenko: 9781449314286: Amazon.com: Libros

Ahí está la forma en que AWS realizará la replicación para un RDS.

Existe la forma en que la mayoría de las plataformas NoSQL realizan la replicación, que es impresionante y completamente diferente de todo lo anterior …

O simplemente puede leer la documentación de la plataforma que prefiera …

La replicación no es trivial para hablar con ninguna profundidad. Es al menos muy específico de plataforma y posiblemente de dominio específico.

Por ejemplo, la replicación con datos de atención médica será diferente a la replicación con una aplicación web que no sea HIPPA que solo debe ser eventualmente consistente. Una transacción financiera db gobernada por SOX tendrá requisitos de replicación completamente diferentes que una aplicación de base de datos que se compone de muchas imágenes.

La replicación de la base de datos es una técnica a través de la cual una instancia de una base de datos se copia, transfiere o integra exactamente con otra ubicación. La replicación de la base de datos permite copiar un archivo de base de datos desde un sistema de administración de base de datos maestra (DBMS) y su despliegue exacto en un DBMS esclavo.

Existen 3 métodos principales para la replicación de bases de datos:

Volcado completo y replicación de carga

Con el volcado y la carga completos, define un intervalo de replicación (como cada 4 horas). En ese intervalo, consultamos cada una de las tablas que está replicando, tomamos una instantánea completa (volcado) de la tabla y reemplazamos la instantánea anterior (carga) en su almacén de datos de destino.

Ventaja: la configuración es simple y este método funciona mejor para tablas pequeñas.

Desventaja: las tablas solo se actualizan cada pocas horas debido al tiempo que lleva realizar el volcado. Esto también puede requerir muchos recursos, lo que puede ralentizar su base de datos, especialmente para tablas más grandes.

Replicación incremental

Con incremental, usted define una “columna de indicador de actualización” (como updated_at) para cada una de las tablas que está replicando. Cada vez que se actualiza una fila en su base de datos, obtiene el siguiente valor más grande en la columna del indicador actualizado. Cada pocos segundos, consultaremos en sus tablas lo que ha cambiado desde la última vez que lo verificamos, aprovechando la columna del indicador de actualización. Copiaremos esos cambios incrementales en su almacén de datos de destino y los fusionaremos cada 15 minutos. También le proporcionaremos una vista para ver los cambios casi en tiempo real.

Ventaja: la configuración es simple, no crea mucha carga en su base de datos y es de baja latencia.

Desventaja: Requiere una columna de indicador de actualización para cada tabla. Requiere trabajo adicional para capturar eliminaciones.

Change Data Capture (CDC), también conocida como Replicación de registros

El estado del arte en replicación de bases de datos, CDC es la forma más rápida y confiable de replicar. Para las bases de datos que lo admiten (MySQL, PostgreSQL autohospedado y MongoDB), consultamos el registro interno de la base de datos cada pocos segundos para obtener los últimos cambios. Copiaremos ese registro de cambios en su almacén de datos de destino y los fusionaremos cada 15 minutos. También le proporcionaremos una vista para ver los cambios casi en tiempo real.

Ventaja: estado del arte: permite la replicación casi en tiempo real con un impacto de consulta muy bajo.

Desventaja: Requiere más trabajo de configuración inicial.

Un ejemplo de la vida real con el que tuve que lidiar recientemente es exportar mi base de datos MySQL a un almacén de datos, por lo que utilicé una herramienta llamada Alooma que admite los métodos de replicación mencionados anteriormente.

More Interesting

¿Cuáles son las diferencias entre las computadoras de servidor, las computadoras domésticas y los teléfonos inteligentes?

¿Puedo obtener CS en COMEDK con un rango de 15,300?

¿Cuáles son los proyectos geniales que uno puede hacer en Inteligencia Artificial y Aprendizaje Automático?

¿Cuáles son algunos de los mejores diseños de camisetas y sudaderas de informática?

¿Qué compañías están desarrollando el mejor software de OCR?

¿Cuál es la diferencia práctica y visible entre un procesador de 2.0GHz y un procesador de 2.9GHz en una Macbook Pro?

¿El desarrollo de una interfaz cerebro-computadora causaría que la humanidad evolucione en seres sin voz física o incluso sin brazos y piernas?

¿Cuál será el trabajo de un programador en un mundo donde la computadora está controlada por voz?

¿Hay algún autómata celular bien conocido e interesante?

La pantalla de mi computadora portátil está desarrollando un grupo de píxeles muertos. ¿Necesito reemplazar la pantalla LCD o puedo repararla?

¿Por qué las operaciones matemáticas como la suma, la resta, la multiplicación y la división no pueden tomar más de 2 operandos?

Teoría de la complejidad computacional: ¿Existe una máquina de Turing multidimensional o una máquina de Turing topológica?

¿Cuál es la máxima imprecisión que uno puede enfrentar al usar un decimal de coma flotante de 32 bits?

¿Qué antivirus debo comprar? Kaspersky o cualquier otro?

¿Qué es lo primero que aprendes cuando vas a la universidad para estudiar informática?