114 lines
5.8 KiB
HTML
114 lines
5.8 KiB
HTML
<!--$Id: log_archive.html 63573 2008-05-23 21:43:21Z trent.nelson $-->
|
|
<!--Copyright (c) 1997,2008 Oracle. All rights reserved.-->
|
|
<!--See the file LICENSE for redistribution information.-->
|
|
<html>
|
|
<head>
|
|
<title>Berkeley DB: DbEnv::log_archive</title>
|
|
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
|
|
<meta name="keywords" content="embedded,database,programmatic,toolkit,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++">
|
|
</head>
|
|
<body bgcolor=white>
|
|
<table width="100%"><tr valign=top>
|
|
<td>
|
|
<b>DbEnv::log_archive</b>
|
|
</td>
|
|
<td align=right>
|
|
<a href="../api_cxx/api_core.html"><img src="../images/api.gif" alt="API"></a>
|
|
<a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a></td>
|
|
</tr></table>
|
|
<hr size=1 noshade>
|
|
<tt>
|
|
<b><pre>
|
|
#include <db_cxx.h>
|
|
<p>
|
|
int
|
|
DbEnv::log_archive(char *(*listp)[], u_int32_t flags);
|
|
</pre></b>
|
|
<hr size=1 noshade>
|
|
<b>Description: DbEnv::log_archive</b>
|
|
<p>The DbEnv::log_archive method returns an array of log or database filenames.</p>
|
|
<p>By default, DbEnv::log_archive returns the names of all of the log
|
|
files that are no longer in use (for example, that are no longer
|
|
involved in active transactions), and that may safely be archived for
|
|
catastrophic recovery and then removed from the system. If there are
|
|
no filenames to return, the memory location to which <b>listp</b>
|
|
refers will be set to NULL.</p>
|
|
<p>Arrays of log filenames are stored in allocated memory. If application-specific allocation
|
|
routines have been declared (see <a href="../api_cxx/env_set_alloc.html">DbEnv::set_alloc</a> for more
|
|
information), they are used to allocate the memory; otherwise, the
|
|
standard C library <b>malloc</b>(3) is used. The caller is
|
|
responsible for deallocating the memory. To deallocate the memory, free
|
|
the memory reference; references inside the returned memory need not be
|
|
individually freed.</p>
|
|
<p>Log cursor handles (returned by the <a href="../api_cxx/log_cursor.html">DbEnv::log_cursor</a> method) may have open
|
|
file descriptors for log files in the database environment. Also, the
|
|
Berkeley DB interfaces to the database environment logging subsystem (for
|
|
example, <a href="../api_cxx/log_put.html">DbEnv::log_put</a> and <a href="../api_cxx/txn_abort.html">DbTxn::abort</a>) may allocate log cursors
|
|
and have open file descriptors for log files as well. On operating
|
|
systems where filesystem related system calls (for example, rename and
|
|
unlink on Windows/NT) can fail if a process has an open file descriptor
|
|
for the affected file, attempting to move or remove the log files listed
|
|
by DbEnv::log_archive may fail. All Berkeley DB internal use of log cursors
|
|
operates on active log files only and furthermore, is short-lived in
|
|
nature. So, an application seeing such a failure should be restructured
|
|
to close any open log cursors it may have, and otherwise to retry the
|
|
operation until it succeeds. (Although the latter is not likely to be
|
|
necessary; it is hard to imagine a reason to move or rename a log file
|
|
in which transactions are being logged or aborted.)</p>
|
|
<p>See <a href="../utility/db_archive.html">db_archive</a> for more information on database archival
|
|
procedures.</p>
|
|
<p>The DbEnv::log_archive method
|
|
either returns a non-zero error value
|
|
or throws an exception that encapsulates a non-zero error value on
|
|
failure, and returns 0 on success.
|
|
</p>
|
|
<b>Parameters</b> <br>
|
|
<b>flags</b><ul compact><li>The <b>flags</b> parameter must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one
|
|
or more of the following values:
|
|
<br>
|
|
<b><a name="DB_ARCH_ABS">DB_ARCH_ABS</a></b><ul compact><li>All pathnames are returned as absolute pathnames, instead of relative
|
|
to the database home directory.</ul>
|
|
<b><a name="DB_ARCH_DATA">DB_ARCH_DATA</a></b><ul compact><li>Return the database files that need to be archived in order to recover
|
|
the database from catastrophic failure. If any of the database files
|
|
have not been accessed during the lifetime of the current log files,
|
|
DbEnv::log_archive will not include them in this list. It is also
|
|
possible that some of the files referred to by the log have since been
|
|
deleted from the system.
|
|
<p>The DB_ARCH_DATA and DB_ARCH_LOG flags are mutually exclusive.</p></ul>
|
|
<b><a name="DB_ARCH_LOG">DB_ARCH_LOG</a></b><ul compact><li>Return all the log filenames, regardless of whether or not they are in
|
|
use.
|
|
<p>The DB_ARCH_DATA and DB_ARCH_LOG flags are mutually exclusive.</p></ul>
|
|
<b><a name="DB_ARCH_REMOVE">DB_ARCH_REMOVE</a></b><ul compact><li>Remove log files that are no longer needed; no filenames are returned.
|
|
Automatic log file removal is likely to make catastrophic recovery
|
|
impossible.
|
|
<p>The DB_ARCH_REMOVE flag may not be specified with any other
|
|
flag.</p></ul>
|
|
<br></ul>
|
|
<b>listp</b><ul compact><li>The <b>listp</b> parameter references memory into which the allocated
|
|
array of log or database filenames is copied. If there are no filenames
|
|
to return, the memory location to which <b>listp</b> refers will be set
|
|
to NULL.</ul>
|
|
<br>
|
|
<br><b>Errors</b>
|
|
<p>The DbEnv::log_archive method
|
|
may fail and throw
|
|
<a href="../api_cxx/except_class.html">DbException</a>,
|
|
encapsulating one of the following non-zero errors, or return one of
|
|
the following non-zero errors:</p>
|
|
<br>
|
|
<b>EINVAL</b><ul compact><li>An
|
|
invalid flag value or parameter was specified.</ul>
|
|
<br>
|
|
<hr size=1 noshade>
|
|
<br><b>Class</b>
|
|
<a href="../api_cxx/env_class.html">DbEnv</a>, <a href="../api_cxx/logc_class.html">DbLogc</a>, <a href="../api_cxx/lsn_class.html">DbLsn</a>
|
|
<br><b>See Also</b>
|
|
<a href="../api_cxx/log_list.html">Logging Subsystem and Related Methods</a>
|
|
</tt>
|
|
<table width="100%"><tr><td><br></td><td align=right>
|
|
<a href="../api_cxx/api_core.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
|
|
</td></tr></table>
|
|
<p><font size=1>Copyright (c) 1996,2008 Oracle. All rights reserved.</font>
|
|
</body>
|
|
</html>
|