Seite 1 von 1

[GELÖST] LDB-Datenbankgröße > 4 GB

Veröffentlicht: 5. Dez. 2018 - 17:24 Uhr
von gtirmont
Guten Morgen,

Die Dateigröße /var/lib/samba/private/sam.ldb.d/DC%3DADS,DC%3DUNIV-LILLE,DC%3DFR.ldb Unsere Domain ads.univ-lille.fr hat das 4G-Limit bereits überschritten :?

Code: Alle auswählen

-rw------- 1 root root 4294967295 déc.   5 17:14 /var/lib/samba/private/sam.ldb.d/DC%3DADS,DC%3DUNIV-LILLE,DC%3DFR.ldb
Wir haben 85.000 Benutzer, aber wir können den Zugriff einschränken, indem wir nur wirklich aktive Benutzer auf dieser Domain zulassen.
Ich erhalte diese Fehlermeldung nur, wenn ich versuche, einen Benutzer zu löschen:

Code: Alle auswählen

ltdb: tdb(/var/lib/samba/private/sam.ldb.d/DC%3DADS,DC%3DUNIV-LILLE,DC%3DFR.ldb): tdb_expand overflow detected current map_size[4294967295] size[9108]!

../source4/dsdb/samdb/ldb_modules/repl_meta_data.c:4447: Failed to rename object from 'CN=test01,OU=IPTA,OU=Autres,OU=ULilleRessources,DC=ads,DC=univ-lille,DC=fr' to 'CN=test01\0ADEL:9ff44ef0-221e-4287-b591-dc330eb76d80,CN=Deleted Objects,DC=ads,DC=univ-lille,DC=fr' - ldb_wait from ../source4/dsdb/samdb/ldb_modules/util.c:499 with LDB_WAIT_ALL: Operations error (1)
ERROR(ldb): Failed to remove user "test01" - ldb_wait from ../source4/dsdb/samdb/ldb_modules/util.c:499 with LDB_WAIT_ALL: Operations error (1)
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 455, in run
    samdb.delete(user_dn)
Wir können keine Objekte (Benutzer, Computer usw.) mehr hinzufügen

Haben Sie eine Lösung zur Verkleinerung der Datenbank? Auch wenn dies das Löschen von Objekten (z. B. Benutzern) bedeutet?

Vielen Dank für Ihre Hilfe

Betreff: LDB-Datenbankgröße > 4 GB

Veröffentlicht: 6. Dezember 2018 - 12:30 Uhr
von dcardon
Hallo gtirmont,
gtirmont schrieb: 5. Dez. 2018 - 17:24 Uhr Guten Morgen,

Die Dateigröße /var/lib/samba/private/sam.ldb.d/DC%3DADS,DC%3DUNIV-LILLE,DC%3DFR.ldb Unsere Domain ads.univ-lille.fr hat das 4G-Limit bereits überschritten :?

Code: Alle auswählen

-rw------- 1 root root 4294967295 déc.   5 17:14 /var/lib/samba/private/sam.ldb.d/DC%3DADS,DC%3DUNIV-LILLE,DC%3DFR.ldb
Wir haben 85.000 Benutzer, aber wir können den Zugriff einschränken, indem wir nur wirklich aktive Benutzer auf dieser Domain zulassen.
Ich erhalte diese Fehlermeldung nur, wenn ich versuche, einen Benutzer zu löschen:

Code: Alle auswählen

ltdb: tdb(/var/lib/samba/private/sam.ldb.d/DC%3DADS,DC%3DUNIV-LILLE,DC%3DFR.ldb): tdb_expand overflow detected current map_size[4294967295] size[9108]!

../source4/dsdb/samdb/ldb_modules/repl_meta_data.c:4447: Failed to rename object from 'CN=test01,OU=IPTA,OU=Autres,OU=ULilleRessources,DC=ads,DC=univ-lille,DC=fr' to 'CN=test01\0ADEL:9ff44ef0-221e-4287-b591-dc330eb76d80,CN=Deleted Objects,DC=ads,DC=univ-lille,DC=fr' - ldb_wait from ../source4/dsdb/samdb/ldb_modules/util.c:499 with LDB_WAIT_ALL: Operations error (1)
ERROR(ldb): Failed to remove user "test01" - ldb_wait from ../source4/dsdb/samdb/ldb_modules/util.c:499 with LDB_WAIT_ALL: Operations error (1)
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 455, in run
    samdb.delete(user_dn)
