IBM Cloudant 复制

IBM® Cloudant® for IBM Cloud® 复制是同步两个数据库状态的过程。

源数据库中发生的任何更改都将在目标数据库中重现。 您可以在任意数量的数据库之间创建复制,既可以是持续进行的,也可以作为“一次性”任务。

根据您的应用需求、 您可以使用复制来共享和聚合状态和内容。

复制只在一个方向上进行。 要使两个数据库保持同步、 必须进行双向复制。 完成此过程,从 database1 复制到 database2、 并分别从 database2 复制到 database1

首先,复制完成后,源数据库中的所有活动文档也会存在于目标数据库或“目标”数据库中。 其次,从源数据库中删除的文档也会从目标数据库中删除(如果存在的话)。

复制操作

复制有两种形式:推式复制或拉式复制:

  • 推送复制--源是本地数据库,目标是远程数据库。
  • 拉式复制--源是远程数据库实例,目标是本地数据库。

如果源数据库有一个永久 IP 地址,而目标数据库是本地的,并且是动态分配的 IP 地址,则拉动复制很有用、 而目标数据库是本地的,并拥有动态分配的 IP 地址、 例如,通过 DHCP 获取。 如果要从中央服务器复制到移动设备或其他设备,则适合使用拉式复制。

在所有情况下、 源规范和目标规范中要求的数据库必须存在。 如果没有、 则会在 JSON 对象中返回错误信息。

请参阅下面的示例请求,在源服务器 example.com 上的数据库和 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",
}

如果请求复制的数据库之一不存在,请参阅以下错误响应示例。

{
  "error" : "db_not_found",
  "reason" : "could not open https://example.com/db/"
}

持续复制

默认情况下、 在复制过程中,数据库的同步会在发出复制请求时进行一次。 为确保从源数据库到目标数据库的复制持续进行、 将请求中 JSON 对象的 continuous 字段设置为 true

通过持续复制、 源数据库中的更改会永远复制到目标数据库中,直到您特别取消复制。 直到您明确取消复制。

在两个数据库之间复制更改 当两个实例之间有网络连接时。

运行时 复制进程不会在处理完所有当前更新后停止。 而不是 复制过程会继续等待源数据库的进一步更新、 并将它们应用到目标数据库。

连续复制强制对源数据库进行连续检查。 即使源数据库内容没有变化,这些检查也会导致数据库访问次数增加。 数据库访问被视为多租户数据库配置中工作的一部分。

_replicator 数据库

_replicator 数据库是您账户中的一个特殊数据库、 在这里,您可以 PUTPOST 复制文件,以指定您想要的复制。

在开始复制之前,必须创建 _replicator 数据库。 要创建数据库,请发送 PUT 申请:

https://$ACCOUNT.cloudant.com/_replicator

更多信息,请参阅 数据库

要取消复制、 DELETE 复制文件。 复制文件中提供的字段在请求信息下的创建或修改复制操作说明中描述。 在请求信息下的 创建或修改复制操作说明中进行了描述。

所有添加到 /_replicator 数据库的设计文件和 _local 文件都会被忽略。

重要注意事项

  • 复制会严重影响 IBM Cloudant 实例的性能。 性能测试可帮助您了解在并发复制数量不断增加的情况下对环境的影响。
  • 持续复制 可能会导致大量内部调用。 要求多次呼叫可能会影响 IBM Cloudant 系统多用户的成本。 默认情况下,连续复制未启用。
  • 目标数据库必须已存在。 如果不存在,则不会自动创建。 如果复制前目标数据库不存在,则在描述复制的 JSON 文档中添加 "create_target":true。 有关详细信息,请参阅 在复制过程中创建目标数据库
  • 复制器数据库必须像其他有价值的数据存储一样得到维护和保养。 有关详细信息,请参阅 复制数据库维护

出于安全考虑,IBM Cloudant 团队建议您在复制任务中使用 IAM API 密钥或 IBM Cloudant 中的旧版身份验证 API 密钥, 而不是账户级凭据。 更多信息,请参阅 IAM 指南 或传统 身份验证 API 文档 和传统 授权 API 文档