File: dbverify.html

package info (click to toggle)
db5.3 5.3.28%2Bdfsg1-0.8
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 158,400 kB
  • sloc: ansic: 448,406; java: 111,824; tcl: 80,544; sh: 44,326; cs: 33,697; cpp: 21,604; perl: 14,557; xml: 10,799; makefile: 4,077; javascript: 1,998; yacc: 1,003; awk: 965; sql: 801; erlang: 342; python: 216; php: 24; asm: 14
file content (364 lines) | stat: -rw-r--r-- 16,294 bytes parent folder | download | duplicates (8)
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 &lt;db_cxx.h&gt;
 
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>