在couchdb 1.1.0中列出活动复制

dan*_*ast 3 couchdb

我通过POST到localhost:5984/_replicate在couchdb中引导复制.此URL仅接受POST请求.

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

当我将复制POST配置为_replicate时,它会启动,但我无法获取有关它的信息.它也没有列在_replicator中.

  • 如何获取活动复制列表?
  • 如何取消活动复制?

编辑:如何使用该_replicator方法触发复制.

感谢JasonSmith的评论,我得到了以下解决方案:PUTting to _replicator要求使用目标数据库的完整URL(包括验证凭据).使用_replicateurl 时不是这种情况,我很高兴获得目标数据库的名称(我在这里谈论拉动复制).据我所知,这里解释了原因(参见第8节"user_ctx属性和委托")

Jas*_*ith 7

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

要获取活动复制的列表,/_active_tasks请将GET 作为服务器管理员.例如(格式化):

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 ...
  }
]
Run Code Online (Sandbox Code Playgroud)

维基有取消CouchDB复制的说明.基本上,您想要指定相同的源和目标,还要添加"cancel":true.