<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Flushing the database cache</title> <link rel="stylesheet" href="gettingStarted.css" type="text/css" /> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /> <link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" /> <link rel="up" href="am.html" title="Chapter 3. Access Method Operations" /> <link rel="prev" href="am_verify.html" title="Database verification and salvage" /> <link rel="next" href="am_close.html" title="Database close" /> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">Flushing the database cache</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="am_verify.html">Prev</a> </td> <th width="60%" align="center">Chapter 3. Access Method Operations </th> <td width="20%" align="right"> <a accesskey="n" href="am_close.html">Next</a></td> </tr> </table> <hr /> </div> <div class="sect1" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h2 class="title" style="clear: both"><a id="am_sync"></a>Flushing the database cache</h2> </div> </div> </div> <p>The <a href="../api_reference/C/dbsync.html" class="olink">DB->sync()</a> method flushes all modified records from the database cache to disk.</p> <p> <span class="bold"> <strong>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.</strong> </span> </p> <p>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:</p> <div class="itemizedlist"> <ul type="disc"> <li>Use transactions and logging with automatic recovery.</li> <li>Use logging and application-specific recovery.</li> <li>Edit a copy of the database, and, once all applications using the database have successfully called <a href="../api_reference/C/dbclose.html" class="olink">DB->close()</a>, use system operations (for example, the POSIX rename system call) to atomically replace the original database with the updated copy.</li> </ul> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="am_verify.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="am.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="am_close.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">Database verification and salvage </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> Database close</td> </tr> </table> </div> </body> </html>