&author.jht;
May 28, 2008
Managing TDB Files
Features and Benefits
tdb
Trivial Database
Samba uses a lightweight database called Trivial Database (tdb) in which it stores persistent and transient data.
Some tdb files can be disposed of before restarting Samba, but others are used to store information that is vital
to Samba configuration and behavior. The following information is provided to help administrators who are seeking
to better manage their Samba installations.
tdb
corrupted
backup
restore
Those who package Samba for commercial distribution with operating systems and appliances would do well to take
note that tdb files can get corrupted, and for this reason ought to be backed up regularly. An appropriate time
is at system shutdown (backup) and startup (restore from backup).
NTDB
As of Samba 4.1, the NTDB format can be used if 'use ntdb' is set. In this case, tdb files are automatically converted to ntdb files (with the .ntdb extension). The old .tdb file is turned into a dangling symlink to 'This is now in an NTDB' to prevent it being accidentally used). The table indicates what databases are currently available as NTDB files.
Samba's Trivial Database Files
File namePreserveNTDBDescription
account_policy.tdbYN
NT account policy settings such as pw expiration, etc...
brlock.tdbNN
Byte range locks.
browse.datNN
Browse lists - gets rebuilt automatically.
connections.tdbNN
Share connections. Used to enforce max connections, etc.
gencache.tdbNN
Generic caching database.
group_mapping.tdbYN
Stores group mapping information. Not used when using LDAP backend.
lang_en.tdbYN
Stores language encoding information.
locking.tdbNN
Stores share mode and oplock information.
login_cache.tdbNN
Keeps a log of bad pw attempts.
messages.tdbNN
Used to keep track of Samba internal messaging.
netsamlogon_cache.tdbYN
Cache of user net_info_3 struct from net_samlogon()
requests from domain member machines.
ntdrivers.tdbYN
Stores installed printer driver information.
ntforms.tdbYN
Stores installed printer forms information.
ntprinters.tdbYN
Stores installed printers information.
printing directoryYN
Directory containing tdb per print queue of cached lpq output.
registry.tdbYN
Windows registry skeleton (connect via regedit.exe).
sessionid.tdbNN
Session information to support utmp = yes capabilities.
share_info.tdbYN
Stores share-level ACL configuration settings.
Default ACL is Everyone - Full Control.
unexpected.tdbNN
Unexpected packet queue needed to support windows clients that respond on a
different port that the originating reques.
winbindd_cache.tdbNN
Winbind's cache of user lists.
winbindd_idmap.tdbYN
Winbind's local IDMAP database.
wins.datNN
WINS database iused only when wins support = yes
has been set. This gets rebuilt or updated at every restart.
wins.tdbYN
The working permanent storage for all WINS data. This database is used only
when wins support = yes has been set in the &smb.conf; file.
Note: This retains all manually configured WINS entries. Manual setting can be done use the net utility.
secrets.tdbYY
This tdb file stores internal settings such as the machine and the domain SID, secret passwords
that are used with LDAP, the machine secret token, etc. This is an essential file that is stored
in a secure area. Vendors locate this in various folders. Check smbd -b to
find its location on your system.
schannel_store.tdbYY
This stores secure channel access token information used with SMB signing.
passdb.tdbYN
This stores the Samba SAM account information when using a tdbsam password backend.
Managing TDB Files
The tdbbackup utility is a tool that may be used to backup samba tdb files.
This tool may also be used to verify the integrity of the tdb files prior to Samba startup or
during normal operation. If it finds file damage it will search for a prior backup the backup
file from which the damaged tdb file will be restored. The tdbbackup
utility can safely be run at any time. It was designed so that it can be used at any time to
validate the integrity of tdb files, even during Samba operation.
It is recommended to backup all tdb files as part of the Samba start-up scripts on a Samba
server. The following command syntax can be used:
myserver# > cd /var/lib/samba
myserver@ > tdbbackup *.tdb
The default extension is .bak. Any alternate extension can be specified
by executing tdbbackup -s 'new_extension' *.tdb as part of your startup script.