Sindbad~EG File Manager
<?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>Recovery and filesystem operations</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="transapp.html" title="Chapter 11. Berkeley DB Transactional Data Store Applications" />
<link rel="prev" href="transapp_journal.html" title="Using Recovery on Journaling Filesystems" />
<link rel="next" href="transapp_reclimit.html" title="Berkeley DB recoverability" />
</head>
<body>
<div xmlns="" class="navheader">
<div class="libver">
<p>Library Version 18.1.40</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Recovery and filesystem operations</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="transapp_journal.html">Prev</a> </td>
<th width="60%" align="center">Chapter 11. Berkeley DB Transactional Data Store Applications </th>
<td width="20%" align="right"> <a accesskey="n" href="transapp_reclimit.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="transapp_filesys"></a>Recovery and filesystem operations</h2>
</div>
</div>
</div>
<p>
The Berkeley DB API supports creating, removing and
renaming files. Creating files is supported by the <a href="../api_reference/C/dbopen.html" class="olink">DB->open()</a>
method. Removing files is supported by the <a href="../api_reference/C/envdbremove.html" class="olink">DB_ENV->dbremove()</a> and
<a href="../api_reference/C/dbremove.html" class="olink">DB->remove()</a> methods. Renaming files is supported by the
<a href="../api_reference/C/envdbrename.html" class="olink">DB_ENV->dbrename()</a> and <a href="../api_reference/C/dbrename.html" class="olink">DB->rename()</a> methods. (There are two methods
for removing and renaming files because one of the methods is
transactionally protected and one is not.)
</p>
<p>
Berkeley DB does not permit specifying the <a href="../api_reference/C/dbopen.html#open_DB_TRUNCATE" class="olink">DB_TRUNCATE</a>
flag when opening a file in a transaction-protected
environment. This is an implicit file deletion, but one that
does not always require the same operating system file
permissions as deleting and creating a file do.
</p>
<p>
If you have changed the name of a file or deleted it
outside of the Berkeley DB library (for example, you
explicitly removed a file using your normal operating system
utilities), then it is possible that recovery will not be able
to find a database to which the log refers. In this case, the
<a href="../api_reference/C/db_recover.html" class="olink">db_recover</a> utility will produce a warning message, saying it was
unable to locate a file it expected to find. This message is
only a warning because the file may have been subsequently
deleted as part of normal database operations before the
failure occurred, so is not necessarily a problem.
</p>
<p>
Generally, any filesystem operations that are performed
outside the Berkeley DB interface should be performed at the
same time as making a snapshot of the database. To perform
filesystem operations correctly, do the following:
</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>
Cleanly shut down database operations.
</p>
<p>
To shut down database operations cleanly, all
applications accessing the database environment must
be shut down and a transaction checkpoint must be
taken. If the applications are not implemented so they
can be shut down gracefully (that is, closing all
references to the database environment), recovery must
be performed after all applications have been killed
to ensure that the underlying databases are consistent
on disk.
</p>
</li>
<li>
Perform the filesystem operations; for example,
remove or rename one or more files.
</li>
<li>
<p>
Make an archival snapshot of the database.
</p>
<p>
Although this step is not strictly necessary, it is
strongly recommended. If this step is not performed,
recovery from catastrophic failure will require that
recovery first be performed up to the time of the
filesystem operations, the filesystem operations be
redone, and then recovery be performed from the
filesystem operations forward.
</p>
</li>
<li>
Restart the database applications.
</li>
</ol>
</div>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="transapp_journal.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="transapp.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="transapp_reclimit.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Using Recovery on Journaling Filesystems </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> Berkeley DB recoverability</td>
</tr>
</table>
</div>
</body>
</html>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists