如何在BerkeleyDB中设置复制

时间:2014-01-03 17:43:14

标签: database-replication berkeley-db

我现在一直在努力使用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

我想我错过了客户端连接到服务器的实际配置值,但到目前为止没有运气,因为所有设置都产生无法识别的名称 - 值对错误

有谁知道如何完成此设置?也许我甚至没有朝着正确的方向前进,这应该是完全不同的东西?

0 个答案:

没有答案