diff options
Diffstat (limited to 'docs/installation/debug_printlog.html')
-rw-r--r-- | docs/installation/debug_printlog.html | 404 |
1 files changed, 230 insertions, 174 deletions
diff --git a/docs/installation/debug_printlog.html b/docs/installation/debug_printlog.html index d28e6dae..493df2c1 100644 --- a/docs/installation/debug_printlog.html +++ b/docs/installation/debug_printlog.html @@ -14,7 +14,7 @@ <body> <div xmlns="" class="navheader"> <div class="libver"> - <p>Library Version 11.2.5.3</p> + <p>Library Version 12.1.6.1</p> </div> <table width="100%" summary="Navigation header"> <tr> @@ -22,9 +22,7 @@ </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="debug_runtime.html">Prev</a> </td> - <th width="60%" align="center">Chapter 3. - Debugging Applications - </th> + <th width="60%" align="center">Chapter 3. Debugging Applications </th> <td width="20%" align="right"> <a accesskey="n" href="build_android_intro.html">Next</a></td> </tr> </table> @@ -42,93 +40,95 @@ <dl> <dt> <span class="sect2"> - <a href="debug_printlog.html#idm1304224">Augmenting the Log for Debugging</a> + <a href="debug_printlog.html#idp164880">Augmenting the Log for Debugging</a> </span> </dt> <dt> <span class="sect2"> - <a href="debug_printlog.html#idm1194048">Extracting Committed Transactions and Transaction Status</a> + <a href="debug_printlog.html#idp136104">Extracting Committed Transactions and Transaction Status</a> </span> </dt> <dt> <span class="sect2"> - <a href="debug_printlog.html#idm1341784">Extracting Transaction Histories</a> + <a href="debug_printlog.html#idp166064">Extracting Transaction Histories</a> </span> </dt> <dt> <span class="sect2"> - <a href="debug_printlog.html#idm986800">Extracting File Histories</a> + <a href="debug_printlog.html#idp171384">Extracting File Histories</a> </span> </dt> <dt> <span class="sect2"> - <a href="debug_printlog.html#idm1437640">Extracting Page Histories</a> + <a href="debug_printlog.html#idp183288">Extracting Page Histories</a> </span> </dt> <dt> <span class="sect2"> - <a href="debug_printlog.html#idm680600">Other log processing tools</a> + <a href="debug_printlog.html#idp184088">Other log processing tools</a> </span> </dt> </dl> </div> - <p> - If you are running with transactions and logging, the <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility can - be a useful debugging aid. The <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility will display the contents - of your log files in a human readable (and machine-readable) format. -</p> - <p> - The <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility will attempt to display any and all log files present - in a designated db_home directory. For each log record, the - <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility will display a line of the form: -</p> + <p> + If you are running with transactions and logging, the + <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility can be a useful debugging aid. The <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility + will display the contents of your log files in a human + readable (and machine-readable) format. + </p> + <p> + The <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility will attempt to display any and all log + files present in a designated db_home directory. For each log + record, the <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility will display a line of the form: + </p> <pre class="programlisting"> -[22][28]db_big: rec: 43 txnid 80000963 prevlsn [21][10483281] -</pre> - <p> - The opening numbers in square brackets are the <span class="emphasis"><em>log sequence - number</em></span> (<span class="emphasis"><em>LSN</em></span>) of the log record - being displayed. The first number indicates the log file in which the - record appears, and the second number indicates the offset in that file - of the record. -</p> - <p> - The first character string identifies the particular log operation - being reported. The log records corresponding to particular operations - are described following. The rest of the line consists of name/value - pairs. -</p> - <p> - The rec field indicates the record type (this is used to dispatch - records in the log to appropriate recovery functions). -</p> +[22][28]db_big: rec: 43 txnid 80000963 prevlsn [21][10483281]</pre> + <p> + The opening numbers in square brackets are the + <span class="emphasis"><em>log sequence number</em></span> + (<span class="emphasis"><em>LSN</em></span>) of the log record being + displayed. The first number indicates the log file in which + the record appears, and the second number indicates the offset + in that file of the record. + </p> + <p> + The first character string identifies the particular log + operation being reported. The log records corresponding to + particular operations are described following. The rest of the + line consists of name/value pairs. + </p> + <p> + The rec field indicates the record type (this is used to + dispatch records in the log to appropriate recovery + functions). + </p> <p> - The txnid field identifies the transaction for which this record was - written. A txnid of 0 means that the record was written outside the - context of any transaction. You will see these most frequently for - checkpoints. -</p> + The txnid field identifies the transaction for which this + record was written. A txnid of 0 means that the record was + written outside the context of any transaction. You will see + these most frequently for checkpoints. + </p> <p> - Finally, the prevlsn contains the LSN of the last record for this - transaction. By following prevlsn fields, you can accumulate all the - updates for a particular transaction. During normal abort processing, - this field is used to quickly access all the records for a particular - transaction. -</p> + Finally, the prevlsn contains the LSN of the last record + for this transaction. By following prevlsn fields, you can + accumulate all the updates for a particular transaction. + During normal abort processing, this field is used to quickly + access all the records for a particular transaction. + </p> <p> - After the initial line identifying the record type, each field of the - log record is displayed, one item per line. There are several fields - that appear in many different records and a few fields that appear only - in some records. -</p> + After the initial line identifying the record type, each + field of the log record is displayed, one item per line. There + are several fields that appear in many different records and a + few fields that appear only in some records. + </p> <p> - The following table presents each currently written log record type - with a brief description of the operation it describes. Any of these - record types may have the string "_debug" appended if they were written - because <a href="../api_reference/C/dbset_flags.html#dbset_flags_DB_TXN_NOT_DURABLE" class="olink">DB_TXN_NOT_DURABLE</a> was specified and the - system was configured with - <a class="link" href="build_unix_conf.html#build_unix_conf.--enable-diagnostic">--enable-diagnostic</a>. -</p> + The following table presents each currently written log + record type with a brief description of the operation it + describes. Any of these record types may have the string + "_debug" appended if they were written because + <a href="../api_reference/C/dbset_flags.html#dbset_flags_DB_TXN_NOT_DURABLE" class="olink">DB_TXN_NOT_DURABLE</a> was specified and the system was + configured with <a class="link" href="build_unix_conf.html#build_unix_conf.--enable-diagnostic">--enable-diagnostic</a>. + </p> <div class="informaltable"> <table border="1" width="80%"> <colgroup> @@ -144,43 +144,56 @@ <tbody> <tr> <td>bam_adj</td> - <td>Used when we insert/remove an index into/from the page header of a Btree page.</td> + <td>Used when we insert/remove an index + into/from the page header of a Btree + page.</td> </tr> <tr> <td>bam_cadjust</td> - <td>Keeps track of record counts in a Btree or Recno database.</td> + <td>Keeps track of record counts in a Btree or + Recno database.</td> </tr> <tr> <td>bam_cdel</td> - <td>Used to mark a record on a page as deleted.</td> + <td>Used to mark a record on a page as + deleted.</td> </tr> <tr> <td>bam_curadj</td> - <td>Used to adjust a cursor location when a nearby record changes in a Btree database.</td> + <td>Used to adjust a cursor location when a + nearby record changes in a Btree + database.</td> </tr> <tr> <td>bam_merge</td> - <td>Used to merge two Btree database pages during compaction.</td> + <td>Used to merge two Btree database pages + during compaction.</td> </tr> <tr> <td>bam_pgno</td> - <td>Used to replace a page number in a Btree record.</td> + <td>Used to replace a page number in a Btree + record.</td> </tr> <tr> <td>bam_rcuradj</td> - <td>Used to adjust a cursor location when a nearby record changes in a Recno database.</td> + <td>Used to adjust a cursor location when a + nearby record changes in a Recno + database.</td> </tr> <tr> <td>bam_relink</td> - <td>Fix leaf page prev/next chain when a page is removed.</td> + <td>Fix leaf page prev/next chain when a page + is removed.</td> </tr> <tr> <td>bam_repl</td> - <td>Describes a replace operation on a record.</td> + <td>Describes a replace operation on a + record.</td> </tr> <tr> <td>bam_root</td> - <td>Describes an assignment of a root page.</td> + <td>Describes an assignment of a root + page.</td> </tr> <tr> <td>bam_rsplit</td> @@ -192,27 +205,35 @@ </tr> <tr> <td>crdel_inmem_create</td> - <td>Record the creation of an in-memory named database.</td> + <td>Record the creation of an in-memory named + database.</td> </tr> <tr> <td>crdel_inmem_remove</td> - <td>Record the removal of an in-memory named database.</td> + <td>Record the removal of an in-memory named + database.</td> </tr> <tr> <td>crdel_inmem_rename</td> - <td>Record the rename of an in-memory named database.</td> + <td>Record the rename of an in-memory named + database.</td> </tr> <tr> <td>crdel_metasub</td> - <td>Describes the creation of a metadata page for a subdatabase.</td> + <td>Describes the creation of a metadata page + for a subdatabase.</td> </tr> <tr> <td>db_addrem</td> - <td>Add or remove an item from a page of duplicates.</td> + <td>Add or remove an item from a page of + duplicates.</td> </tr> <tr> <td>db_big</td> - <td>Add an item to an overflow page (<span class="emphasis"><em>overflow pages</em></span> contain items too large to place on the main page)</td> + <td>Add an item to an overflow page + (<span class="emphasis"><em>overflow pages</em></span> + contain items too large to place on the main + page)</td> </tr> <tr> <td>db_cksum</td> @@ -224,35 +245,45 @@ </tr> <tr> <td>db_noop</td> - <td>This marks an operation that did nothing but update the LSN on a page.</td> + <td>This marks an operation that did nothing + but update the LSN on a page.</td> </tr> <tr> <td>db_ovref</td> - <td>Increment or decrement the reference count for a big item.</td> + <td>Increment or decrement the reference count + for a big item.</td> </tr> <tr> <td>db_pg_alloc</td> - <td>Indicates we allocated a page to a database.</td> + <td>Indicates we allocated a page to a + database.</td> </tr> <tr> <td>db_pg_free</td> - <td>Indicates we freed a page (freed pages are added to a freelist and reused).</td> + <td>Indicates we freed a page (freed pages are + added to a freelist and reused).</td> </tr> <tr> <td>db_pg_freedata</td> - <td>Indicates we freed a page that still contained data entries (freed pages are added to a freelist and reused.)</td> + <td>Indicates we freed a page that still + contained data entries (freed pages are added + to a freelist and reused.)</td> </tr> <tr> <td>db_pg_init</td> - <td>Indicates we reinitialized a page during a truncate.</td> + <td>Indicates we reinitialized a page during a + truncate.</td> </tr> <tr> <td>db_pg_sort</td> - <td>Sort the free page list and free pages at the end of the file.</td> + <td>Sort the free page list and free pages at + the end of the file.</td> </tr> <tr> <td>dbreg_register</td> - <td>Records an open of a file (mapping the filename to a log-id that is used in subsequent log operations).</td> + <td>Records an open of a file (mapping the + filename to a log-id that is used in + subsequent log operations).</td> </tr> <tr> <td>fop_create</td> @@ -272,39 +303,53 @@ </tr> <tr> <td>fop_write</td> - <td>Write bytes to an object in the file system.</td> + <td>Write bytes to an object in the file + system.</td> </tr> <tr> <td>ham_chgpg</td> - <td>Used to adjust a cursor location when a Hash page is removed, and its elements are moved to a different Hash page.</td> + <td>Used to adjust a cursor location when a + Hash page is removed, and its elements are + moved to a different Hash page.</td> </tr> <tr> <td>ham_copypage</td> - <td>Used when we empty a bucket page, but there are overflow pages for the bucket; one needs to be copied back into the actual bucket.</td> + <td>Used when we empty a bucket page, but there + are overflow pages for the bucket; one needs + to be copied back into the actual + bucket.</td> </tr> <tr> <td>ham_curadj</td> - <td>Used to adjust a cursor location when a nearby record changes in a Hash database.</td> + <td>Used to adjust a cursor location when a + nearby record changes in a Hash + database.</td> </tr> <tr> <td>ham_groupalloc</td> - <td>Allocate some number of contiguous pages to the Hash database.</td> + <td>Allocate some number of contiguous pages to + the Hash database.</td> </tr> <tr> <td>ham_insdel</td> - <td>Insert/delete an item on a Hash page.</td> + <td>Insert/delete an item on a Hash + page.</td> </tr> <tr> <td>ham_metagroup</td> - <td>Update the metadata page to reflect the allocation of a sequence of contiguous pages.</td> + <td>Update the metadata page to reflect the + allocation of a sequence of contiguous + pages.</td> </tr> <tr> <td>ham_newpage</td> - <td>Adds or removes overflow pages from a Hash bucket.</td> + <td>Adds or removes overflow pages from a Hash + bucket.</td> </tr> <tr> <td>ham_replace</td> - <td>Handle updates to records that are on the main page.</td> + <td>Handle updates to records that are on the + main page.</td> </tr> <tr> <td>ham_splitdata</td> @@ -312,25 +357,28 @@ </tr> <tr> <td>heap_addrem</td> - <td>Add or remove an entry from a Heap database.</td> + <td>Add or remove an entry from a Heap + database.</td> </tr> <tr> <td>heap_pg_alloc</td> - <td>Indicates we allocated a page to a Heap database.</td> + <td>Indicates we allocated a page to a Heap + database.</td> </tr> <tr> <td>heap_trunc_meta</td> - <td>Records the truncation of the meta page in a Heap - database.</td> + <td>Records the truncation of the meta page in + a Heap database.</td> </tr> <tr> <td>heap_trunc_page</td> - <td>Records the truncation of a data page in a Heap - database.</td> + <td>Records the truncation of a data page in a + Heap database.</td> </tr> <tr> <td>qam_add</td> - <td>Describes the actual addition of a new record to a Queue.</td> + <td>Describes the actual addition of a new + record to a Queue.</td> </tr> <tr> <td>qam_del</td> @@ -338,15 +386,19 @@ </tr> <tr> <td>qam_delext</td> - <td>Delete a record in a Queue with extents.</td> + <td>Delete a record in a Queue with + extents.</td> </tr> <tr> <td>qam_incfirst</td> - <td>Increments the record number that refers to the first record in the database.</td> + <td>Increments the record number that refers to + the first record in the database.</td> </tr> <tr> <td>qam_mvptr</td> - <td>Indicates we changed the reference to either or both of the first and current records in the file.</td> + <td>Indicates we changed the reference to + either or both of the first and current + records in the file.</td> </tr> <tr> <td>txn_child</td> @@ -362,7 +414,8 @@ </tr> <tr> <td>txn_regop</td> - <td>Logs a regular (non-child) transaction commit.</td> + <td>Logs a regular (non-child) transaction + commit.</td> </tr> <tr> <td>txn_xa_regop</td> @@ -375,126 +428,128 @@ <div class="titlepage"> <div> <div> - <h3 class="title"><a id="idm1304224"></a>Augmenting the Log for Debugging</h3> + <h3 class="title"><a id="idp164880"></a>Augmenting the Log for Debugging</h3> </div> </div> </div> <p> - When debugging applications, it is sometimes useful to log not only - the actual operations that modify pages, but also the underlying - Berkeley DB functions being executed. This form of logging can add - significant bulk to your log, but can permit debugging application - errors that are almost impossible to find any other way. To turn - on these log messages, specify the --enable-debug_rop and - --enable-debug_wop configuration options when - configuring Berkeley DB. See - <a class="xref" href="build_unix_conf.html" title="Configuring Berkeley DB">Configuring Berkeley DB</a> for more information. - </p> + When debugging applications, it is sometimes useful to + log not only the actual operations that modify pages, but + also the underlying Berkeley DB functions being executed. + This form of logging can add significant bulk to your log, + but can permit debugging application errors that are + almost impossible to find any other way. To turn on these + log messages, specify the --enable-debug_rop and + --enable-debug_wop configuration options when configuring + Berkeley DB. See <a class="xref" href="build_unix_conf.html" title="Configuring Berkeley DB">Configuring Berkeley DB</a> for more + information. + </p> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> - <h3 class="title"><a id="idm1194048"></a>Extracting Committed Transactions and Transaction Status</h3> + <h3 class="title"><a id="idp136104"></a>Extracting Committed Transactions and Transaction Status</h3> </div> </div> </div> <p> - Sometimes, it is helpful to use the human-readable log output to - determine which transactions committed and aborted. The awk - script, commit.awk, (found in the db_printlog directory of the - Berkeley DB distribution) allows you to do just that. The - following command, where log_output is the output of db_printlog, - will display a list of the transaction IDs of all committed - transactions found in the log: - </p> + Sometimes, it is helpful to use the human-readable log + output to determine which transactions committed and + aborted. The awk script, commit.awk, (found in the + db_printlog directory of the Berkeley DB distribution) + allows you to do just that. The following command, where + log_output is the output of db_printlog, will display a + list of the transaction IDs of all committed transactions + found in the log: + </p> <pre class="programlisting">awk -f commit.awk log_output</pre> <p> - If you need a complete list of both committed and aborted transactions, - then the script status.awk will produce it. The syntax is as - follows: - </p> + If you need a complete list of both committed and + aborted transactions, then the script status.awk will + produce it. The syntax is as follows: </p> <pre class="programlisting">awk -f status.awk log_output</pre> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> - <h3 class="title"><a id="idm1341784"></a>Extracting Transaction Histories</h3> + <h3 class="title"><a id="idp166064"></a>Extracting Transaction Histories</h3> </div> </div> </div> - <p> - Another useful debugging aid is to print out the complete history - of a transaction. The awk script txn.awk allows you to do that. - The following command line, where log_output is the output of the - <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility and txnlist is a comma-separated list of transaction - IDs, will display all log records associated with the designated - transaction ids: - </p> + <p> + Another useful debugging aid is to print out the + complete history of a transaction. The awk script txn.awk + allows you to do that. The following command line, where + log_output is the output of the <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility and txnlist + is a comma-separated list of transaction IDs, will display + all log records associated with the designated transaction + ids: + </p> <pre class="programlisting">awk -f txn.awk TXN=txnlist log_output</pre> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> - <h3 class="title"><a id="idm986800"></a>Extracting File Histories</h3> + <h3 class="title"><a id="idp171384"></a>Extracting File Histories</h3> </div> </div> </div> - <p> - The awk script fileid.awk allows you to extract all log records - that refer to a designated file. The syntax for the fileid.awk - script is the following, where log_output is the output of - db_printlog and fids is a comma-separated list of fileids: - </p> + <p> + The awk script fileid.awk allows you to extract all log + records that refer to a designated file. The syntax for + the fileid.awk script is the following, where log_output + is the output of db_printlog and fids is a comma-separated + list of fileids: + </p> <pre class="programlisting">awk -f fileid.awk PGNO=fids log_output</pre> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> - <h3 class="title"><a id="idm1437640"></a>Extracting Page Histories</h3> + <h3 class="title"><a id="idp183288"></a>Extracting Page Histories</h3> </div> </div> </div> <p> - The awk script pgno.awk allows you to extract all log records that - refer to designated page numbers. However, because this script - will extract records with the designated page numbers for all - files, it is most useful in conjunction with the fileid script. - The syntax for the pgno.awk script is the following, where - log_output is the output of db_printlog and pgnolist is a - comma-separated list of page numbers: - </p> + The awk script pgno.awk allows you to extract all log + records that refer to designated page numbers. However, + because this script will extract records with the + designated page numbers for all files, it is most useful + in conjunction with the fileid script. The syntax for the + pgno.awk script is the following, where log_output is the + output of db_printlog and pgnolist is a comma-separated + list of page numbers: + </p> <pre class="programlisting">awk -f pgno.awk PGNO=pgnolist log_output</pre> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> - <h3 class="title"><a id="idm680600"></a>Other log processing tools</h3> + <h3 class="title"><a id="idp184088"></a>Other log processing tools</h3> </div> </div> </div> <p> - The awk script count.awk prints out the number of log records - encountered that belonged to some transaction (that is, the number - of log records excluding those for checkpoints and - non-transaction-protected operations). - </p> - <p> - The script range.awk will extract a subset of a log. This is - useful when the output of <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility is too large to be - reasonably manipulated with an editor or other tool. The syntax - for range.awk is the following, where - <span class="bold"><strong>sf</strong></span> and - <span class="bold"><strong>so</strong></span> represent the LSN of the - beginning of the sublog you want to extract, and - <span class="bold"><strong>ef</strong></span> and - <span class="bold"><strong>eo</strong></span> represent the LSN of the end of - the sublog you want to extract: - </p> + The awk script count.awk prints out the number of log + records encountered that belonged to some transaction + (that is, the number of log records excluding those for + checkpoints and non-transaction-protected operations). + </p> + <p> + The script range.awk will extract a subset of a log. + This is useful when the output of <a href="../api_reference/C/db_printlog.html" class="olink">db_printlog</a> utility is too + large to be reasonably manipulated with an editor or other + tool. The syntax for range.awk is the following, where + <span class="bold"><strong>sf</strong></span> and <span class="bold"><strong>so</strong></span> represent the LSN of the + beginning of the sublog you want to extract, and <span class="bold"><strong>ef</strong></span> and <span class="bold"><strong>eo</strong></span> + represent the LSN of the end of the + sublog you want to extract: + </p> <pre class="programlisting"> awk -f range.awk START_FILE=sf START_OFFSET=so END_FILE=ef \ END_OFFSET=eo log_output </pre> </div> @@ -514,7 +569,8 @@ <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> - <td width="40%" align="right" valign="top"> Chapter 4. Building Berkeley DB for Android</td> + <td width="40%" align="right" valign="top"> Chapter 4. Building Berkeley DB for + Android</td> </tr> </table> </div> |