Wir können keine Objekte (Benutzer, Computer usw.) mehr hinzufügen

Haben Sie eine Lösung zur Verkleinerung der Datenbank? Auch wenn dies das Löschen von Objekten (z. B. Benutzern) bedeutet?

Vielen Dank für Ihre Hilfe
Wir haben die Finanzierung für die Entwicklung des LMDB-Backends für Samba 4.9 gesichert, wodurch die uns bekannte 4-GiB-Grenze aufgehoben wird.

Sie müssten daher auf Samba 4.9 LMDB umsteigen. Dazu müssten Sie jedoch zunächst einen neuen 4.9 LMDB-Domänencontroller integrieren, was nicht möglich ist, da Sie keine Objekte mehr erstellen können.

Zur Information: Das Löschen eines Benutzers löscht den Eintrag nicht vollständig, sondern verschiebt ihn in den Ordner „CN=Gelöschte Objekte“. Daher wird erst Speicherplatz freigegeben, nachdem die Gültigkeitsdauer des Tombstones abgelaufen ist und Active Directory das Objekt endgültig gelöscht hat. Sobald das Objekt endgültig gelöscht ist, muss TDB den freigegebenen Speicherplatz wieder freigeben.

Schließlich können Sie versuchen, ein `tdbbackup` auszuführen und die Datenbank anschließend wiederherzustellen (dadurch wird der freigegebene Speicherplatz freigegeben, ähnlich wie mit `VACUUM` in PostgreSQL). Wenn die Datenbank jedoch voll ist, funktioniert dies möglicherweise nicht. Sie könnten `ldbdel` ausprobieren, aber ich denke, das ist noch etwas zu abstrakt. Sie müssten die TDB-Einträge der LDB-Abstraktionsschicht nach Objekten durchsuchen, die Sie löschen können.

Angesichts der Größe Ihrer Universität empfehle ich Ihnen, sich an unser Vertriebsteam zu wenden. Kurzfristig ist die Bereinigung der TDB wahrscheinlich die beste Option, aber Sie sollten zeitnah auf LMDB 4.9 aktualisieren. Wir haben LMDB 4.9 intensiv getestet und die Ergebnisse sind zufriedenstellend. Da wir bei einem so kritischen System wie Active Directory jedoch lieber auf Nummer sicher gehen, setzen wir bei den meisten unserer Kunden weiterhin auf Version 4.8.

Aufrichtig,

Denis

Betreff: LDB-Datenbankgröße > 4 GB

Veröffentlicht: 6. Dez. 2018 - 14:38 Uhr
von gtirmont
Vielen Dank für Ihre Antwort!

Ich habe tdbbackup gerade auf unserer Entwicklungsinfrastruktur (einem einzelnen DC) getestet und es hat einwandfrei funktioniert.
Ich wollte dasselbe auf unserer Testinfrastruktur (zwei DCs) durchführen. Gibt es eine bestimmte Vorgehensweise, um Replikationsfehler zu vermeiden?

Beste Grüße,

Gaétan

Betreff: LDB-Datenbankgröße > 4 GB

Veröffentlicht: 19. Dez. 2018 - 15:40 Uhr
von gtirmont
Hallo,

ich habe ein Datenbank-Backup (tdbbackup) durchgeführt, wodurch die Größe von 4,1 GB auf 1,5 GB sank. Um Replikationsprobleme zu vermeiden, habe ich den zweiten Domänencontroller zuvor herabgestuft.
Anschließend habe ich ihn neu installiert und mit der Option `--domain-critical-only` hinzugefügt, um zunächst nur die minimal erforderlichen Objekte und später die restlichen Objekte zu replizieren. Ohne diese Option erfolgt die Replikation sofort, und bei einer 1,5 GB großen Datenbank dauert sie entsprechend lange und führt zu einem LDAP-Timeout (https://git.samba.org/?p=samba.git;a=co ... 079a292079).

Heute können wir wieder Objekte erstellen, und die Replikation funktioniert.
Bitte markieren Sie diesen Thread als gelöst. ;)

Mit freundlichen Grüßen,
Gaétan