LDAP的数据备份还原
备份数据
备份主要使用slapcat命令,该命令的格式如下:
/usr/bin/slapcat [-v] [-c] [-g] [-d level] [-b suffix] [-n dbnum] [-a filter] [-f slapd.conf] [-F confdir] [-l ldif-file]
-v: 启用verbose模式;
-c: 启用continue模式,会忽略错误;
-g: 禁用subordinate gluing;
-d level: 开启debug模式,会输出debug信息;
-b suffix: 使用指定的后缀来决定哪个数据库需要备份。-b不能与-n一起使用。
-n dbnum: 为指定的第dbnum个数据库生成备份。-b不能与-n一起使用。
-a filter: 过滤条件;比如 slapcat -a "(!(entryDN:dnSubtreeMatch:=ou=People,dc=example,dc=com))" 会备份所有dc=example,dc=com下的不包含ou=People,dc=example,dc=com子树的数据;
-f slapd.conf: 指定slapd.conf配置文件;
-F confdir: 指定slapd配置文件目录,比如CentOS下的/etc/openldap/slapd.d; 如果-f和-F同时被指定,则使用-f的配置,如果两者都没有被指定,则使用默认配置;
-l ldif-file: 需要生成的ldif文件名称。
备份配置文件
slapcat -n 0 -l config.ldif
参数”-n 0″:指示slapcat命令备份编号为0的数据库,也就是存储配置文件的数据库,n是number的意思;
参数”-l config.ldif”:指示slapcat命令将数据备份至”config.ldif”文件中。
备份数据
备份mdb数据库要求slapd处于运行状态,所以无法停止服务,为了保证备份过程没有数据不一致的问题我们需要禁止请求Open LDAP服务,然后再执行备份命令。
slapcat -n 2 -l data.ldif
或
slapcat -b "dc=shadow,dc=com" -l backup.ldif
参数-n同样是指示数据库的编号,这个编号在安装的时候进行指定;
参数”-l data.ldif”:指示slapcat命令将数据备份至”data.ldif”文件中。
还原数据
1. 准备
(1) 还原数据之前暂停slapd服务
sudo systemctl stop slapd
2. 恢复配置文件
(1) 查看配置文件目录权限设置
ls -ld /etc/openldap/slapd.d
(2) 备份配置文件目录
sudo mv /etc/openldap/slapd.d /etc/openldap/slapd.d.`date '+%Y-%m-%d'`
(3) 创建新的配置文件目录
sudo mkdir /etc/openldap/slapd.d
(4) 还原
sudo slapadd -n 0 -F /etc/openldap/slapd.d -l config.ldif
参数”-n 0″:与备份命令的含义一致
参数“-F /etc/openldap/slapd.d”:指明了配置文件所在的目录。
(5)重新赋权
chown -R ldap:ldap /etc/openldap/slapd.d
3. 还原数据文件
(1) 查看数据文件目录权限设置
ls -ld /var/lib/ldap
(2) 备份数据文件目录
sudo mv /var/lib/ldap /var/lib/ldap`date '+%Y-%m-%d'`
(3) 创建新的数据文件目录
sudo mkdir /var/lib/ldap
(4) 还原
sudo slapadd -n 2 -F /etc/openldap/slapd.d -l data.ldif
(5)重新赋权
sudo chown -R ldap:ldap /var/lib/ldap
4. 恢复slapd服务
sudo systemctl start slapd