我现在一直在努力使用db_replicate实用程序设置“简单”的BerkeleyDB复制。
然而,实际上没有运气,而且我没有找到关于应该如何设置的具体例子。
这是我到目前为止的设置。环境是Debian Wheezy与BDB 5.1.29
一个简单的python脚本,读取“CSV”文件并将每一行插入BDB文件
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_CONFIG文件中,这是我错过了我猜中最重要的部分
repmgr_set_local_site localhost 6000
# 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
我目前从复制工具中获得的唯一内容是:
db5.1_replicate(20648): DB_ENV->open: No such file or directory
在支持流程后,我发现它正在尝试访问__db.001
编辑 ,因此我手动复制了这些文件。目前的输出是:
db5.1_replicate(22295): repmgr is already started
db5.1_replicate(22295): repmgr is already started
db5.1_replicate(22295): repmgr_start: Invalid argument
我想我错过了客户端连接到服务器的实际配置值,但到目前为止没有运气,因为所有设置都产生无法识别的名称 - 值对错误
有谁知道如何完成此设置?也许我甚至没有朝着正确的方向前进,这应该是完全不同的东西?