The DB->close() database handle closes the DB handle. By
default, DB->close() also flushes all modified records from the
database cache to disk.
There is one flag that you can set to customize
DB->close():
-
DB_NOSYNC
-
Do not flush cached information to
disk.
It is important to understand that flushing
cached information to disk only minimizes the window of
opportunity for corrupted data, it does not eliminate the
possibility.
While unlikely, it is possible for database corruption to
happen if a system or application crash occurs while writing
data to the database. To ensure that database corruption never
occurs, applications must either:
-
Use transactions and logging with automatic
recovery.
-
Use logging and application-specific
recovery.
-
Edit a copy of the database, and, once all
applications using the database have successfully called
DB->close(), use system operations (for example, the POSIX
rename system call) to atomically replace the original
database with the updated copy.