File: dbupgrade.html

package info (click to toggle)
db5.3 5.3.28%2Bdfsg1-0.5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 158,360 kB
  • sloc: ansic: 448,411; java: 111,824; tcl: 80,544; sh: 44,326; cs: 33,697; cpp: 21,604; perl: 14,557; xml: 10,799; makefile: 4,077; yacc: 1,003; awk: 965; sql: 801; erlang: 342; python: 216; php: 24; asm: 14
file content (239 lines) | stat: -rw-r--r-- 10,344 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
<?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::upgrade()</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="dbtruncate.html" title="Db::truncate()" />
    <link rel="next" href="dbverify.html" title="Db::verify()" />
  </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::upgrade()</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="dbtruncate.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 2. 
                The Db Handle
        </th>
          <td width="20%" align="right"> <a accesskey="n" href="dbverify.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="dbupgrade"></a>Db::upgrade()</h2>
          </div>
        </div>
      </div>
      <pre class="programlisting">#include &lt;db_cxx.h&gt;
 
int
Db::upgrade(const char *file, u_int32_t flags);</pre>
      <p>
         The <code class="methodname">Db::upgrade()</code> method upgrades all of the databases included in
         the file <span class="bold"><strong>file</strong></span>, if necessary.  If no
         upgrade is necessary, <code class="methodname">Db::upgrade()</code> always returns success.
    </p>
      <p>
         <span class="bold"><strong>Database upgrades are done in place and are
         destructive. For example, if pages need to be allocated and no disk
         space is available, the database may be left corrupted.  Backups
         should be made before databases are upgraded.  See <a href="../../programmer_reference/am_upgrade.html" class="olink">Upgrading databases</a> for more
         information.</strong></span>
    </p>
      <p>
         Unlike all other database operations, <code class="methodname">Db::upgrade()</code> may only be done
         on a system with the same byte-order as the database.
    </p>
      <p>
         The <code class="methodname">Db::upgrade()</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="idp6000704"></a>Parameters</h3>
            </div>
          </div>
        </div>
        <div class="sect3" lang="en" xml:lang="en">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="idp6001352"></a>file</h4>
              </div>
            </div>
          </div>
          <p>
                          The <span class="bold"><strong>file</strong></span> parameter is the physical
                          file containing the databases to be upgraded.
                     </p>
        </div>
        <div class="sect3" lang="en" xml:lang="en">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="idp5978128"></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="upgrade_DB_DUPSORT"></a>
                  <code class="literal">DB_DUPSORT</code>
            </p>
                <p>
                 <span class="bold"><strong>This flag is only meaningful when upgrading
                 databases from releases before the Berkeley DB 3.1 release.</strong></span>
            </p>
                <p>
                 As part of the upgrade from the Berkeley DB 3.0 release to the 3.1
                 release, the on-disk format of duplicate data items changed.  To
                 correctly upgrade the format requires applications to specify whether
                 duplicate data items in the database are sorted or not.  Specifying
                 the DB_DUPSORT flag informs <code class="methodname">Db::upgrade()</code> that the duplicates are
                 sorted; otherwise they are assumed to be unsorted.  Incorrectly
                 specifying the value of this flag may lead to database corruption.
            </p>
                <p>
                 Further, because the <code class="methodname">Db::upgrade()</code> method upgrades a physical file
                 (including all the databases it contains), it is not possible to use
                 <code class="methodname">Db::upgrade()</code> to upgrade files in which some of the databases it
                 includes have sorted duplicate data items, and some of the databases
                 it includes have unsorted duplicate data items.  If the file does not
                 have more than a single database, if the databases do not support
                 duplicate data items, or if all of the databases that support
                 duplicate data items support the same style of duplicates (either
                 sorted or unsorted), <code class="methodname">Db::upgrade()</code> will work correctly as long as the
                 DB_DUPSORT flag is correctly specified.  Otherwise, the file cannot be
                 upgraded using <code class="methodname">Db::upgrade;()</code> it must be upgraded manually by dumping
                 and reloading the databases.
            </p>
              </li>
            </ul>
          </div>
        </div>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idp6019936"></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::upgrade()</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="idp6020792"></a>Errors</h3>
            </div>
          </div>
        </div>
        <p>
                         The <code class="methodname">Db::upgrade()</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="idp6028776"></a>DB_OLD_VERSION</h4>
              </div>
            </div>
          </div>
          <p>
                             The database cannot be upgraded by this version of the Berkeley DB
                             software.
                        </p>
        </div>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idp6027696"></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="idp6024424"></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="dbtruncate.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="dbverify.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Db::truncate() </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Db::verify()</td>
        </tr>
      </table>
    </div>
  </body>
</html>