I've been struggling for some time now on setting up a "simple" BerkeleyDB replication using the db_replicate utility.

However no luck in making it actually work, and I'm not finding any concrete example on how thing should be set up.

Here is the setup I have so far. Environment is a Debian Wheezy with BDB 5.1.29

Database generation

A simple python script reading "CSV" files and inserting each line into the BDB file

from glob import glob
from bsddb.db import DBEnv, DB
from bsddb.db import DB_CREATE, DB_PRIVATE, DB_INIT_MPOOL, DB_BTREE, DB_HASH, DB_INIT_LOCK, DB_INIT_LOG, DB_INIT_TXN, DB_INIT_REP, DB_THREAD

env = DBEnv()
env.set_cachesize(0, 1024 * 1024 * 32)
env.open('./db/', DB_INIT_MPOOL | DB_INIT_LOCK | DB_INIT_LOG |
                  DB_INIT_TXN | DB_CREATE | DB_INIT_REP | DB_THREAD)

db = DB(env)
db.open('apd.db', dbname='stuff', flags=DB_CREATE, dbtype=DB_BTREE)

for csvfile in glob('Stuff/*.csv'):
    for line in open(csvfile):
        db.put(line.strip(), None)

db.close()
env.close()

DB Configuration

In the DB_CONFIG file, this is where I'm missing the most important part I guess

repmgr_set_local_site localhost 6000

Actual replication try

# Copy the database file to begin with
db5.1_hotbackup -h ./db/ -b ./other-place

# Start replication master
db5.1_replicate -M -h db

# Then try to connect to it
db5.1_replicate -h ./other-place

The only thing I currently get from the replicate tool is:

db5.1_replicate(20648): DB_ENV->open: No such file or directory

edit after stracing the process I found out it was trying to access to __db.001, so I've copied those files manually. The current output is:

db5.1_replicate(22295): repmgr is already started
db5.1_replicate(22295): repmgr is already started
db5.1_replicate(22295): repmgr_start: Invalid argument

I suppose I'm missing the actual configuration value for the client to connect to the server, but so far no luck as all the settings yielded unrecognized name-value pair errors

Does anyone know how this setup might be completed? Maybe I'm not even headed in the right direction an this should be something completely different?

没有正确的解决方案

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top