TonyChyi

我在那一角落患过抽风

OpenLDAP的备份与灾难恢复(Berkeley DB篇)
2015年12月08日 文章
好吧,只有这一篇。 OpenLDAP一般使用Berkeley DB作为数据存储。 LDAP有自己的数据导出工具,但很可惜,并不是所有的数据都能被导出,作为备份自然是不靠谱。 另外,如果因为各种原因(故障、熊孩子、软件问题),使得slapd无法启动的话,备份与恢复就成了一个让人哭的问题了。 备份 幸好,Berkeley DB有一个不算是神器的神器:db_dump #!/bin/sh DIR=/var/lib/ldap TMPDIR=/tmp BAKDIR=bdbbak # 在正式备份前,强制归档 db_checkpoint -1 -h $DIR db_archive -d -h $DIR mkdir -p $TMPDIR/$BAKDIR cd $DIR for i in $(ls *.bdb) do db_dump $i > $TMPDIR/$BAKDIR/$i.bak done cd $TMPDIR tar cjvf $BAKDIR-$(date "+%Y%m%d%H%M%S").tar.bz2 $BAKDIR 上面是一个自动备份的脚本,使用db_dump直接将数据输出到stdout(至少数据还算是会好的吧,如果在不出故障的情况下),而且是以文本形式输出的。 恢复 好吧,虽然Berkeley DB自带db_recover,但也有搞不定的时候,如果用db_recover -c还是恢复不了怎么办? 这个时候,db_dump加db_load也许会有用。 使用方法如下: # OpenLDAP可能会有的数据文件: # cn.bdb dn2id.bdb entryCSN.bdb entryUUID.bdb givenName.bdb id2entry.bdb mail.bdb objectClass.bdb ou.bdb sn.bdb uid.bdb db_load data.bdb < data.
Tags: #OpenLDAP

 

TonyChyi © 2018 GPLv2