[Samba] Restoring Samba databases from /var/lib/samba

Denis CARDON
2022-06-02T06:49:21Z

Hi Sebastian,

Le 01/06/2022 ? 23:54, Sebastian Arcus via samba a
?crit?:
> To start with the end, until today I never realised that there are
> specific procedures for backing up Samba AD databases - which is my bad.
> I've always backed up /var/lib/samba and /var/cache/samba, seeing as
> that's where Samba kept its stuff. Today I've accidentally deleted
> /var/lib/samba, and tried to copy it back from the nightly backups.
> Needless to say that it all went to pots, and dns is not working
> properly any more, not matter what I try. I can provide more details and
> logs, but first I wanted to ask if it is even worth the effort? Is my
> backup of /var/lib/samba basically useless to restore things to where
> they were before?

like Andrew said, as for every database you should use a proper coherent
backup for samba ldb db files. That said, from experience it seldom
fails (backups happen in the night when not much happens).

Could you try first to switch back to internal dns (if you where using
bind-dlz), it should remove much issue with hardlinks and all. And turn
off you bind9 on that machine. Then do a dbcheck --cross-ncs.

If you do a ldbsearch on the ldb files, does it crash?

And if it goes back alive, please upgrade, there has been tons of
bugfixes since samba 4.9.

Cheers,

Denis


>
> Some basic info:
> OS: Slackware 14.1
> Samba: 4.9.4
> Mode: Active Directory DC with file server on the same machine - only
> one DC on domain
>
> Briefly, the samba_dlz plugin seems to be loading, but the logs have
> various errors which so far I can't make sense of:
>
> Jun? 1 22:36:05 srv-01-op samba[11769]:
> ../source4/dsdb/kcc/kcc_periodic.c:768: Failed samba_kcc -
> NT_STATUS_ACCESS_DENIED
>
> and:
>
> # samba-tool dns zonelist localhost -U Administrator
> Password for [redacted\Administrator]:
> ERROR(runtime): uncaught exception - (9717,
> 'WERR_DNS_ERROR_DS_UNAVAILABLE')
>  ? File
"/usr/lib64/python2.7/site-packages/samba/netcmd/__init__.py",
> line 177, in _run
>  ??? return self.run(*args, **kwargs)
>  ? File "/usr/lib64/python2.7/site-packages/samba/netcmd/dns.py",
line
> 670, in run
>  ??? request_filter)
>
> Should I just cut my loses and rebuild everything from scratch? It will
> involve work from my part and downtime for the users, but I should have