Réplica de IBM Cloudant
La réplica de IBM® Cloudant® for IBM Cloud® es el proceso que sincroniza el estado de dos bases de datos.
Cualquier cambio que se haya producido en la base de datos de origen se reproduce en la base de datos de destino. Puede crear réplicas entre cualquier número de bases de datos, ya sea de forma continua o como una tarea única.
En función de los requisitos de la aplicación, utilice la réplica para compartir y agregar el estado y el contenido.
La réplica tiene lugar en una sola dirección. Para mantener dos bases de datos sincronizadas entre sí, debe replicar en ambas direcciones. Siga este proceso en el que se replica database1 en database2, y, por separado,
se replica database2 en database1.
En primer lugar, cuando termina la réplica, todos los documentos activos de la base de datos de origen también existen en la base de datos de destino. En segundo lugar, los documentos que se suprimen de la base de datos de origen también se eliminan de la base de datos de destino (si existen allí).
Operación de réplica
La réplica tiene dos formas: réplica de envío (push) o réplica de extracción (pull):
- Réplica de envío (push): donde el origen es una base de datos local y el destino es una base de datos remota.
- Réplica de extracción (pull): donde el origen es una instancia de base de datos remota y el destino es la base de datos local.
La réplica de extracción resulta útil si la base de datos de origen tiene una dirección IP permanente y la base de datos de destino es local y tiene una dirección IP asignada de forma dinámica, por ejemplo obtenida a través de DHCP. La réplica de extracción resulta apropiada si se está realizando una réplica en un dispositivo móvil u otro dispositivo desde un servidor central.
En cualquiera de los casos, las bases de datos solicitadas en la especificación de origen y destino deben existir. Si no es así, se devuelve un error dentro del objeto JSON.
Consulte el siguiente ejemplo de solicitud para replicar entre una base de datos en el servidor de origen example.comy una base de datos de destino en IBM Cloudant.
POST /_replicate
Content-Type: application/json
Accept: application/json
{
"source" : "https://$USERNAME1:$PASSWORD1@example.com/db",
"target" : "https://$USERNAME2:$PASSWORD2@$ACCOUNT2.cloudant.com/db",
}
Consulte el siguiente ejemplo de respuesta de error si una de las bases de datos solicitadas para una réplica no existe.
{
"error" : "db_not_found",
"reason" : "could not open https://example.com/db/"
}
Réplica continua
De forma predeterminada, la sincronización de una base de datos durante la réplica se produce una vez que se realiza la solicitud de réplica. Para asegurarse de que la réplica de la base de datos de origen en la base de datos de destino se realiza
continuamente, establezca el campo continuous del objeto JSON dentro de la solicitud en true.
Con la réplica continua, los cambios en la base de datos de origen siempre se replican en la base de datos de destino hasta que se cancela la réplica de forma específica.
Los cambios se replican entre las dos bases de datos mientras haya una conexión de red disponible entre las dos instancias.
Cuando está en funcionamiento, el proceso de réplica no se detiene cuando termina de procesar todas las actualizaciones actuales. En su lugar, el proceso de réplica sigue esperando actualizaciones adicionales de la base de datos de origen y las aplica al destino.
La réplica continua impone la ejecución continua de comprobaciones en la base de datos de origen. Estas comprobaciones dan como resultado un número creciente de accesos de base de datos, aunque el contenido de la base de datos de origen no haya cambiado. Los accesos de bases de datos se cuentan como parte del trabajo que se realiza en una configuración de base de datos multiarrendatario.
La base de datos _replicator
La base de datos _replicator es una base de datos especial dentro de la cuenta, donde puede ejecutar PUT o POST sobre documentos de réplica para especificar las réplicas que desea.
Antes de iniciar una réplica, debe crear la base de datos _replicator. Para crear una base de datos, envíe una solicitud PUT a:
https://$ACCOUNT.cloudant.com/_replicator
Para obtener más información, consulte el tema sobre Bases de datos.
Para cancelar una réplica, ejecute DELETE sobre el documento de réplica. Los campos que se rellenan en el documento de replicación se describen en la sección « Crear o modificar una operación de replicación », en el apartado «Información sobre la solicitud».
Se pasan por alto todos los documentos de diseño y los documentos _local que se añaden a la base de datos /_replicator.
Notas importantes
- Las réplicas pueden afectar significativamente al rendimiento de una instancia IBM Cloudant. Las pruebas de rendimiento le ayudan a comprender el impacto en el entorno bajo un número creciente de réplicas simultáneas.
- La réplica continua puede dar como resultado muchas llamadas internas. La necesidad de muchas llamadas puede afectar a los costes de los usuarios multiarrendatarios de sistemas IBM Cloudant. De forma predeterminada, la réplica continua no está habilitada.
- La base de datos destino debe existir. No se crea automáticamente si no existe. Añada
"create_target":trueal documento JSON que describe la réplica si la base de datos de destino no existe antes de la réplica. Para obtener más información, consulte Creación de una base de datos de destino durante la réplica. - Las bases de datos de replicador se deben mantener y supervisar, como cualquier otro almacén de datos valioso. Para obtener más información, consulte mantenimiento de bases de datos de réplica.
Por motivos de seguridad, el equipo de IBM Cloudant recomienda el uso de claves de API de IAM o claves de API de la autenticación heredada de IBM Cloudant en lugar de credenciales a nivel de cuenta para los trabajos de réplica. Para obtener más información, consulte la guía de IAM o el documento de la API de autenticación heredada y el documento de la API de autorización heredada.