On Fri, Jan 11, 2019 at 11:13:33PM +0100, SHarbich@t-online.de wrote:
nice slapcat -n 0 > ${BACKUP_PATH}/config.ldif nice slapcat -n 1 > ${BACKUP_PATH}/meinedomain.local.ldif cp -rp /var/lib/ldap /var/lib/ldap.bak cp -rp /etc/ldap/slapd.d /etc/ldap/slapd.d.bak
Modify entries in these two dates with a text editor from hdb to mdb.
You should only need to edit the config ldif. The data shouldn't need any changes.
Note that the database config attributes for hdb and mdb differ a little bit. For example you should configure olcDbMaxSize for mdb.
Stop the OpenLDAP service sudo systemctl stop sldap.service
I would personally do that before dumping, just to make sure you don't miss any changes :) but slapcat while slapd is running is fine too.
Delete the directories of the LDAP tree rm -r /var/lib/ldap /etc/ldap/slapd.d
Rebuild the LDAP database sudo dpkg-reconfigure slapd
In the options select the database MDB and leave everything else as before.
No need to run dpkg-reconfigure. All it does is re-initialize /etc/ldap/slapd.d and /var/lib/ldap with the default contents; but you'd have to stop slapd and delete those before adding back your own anyway.
Just delete the contents out of those directories, leaving them empty, and with the existing ownership/permissions:
find /etc/ldap/slapd.d /var/lib/ldap -mindepth 1 -print find /etc/ldap/slapd.d /var/lib/ldap -mindepth 1 -delete
then fix up your config LDIF and slapadd everything back.
If there is a mistake in your config and slapadd fails, delete the partial content out of slapd.d before trying again.
Then restore the LDAP tree. sudo slapadd -F /etc/ldap/slapd.d -n 0 -l ${BACKUP_PATH}/config.ldif sudo slapadd -F /etc/ldap/slapd.d -n 1 -l ${BACKUP_PATH}/meinedomain.local.ldif
Correct. Note that the directories /etc/ldap/slap.d and /var/lib/ldap should be emptied before doing this.
Hope this helps, Ryan