1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364
|
<?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>Db::verify()</title>
<link rel="stylesheet" href="apiReference.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
<link rel="start" href="index.html" title="Berkeley DB C++ API Reference" />
<link rel="up" href="db.html" title="Chapter 2. The Db Handle" />
<link rel="prev" href="dbupgrade.html" title="Db::upgrade()" />
<link rel="next" href="db_heap_rid.html" title="DbHeapRecordId" />
</head>
<body>
<div xmlns="" class="navheader">
<div class="libver">
<p>Library Version 11.2.5.3</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Db::verify()</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="dbupgrade.html">Prev</a> </td>
<th width="60%" align="center">Chapter 2.
The Db Handle
</th>
<td width="20%" align="right"> <a accesskey="n" href="db_heap_rid.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="dbverify"></a>Db::verify()</h2>
</div>
</div>
</div>
<pre class="programlisting">#include <db_cxx.h>
int
Db::verify(const char *file,
const char *database, ostream *outfile, u_int32_t flags);</pre>
<p>
The <code class="methodname">Db::verify()</code> method verifies the integrity of all databases in
the file specified by the <span class="bold"><strong>file</strong></span>
parameter, and optionally outputs the databases' key/data pairs to the
file stream specified by the <span class="bold"><strong>outfile</strong></span>
parameter.
</p>
<p>
<span class="bold"><strong>The <code class="methodname">Db::verify()</code> method does not perform any
locking, even in Berkeley DB environments that are configured with a
locking subsystem. As such, it should only be used on files that are
not being modified by another thread of control.</strong></span>
</p>
<p>
The <code class="methodname">Db::verify()</code> method may not be called after the
<a class="xref" href="dbopen.html" title="Db::open()">Db::open()</a> method is called.
</p>
<p>
The <a class="link" href="db.html" title="Chapter 2. The Db Handle">Db</a> handle may not be
accessed again after <code class="methodname">Db::verify()</code> is called, regardless of its
return.
</p>
<p>
The <code class="methodname">Db::verify()</code> method will return DB_VERIFY_BAD if a database is
corrupted. When the DB_SALVAGE flag is specified, the DB_VERIFY_BAD
return means that all key/data pairs in the file may not have been
successfully output. Unless otherwise specified, the <code class="methodname">Db::verify()</code>
<span>
<span>
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.
</span>
</span>
</p>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp6019632"></a>Parameters</h3>
</div>
</div>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp6015864"></a>file</h4>
</div>
</div>
</div>
<p>
The <span class="bold"><strong>file</strong></span> parameter is the physical
file in which the databases to be verified are found.
</p>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp6010504"></a>database</h4>
</div>
</div>
</div>
<p>
The <span class="bold"><strong>database</strong></span> parameter is the
database in <span class="bold"><strong>file</strong></span> on which the
database checks for btree and duplicate sort order and for hashing are
to be performed. See the DB_ORDERCHKONLY flag for more information.
</p>
<p>
The database parameter must be set to NULL except when the
DB_ORDERCHKONLY flag is set.
</p>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp6018016"></a>outfile</h4>
</div>
</div>
</div>
<p>
The <span class="bold"><strong>outfile</strong></span> parameter is an optional
file stream to which the databases' key/data pairs are written.
</p>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp6008272"></a>flags</h4>
</div>
</div>
</div>
<p>
The <span class="bold"><strong>flags</strong></span> parameter must be set to 0
or the following value:
</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p><a id="verify_DB_SALVAGE"></a>
<code class="literal">DB_SALVAGE</code>
</p>
<p>
Write the key/data pairs from all databases in the file to the file
stream named in the <span class="bold"><strong>outfile</strong></span>
parameter. Key values are written for Btree, Hash and Queue
databases, but not for Recno databases.
</p>
<p>
The output format is the same as that specified for the <a class="link" href="db_dump.html" title="db_dump">db_dump</a> utility, and can be used
as input for the <a class="link" href="db_load.html" title="db_load">db_load</a>
utility.
</p>
<p>
Because the key/data pairs are output in page order as opposed to the
sort order used by <a class="link" href="db_dump.html" title="db_dump">db_dump</a>, using <code class="methodname">Db::verify()</code> to
dump key/data pairs normally produces less than optimal loads for
Btree databases.
</p>
</li>
</ul>
</div>
<p>
In addition, the following flags may be set by bitwise inclusively
<span class="bold"><strong>OR</strong></span>'ing them into the <span class="bold"><strong>flags</strong></span> parameter:
</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p><a id="verify_DB_AGGRESSIVE"></a>
<code class="literal">DB_AGGRESSIVE</code>
</p>
<p>
Output <span class="bold"><strong>all</strong></span> the key/data pairs in the
file that can be found. By default, <code class="methodname">Db::verify()</code> does not assume
corruption. For example, if a key/data pair on a page is marked as
deleted, it is not then written to the output file. When
DB_AGGRESSIVE is specified, corruption is assumed, and any key/data
pair that can be found is written. In this case, key/data pairs that
are corrupted or have been deleted may appear in the output (even if
the file being salvaged is in no way corrupt), and the output will
almost certainly require editing before being loaded into a database.
</p>
</li>
<li>
<p><a id="verify_DB_PRINTABLE"></a>
<code class="literal">DB_PRINTABLE</code>
</p>
<p>
When using the DB_SALVAGE flag, if characters in either the key or
data items are printing characters (as defined by <span class="bold"><strong>isprint</strong></span>(3)), use printing characters to
represent them. This flag permits users to use standard text editors
and tools to modify the contents of databases or selectively remove
data from salvager output.
</p>
<p>
Note: different systems may have different notions about what
characters are considered <span class="emphasis"><em>printing characters</em></span>,
and databases dumped in this manner may be less portable to external
systems.
</p>
</li>
<li>
<p><a id="verify_DB_NOORDERCHK"></a>
<code class="literal">DB_NOORDERCHK</code>
</p>
<p>
Skip the database checks for btree and duplicate sort order and for
hashing.
</p>
<p>
The <code class="methodname">Db::verify()</code> method normally verifies that btree keys and
duplicate items are correctly sorted, and hash keys are correctly
hashed. If the file being verified contains multiple databases using
differing sorting or hashing algorithms, some of them must necessarily
fail database verification because only one sort order or hash
function can be specified before <code class="methodname">Db::verify()</code> is called. To verify
files with multiple databases having differing sorting orders or
hashing functions, first perform verification of the file as a whole
by using the DB_NOORDERCHK flag, and then individually verify the sort
order and hashing function for each database in the file using the
DB_ORDERCHKONLY flag.
</p>
</li>
<li>
<p><a id="verify_DB_ORDERCHKONLY"></a>
<code class="literal">DB_ORDERCHKONLY</code>
</p>
<p>
Perform the database checks for btree and duplicate sort order and for
hashing, skipped by DB_NOORDERCHK.
</p>
<p>
When this flag is specified, a <span class="bold"><strong>database</strong></span> parameter should also be specified,
indicating the database in the physical file which is to be checked.
This flag is only safe to use on databases that have already
successfully been verified using <code class="methodname">Db::verify()</code> with the DB_NOORDERCHK
flag set.
</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp6050672"></a>Environment Variables</h3>
</div>
</div>
</div>
<p>
If the database was opened within a database environment, the
environment variable <code class="literal">DB_HOME</code> may be used as the path of the
database environment home.
</p>
<p>
<code class="methodname">Db::verify()</code> is affected by any database directory specified using the
<a class="xref" href="envset_data_dir.html" title="DbEnv::set_data_dir()">DbEnv::set_data_dir()</a>
method, or by setting the "set_data_dir" string
in the environment's <a href="../../programmer_reference/env_db_config.html#env_db_config.DB_CONFIG" class="olink">DB_CONFIG</a> file.
</p>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp6026400"></a>Errors</h3>
</div>
</div>
</div>
<p>
The <code class="methodname">Db::verify()</code> <span>
<span>
method may fail and throw a <a class="link" href="dbexception.html" title="Chapter 6. The DbException Class">DbException</a>
exception, encapsulating one of the following non-zero errors, or return one
of the following non-zero errors:
</span>
</span>
</p>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp6048960"></a>EINVAL</h4>
</div>
</div>
</div>
<p>
If the method was called after <a class="xref" href="dbopen.html" title="Db::open()">Db::open()</a>
was called; or if an invalid flag value or parameter was specified.
</p>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp6045240"></a>ENOENT</h4>
</div>
</div>
</div>
<p>
The file or directory does not exist.
</p>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp6055376"></a>Class</h3>
</div>
</div>
</div>
<p>
<a class="link" href="db.html" title="Chapter 2. The Db Handle">Db</a>
</p>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp6050888"></a>See Also</h3>
</div>
</div>
</div>
<p>
<a class="xref" href="db.html#dblist" title="Database and Related Methods">Database and Related Methods</a>
</p>
</div>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="dbupgrade.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="db.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="db_heap_rid.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Db::upgrade() </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> DbHeapRecordId</td>
</tr>
</table>
</div>
</body>
</html>
|