9.5.3. Single Replication

You can request replication of a database so that the two databases can be synchronized. By default, the replication process occurs one time and synchronizes the two databases together. For example, you can request a single synchronization between two databases by supplying the source and target fields within the request JSON content.

POST http://couchdb:5984/_replicate
Content-Type: application/json
Accept: application/json

{
   "source" : "recipes",
   "target" : "recipes-snapshot",
}

In the above example, the databases recipes and recipes-snapshot will be synchronized. These databases are local to the CouchDB instance where the request was made. The response will be a JSON structure containing the success (or failure) of the synchronization process, and statistics about the process:

{
   "ok" : true,
   "history" : [
      {
         "docs_read" : 1000,
         "session_id" : "52c2370f5027043d286daca4de247db0",
         "recorded_seq" : 1000,
         "end_last_seq" : 1000,
         "doc_write_failures" : 0,
         "start_time" : "Thu, 28 Oct 2010 10:24:13 GMT",
         "start_last_seq" : 0,
         "end_time" : "Thu, 28 Oct 2010 10:24:14 GMT",
         "missing_checked" : 0,
         "docs_written" : 1000,
         "missing_found" : 1000
      }
   ],
   "session_id" : "52c2370f5027043d286daca4de247db0",
   "source_last_seq" : 1000
}

The structure defines the replication status, as described in the table below:

Table 9.4.  Replication Status

FieldDescription
history [array] Replication History
        doc_write_failures Number of document write failures
        docs_read Number of documents read
        docs_written Number of documents written to target
        end_last_seq Last sequence number in changes stream
        end_time Date/Time replication operation completed
        missing_checked Number of missing documents checked
        missing_found Number of missing documents found
        recorded_seq Last recorded sequence number
        session_id Session ID for this replication operation
        start_last_seq First sequence number in changes stream
        start_time Date/Time replication operation started
ok Replication status
session_id Unique session ID
source_last_seq Last sequence number read from source database