IBM Cloudant 複製
IBM® Cloudant® for IBM Cloud® 複製是同步兩個資料庫狀態的過程。
來源資料庫中發生的任何變更都將在目標資料庫中重新產生。 您可以針對任意數量的資料庫建立複製關係,無論是持續進行,還是作為「一次性」任務。
視您的應用程式需求而定、 您可以使用複製來共用和彙集狀態與內容。
複製只在一個方向上進行。 要保持兩個資料庫彼此同步、 您必須雙向複製。 將 database1 複製到 database2,完成此程序、 並分別從 database2 複製到 database1。
首先,當複製完成時,來源資料庫中的所有活動文件也存在於目的地或「目標」資料庫中。 其次,從源資料庫中刪除的文件也會從目的資料庫中刪除(如果它們存在的話)。
複製作業
複製有兩種形式:推式複製或拉式複製:
- 推送複製- 來源是本機資料庫,目的地是遠端資料庫。
- 拉式複製- 來源是遠端資料庫實例,目的地是本機資料庫。
如果您的來源資料庫有永久 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 資料庫是您帳戶內的特殊資料庫、 您可以在其中 PUT 或 POST 複製文件,以指定您想要的複製。
開始複製之前,您必須建立 _replicator 資料庫。 若要建立資料庫,請發送 PUT 請求至
https://$ACCOUNT.cloudant.com/_replicator
如需詳細資訊,請參閱 資料庫。
若要取消複製、
DELETE 複製文件。 複製文件中提供的欄位在 Request information(請求資訊)下的 Create or modify replication operation description(建立或修改複製作業)中描述。 請求資訊下的 建立或修改複製作業說明中描述。
所有加入 /_replicator 資料庫的設計文件和 _local 文件都會被忽略。
重要注意事項
- 複製會嚴重影響 IBM Cloudant 實例的效能。 效能測試可協助您瞭解在同時複製次數不斷增加的情況下,對環境造成的影響。
- 持續複製 可能會導致大量內部呼叫。 要求多次通話可能會影響 IBM Cloudant 系統的多租戶使用者的成本。 預設情況下,連續複製並未啟用。
- 目標資料庫必須存在。 如果不存在,則不會自動建立。 如果複製前目標資料庫不存在,則在描述複製的 JSON 文檔中加入
"create_target":true。 如需詳細資訊,請參閱 複製期間建立目標資料庫。 - Replicator 資料庫必須像其他有價值的資料儲存庫一樣,受到維護和照顧。 如需詳細資訊,請參閱 複製資料庫維護。
基於安全性考量,IBM Cloudant 團隊建議您在執行複製工作時,應使用 IAM API 金鑰或 IBM Cloudant 的舊版驗證 API 金鑰, 而非帳戶層級的憑證。 如需詳細資訊,請參閱 IAM 指南 或 舊版驗證 API 文件 和舊版 授權 API 文件。