Backup LDAP database

I'm trying to backup a LDAP server from version 2.4.23 to a new 2.4.40 one. During the package initial configuration I'm asked some question which I answer with actual facts about the database, looking to get the same configuration of the old server. But as soon as I finish the configuration it is noticeable that it did not yielded the expected configuration.

Here is the configuration of the old server (acquired with slapcat -n0):

dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcPidFile: /var/run/slapd/slapd.pid
structuralObjectClass: olcGlobal
entryUUID: cde5ce8a-bf8f-1030-9594-7f29588dac90
creatorsName: cn=config
createTimestamp: 20111220195151Z
olcLogLevel: Stats
olcTLSCertificateFile: /etc/ssl/certs/ufpa.br.crt
olcTLSCertificateKeyFile: /etc/ssl/private/ufpa.br.key
olcToolThreads: 4
olcSizeLimit: unlimited
entryCSN: 20111222143131.011291Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20111222143131Z

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}syncprov
structuralObjectClass: olcModuleList
entryUUID: cdeca534-bf8f-1030-959c-7f29588dac90
creatorsName: cn=admin,cn=config
createTimestamp: 20111220195151Z
entryCSN: 20111220195151.317803Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20111220195151Z

dn: cn=schema,cn=config
objectClass: olcSchemaConfig
cn: schema
structuralObjectClass: olcSchemaConfig
entryUUID: cde86cda-bf8f-1030-9597-7f29588dac90
creatorsName: cn=admin,cn=config
createTimestamp: 20111220195151Z
entryCSN: 20111220195151.290145Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20111220195151Z

And this is what I get from the freshly installed server (with slapcat):

dn: dc=ufpa,dc=br
objectClass: top
objectClass: dcObject
objectClass: organization
o: UFPA
dc: ufpa
structuralObjectClass: organization
entryUUID: 90e79216-16d2-1037-8dbb-11462ab3e25c
creatorsName: cn=admin,dc=ufpa,dc=br
createTimestamp: 20170816132842Z
entryCSN: 20170816132842.412456Z#000000#000#000000
modifiersName: cn=admin,dc=ufpa,dc=br
modifyTimestamp: 20170816132842Z

dn: cn=admin,dc=ufpa,dc=br
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9RC9YcU5KVFF1UHB0c0Nkc2pObUgrV2NSZHFVM3JWUkI=
structuralObjectClass: organizationalRole
entryUUID: 90e8e2b0-16d2-1037-8dbc-11462ab3e25c
creatorsName: cn=admin,dc=ufpa,dc=br
createTimestamp: 20170816132842Z
entryCSN: 20170816132842.421067Z#000000#000#000000
modifiersName: cn=admin,dc=ufpa,dc=br
modifyTimestamp: 20170816132842Z

Trying to import the files generated from the old server yields this:

slapadd: could not add entry dn="cn=config" (line=1):
_                       0.35% eta   none elapsed            none spd   2.0 M/s
Closing DB...

And if I try to import just the users and computers' info, I get this:

slapadd: line 1: database #1 (dc=ufpa,dc=br) not configured to hold "o=UFPA"; no database configured for that naming context
_                       0.00% eta    31s elapsed            none spd   1.9 M/s
Closing DB...

I've also dumped the original database using ldapsearch -x -D "cn=admin,o=UFPA" -w 'admin_passwd' -b "o=UFPA" -H ldap://localhost -LLL "*" "+" > ldap_dump.ldif

And then tried to restore using ldapadd -Wx -D "cn=admin,dc=ufpa,dc=br" -h localhost -f ldap_dump.ldif

But this is what I get:

adding new entry "o=UFPA"
ldap_add: Server is unwilling to perform (53)
        additional info: no global superior knowledge

Can anyone help me out with this issue?

3
задан 17 August 2017 в 16:49
3 ответа

Если вы хотите восстановить полную резервную копию cn = config с другого сервера, лучше всего начать с пустого каталога конфигурации (на мой взгляд). В Debian и Ubuntu установщик создаст для вас базовую конфигурацию, что может быть причиной того, что он не может импортировать cn = config , потому что он уже существует.

Вот 2 варианта:

  • игнорируют ошибки и продолжают импорт, используя параметр -c , чтобы slapadd
  • начать с пустого каталога конфигурации и импортировать всю конфигурацию из файла ldif.

Вот как я сделано.

На старом сервере:

slapcat -b cn=config > config.ldif

На новом сервере:

# backup current config
tar -czf /var/backups/openldap.config-$(date +%y%m%d).gz /etc/ldap/slapd.d
# delete current config
rm -rf /etc/ldap/slapd.d/*
# import config file copied from old server
slapadd -F /etc/ldap/slapd.d/ -b cn=config -l config.ldif

Вы получаете ошибку нет глобальных основных знаний , потому что OpenLDAP не имеет базы данных для хранения dn: dc = ufpa, dc = br in. Если он правильно настроен на старом сервере, вышеуказанный метод должен перенести все это на новый сервер. Затем вы также можете сделать резервную копию и восстановить эту базу данных, как показано ниже.

На старом сервере:

slapcat -b dc=ufpa,dc=br > ufpa.br.ldif

На новом сервере:

# backup current database
tar -czf /var/backups/openldap.data-$(date +%y%m%d).tgz /var/lib/ldap
# delete current database
rm -rf /var/lib/ldap/*.*
# restore backup from old server
slapadd -b ufpa.br.ldif

Если вы получите сообщение об ошибке, которое не может добавить запись dn = "dc = ufpq, dc = br ", то что-то в резервной копии конфигурации, вероятно, уже создало его. Попробуйте использовать параметр -c в последней команде slapadd .

2
ответ дан 3 December 2019 в 06:27

Здравомыслящие люди используют syncrepl для репликации / резервного копирования своих баз данных.


Вы упустили слишком много деталей, чтобы вам помочь. Например, это не может быть всей и, конечно же, не всех соответствующих частей конфигурации ваших старых серверов. Он не имеет настроенных суффиксов.

1
ответ дан 3 December 2019 в 06:27

Если вы не можете использовать -c в качестве slapadd с ошибкой, попробуйте использовать slapadd -F / etc / ldap / slapd .d / -l ufpa.br.ldif. Перед использованием убедитесь, что / var / lib / ldap пуст, и после восстановления установите владельца ldap.

0
ответ дан 3 December 2019 в 06:27

Теги

Похожие вопросы