在couchdb 1.1.0中列出活动复制



我通过post到localhost:5984/_replication来引导couchdb中的复制。这个URL只接受POST请求。

还有第二个URL: localhost:5984/_replicator,它接受PUT、GET和DELETE请求。

当我将复制post配置为_replication时,它启动了,但我无法获得有关它的信息。在_replicator中也没有列出。

  • 如何获取活动复制列表?
  • 如何取消已激活的复制?
编辑:如何使用_replicator方法触发复制。

感谢JasonSmith的评论,我得到了以下解决方案:put to _replicator需要使用目标数据库的完整url(包括身份验证凭据)。当使用_replicate url时,情况并非如此,它很高兴获得目标数据库的名称(我在这里谈论的是拉复制)。据我所知,这里解释了原因(参见第8节,"user_ctx属性和委托")

最初的API是一个特殊的URL, /_replicate,您告诉Couch要做什么,它会告诉您结果。然而,较新的系统是一个常规数据库,称为/_replicator,您在其中创建文档,告诉Couch该做什么。文档格式与旧的_replicate格式相同,但是CouchDB将在复制过程中更新文档。(例如,它将添加"state":"triggered""state":"complete"等字段)

获取活动复制列表,get /_active_tasks作为服务器管理员。例如(格式化):

curl http://admin:secret@localhost:5984/_active_tasks
[ { "type": "Replication"
  , "task": "`1bea06f0596c0fe6a1371af473a95aea+create_target`: `http://jhs.iriscouch.com/iris/` -> `iris`"
  , "started_on": 1315877897
  , "updated_on": 1315877898
  , "status": "Processed 83 / 119 changes"
  , "pid": "<0.224.0>"
  }
, { "type": "Replication"
  , // ... etc ...
  }
]

wiki有取消CouchDB复制的说明。基本上,您希望指定相同的源和目标,并添加"cancel":true

最新更新