mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-17 01:26:25 +00:00
119 lines
5.9 KiB
HTML
119 lines
5.9 KiB
HTML
|
<?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 11.2.5.2</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>
|