mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 17:16:25 +00:00
109 lines
4.7 KiB
HTML
109 lines
4.7 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>Using Recovery on Journaling Filesystems</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_hotfail.html" title="Hot failover" />
|
||
<link rel="next" href="transapp_filesys.html" title="Recovery and filesystem operations" />
|
||
</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">Using Recovery on Journaling Filesystems</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="transapp_hotfail.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_filesys.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_journal"></a>Using Recovery on Journaling Filesystems</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
In some cases, the use of meta-data only journaling file systems can
|
||
lead to log file corruption. The window of vulnerability is quite
|
||
small, but if the operating system experiences an unclean shutdown
|
||
while Berkeley DB is creating a new log file, it is possible that upon
|
||
file system recovery, the system will be in a state where the log file
|
||
has been created, but its own meta-data has not.
|
||
</p>
|
||
<p>
|
||
When a log file is corrupted to this degree, normal recovery can fail
|
||
and your application may be unable to open your environment. Instead,
|
||
an error something like this is issued when you attempt to run normal
|
||
recovery on environment open:
|
||
</p>
|
||
<pre class="programlisting"> Ignoring log file: /var/dblog/log.0000000074: magic number
|
||
6c73732f, not 40988
|
||
Invalid log file: log.0000000074: Invalid argument
|
||
PANIC: Invalid argument
|
||
process-private: unable to find environment
|
||
txn_checkpoint interface requires an environment configured for
|
||
the transaction subsystem </pre>
|
||
<p>
|
||
In this case, it may be possible to successfully recover the
|
||
environment by ignoring the log file that was being created — to
|
||
do this, rename the log file with the highest number to a temporary
|
||
name:
|
||
</p>
|
||
<pre class="programlisting"> mv DBHOME/log.000000XXX my-temporary-log-file </pre>
|
||
<p>
|
||
and try running normal environment recovery again. If recovery is
|
||
successful, and your application is able to open the environment, then
|
||
you can delete the log file that you renamed.
|
||
</p>
|
||
<p>
|
||
If recovery is not successful, then you must perform a catastrophic
|
||
recovery from a previous backup.
|
||
</p>
|
||
<p>
|
||
This situation has been shown to occur when using ext3 in writeback
|
||
mode, but other journaling filesystems could exhibit similar behavior.
|
||
</p>
|
||
<p>
|
||
To be absolutely certain of your application's ability to recover your
|
||
environment in the event of a system crash, either use non-journaling
|
||
filesystems, or use a journaling filesystem in a safe (albeit slower)
|
||
configuration, such as ext3 in ordered mode.
|
||
</p>
|
||
</div>
|
||
<div class="navfooter">
|
||
<hr />
|
||
<table width="100%" summary="Navigation footer">
|
||
<tr>
|
||
<td width="40%" align="left"><a accesskey="p" href="transapp_hotfail.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_filesys.html">Next</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">Hot failover </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="h" href="index.html">Home</a>
|
||
</td>
|
||
<td width="40%" align="right" valign="top"> Recovery and filesystem operations</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|