eDirectory 8.8.8 & 9: Defragmenting\Rebuilding the database when it will not load (error: -618)

  • 7022766
  • 22-Mar-2018
  • 23-Jul-2018

Environment

eDirectory 9.1
eDirectory 9.0
eDirectory 8.8 SP8 Patch 11

Situation

Error: -6030 in report synchronization status618 opening the database

Error: -618 opening the database

Error: -6030 opening the database

RECM tag in ndstrace shows a smi error: 0xC220 - FERR_WRITING_FILE

Situation 1:
Running a typical repair of the database will not complete or start - even when starting NDSD with the '-igrfl' or '-ndb' switches.

Situation 2:
The database is fine and many objects were deleted.  It is desired to de-fragment and reduce the size of the database.  Ndsrepair -I was used to see what savings could be had.  However, more space should have been reclaimed after running a ndsrepair and selecting 'Reclaim Disk Space'.

Resolution

Running a repair using the example below will allow for the database to be totally rebuilt so that issues within it are resolved such as -618 errors that may prevent the database from loading normally.

1.
NDSD\DHOST should be shutdown and setup to not open its agent (-ndb) when it loads the next time.

Linux - init.d
start NDSD with the following command: /etc/init.d/ndsd start -ndb

Linux - systemd
set the variable, NDSD_DONT_OPEN_AGENT=Y, in the eDirectory /etc/opt/novell/eDirectory/conf/env file.  Then restart eDirectory.

Windows
set NDS4NT_SUSPEND=Y in the Windows environment variables then restart DHOST.

2. Run the repair with the rebuild options set:

Linux:
ndsrepair –R –l yes –i no –t no –r no –v no

Windows:
Run a local repair with only these options set:
- Structure check with index check
- Rebuild entire  database
- Perform Tree Structure check
- Repair all local replicas
- Validate stream files

Once the repair is complete remove any environment variables used and restart eDirectory.

Note: if the repair will still not succeed try first running it with no options set then with the rebuild options above.  To run with no options on Linux run: 
ndsrepair -R -l yes -u no -m no -f no -d no -t no -i no -o no -r no -v no -c no