]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#8704 Add MDB_PREVMETA support to tools
authorHoward Chu <hyc@openldap.org>
Mon, 31 Jul 2017 18:15:21 +0000 (19:15 +0100)
committerHoward Chu <hyc@openldap.org>
Sat, 10 Oct 2020 12:04:09 +0000 (13:04 +0100)
libraries/liblmdb/mdb_copy.1
libraries/liblmdb/mdb_copy.c
libraries/liblmdb/mdb_dump.1
libraries/liblmdb/mdb_dump.c
libraries/liblmdb/mdb_stat.1
libraries/liblmdb/mdb_stat.c

index 3b2af35aeb4ae783a37c2054f3f53490361ac4ec..edcb9a1659872d04abeb55e081c469f7b03a092a 100644 (file)
@@ -1,4 +1,4 @@
-.TH MDB_COPY 1 "2014/07/01" "LMDB 0.9.14"
+.TH MDB_COPY 1 "2017/07/31" "LMDB 0.9.90"
 .\" Copyright 2012-2017 Howard Chu, Symas Corp. All Rights Reserved.
 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
 .SH NAME
@@ -11,6 +11,8 @@ mdb_copy \- LMDB environment copy tool
 .BR \-c ]
 [\c
 .BR \-n ]
+[\c
+.BR \-v ]
 .B srcpath
 [\c
 .BR dstpath ]
@@ -40,6 +42,10 @@ Currently it fails if the environment has suffered a page leak.
 .TP
 .BR \-n
 Open LDMB environment(s) which do not use subdirectories.
+.TP
+.BR \-v
+Use the previous environment state instead of the latest state.
+This may be useful if the latest state has been corrupted.
 
 .SH DIAGNOSTICS
 Exit status is zero if no errors occur.
index c6ec71c7e64fe8755a7f9cbb8ca70dfd3614796e..f156a545bdba8909e9149821a4f64dc742d53fff 100644 (file)
@@ -38,6 +38,8 @@ int main(int argc,char * argv[])
        for (; argc > 1 && argv[1][0] == '-'; argc--, argv++) {
                if (argv[1][1] == 'n' && argv[1][2] == '\0')
                        flags |= MDB_NOSUBDIR;
+               else if (argv[1][1] == 'v' && argv[1][2] == '\0')
+                       flags |= MDB_PREVMETA;
                else if (argv[1][1] == 'c' && argv[1][2] == '\0')
                        cpflags |= MDB_CP_COMPACT;
                else if (argv[1][1] == 'V' && argv[1][2] == '\0') {
@@ -48,7 +50,7 @@ int main(int argc,char * argv[])
        }
 
        if (argc<2 || argc>3) {
-               fprintf(stderr, "usage: %s [-V] [-c] [-n] srcpath [dstpath]\n", progname);
+               fprintf(stderr, "usage: %s [-V] [-c] [-n] [-v] srcpath [dstpath]\n", progname);
                exit(EXIT_FAILURE);
        }
 
index c4bfcb382b97e336bcc3773a3e7e20358d1b0187..37ccae42f29034106f761e2e19d67d49d96ea4e6 100644 (file)
@@ -1,4 +1,4 @@
-.TH MDB_DUMP 1 "2015/09/30" "LMDB 0.9.17"
+.TH MDB_DUMP 1 "2017/07/31" "LMDB 0.9.90"
 .\" Copyright 2014-2017 Howard Chu, Symas Corp. All Rights Reserved.
 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
 .SH NAME
@@ -14,6 +14,8 @@ mdb_dump \- LMDB environment export tool
 [\c
 .BR \-n ]
 [\c
+.BR \-v ]
+[\c
 .BR \-p ]
 [\c
 .BR \-a \ |
@@ -42,6 +44,10 @@ names will be listed, no data will be output.
 .BR \-n
 Dump an LMDB database which does not use subdirectories.
 .TP
+.BR \-v
+Use the previous environment state instead of the latest state.
+This may be useful if the latest state has been corrupted.
+.TP
 .BR \-p
 If characters in either the key or data items are printing characters (as
 defined by isprint(3)), output them directly. This option permits users to
index 867284d3991e2954c762db5a32ce85e2bd06486a..05402bc18d5d143e4da6e1eb1e4b0e72a3f16864 100644 (file)
@@ -151,7 +151,7 @@ static int dumpit(MDB_txn *txn, MDB_dbi dbi, char *name)
 
 static void usage(char *prog)
 {
-       fprintf(stderr, "usage: %s [-V] [-f output] [-l] [-n] [-p] [-a|-s subdb] dbpath\n", prog);
+       fprintf(stderr, "usage: %s [-V] [-f output] [-l] [-n] [-p] [-v] [-a|-s subdb] dbpath\n", prog);
        exit(EXIT_FAILURE);
 }
 
@@ -175,6 +175,7 @@ int main(int argc, char *argv[])
         * -n: use NOSUBDIR flag on env_open
         * -p: use printable characters
         * -f: write to file instead of stdout
+        * -v: use previous metapage
         * -V: print version and exit
         * (default) dump only the main DB
         */
@@ -202,6 +203,9 @@ int main(int argc, char *argv[])
                case 'n':
                        envflags |= MDB_NOSUBDIR;
                        break;
+               case 'v':
+                       envflags |= MDB_PREVMETA;
+                       break;
                case 'p':
                        mode |= PRINT;
                        break;
index 3520c92ae319bff44125e3345ed4c4eac0371c03..236019dc6edf3dffb3a707a0f089f4791f26bf04 100644 (file)
@@ -1,4 +1,4 @@
-.TH MDB_STAT 1 "2015/09/30" "LMDB 0.9.17"
+.TH MDB_STAT 1 "2017/07/31" "LMDB 0.9.90"
 .\" Copyright 2012-2017 Howard Chu, Symas Corp. All Rights Reserved.
 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
 .SH NAME
@@ -14,6 +14,8 @@ mdb_stat \- LMDB environment status tool
 [\c
 .BR \-n ]
 [\c
+.BR \-v ]
+[\c
 .BR \-r [ r ]]
 [\c
 .BR \-a \ |
@@ -39,6 +41,10 @@ If \fB\-fff\fP is given, display the full list of page IDs in the freelist.
 .BR \-n
 Display the status of an LMDB database which does not use subdirectories.
 .TP
+.BR \-v
+Use the previous environment state instead of the latest state.
+This may be useful if the latest state has been corrupted.
+.TP
 .BR \-r
 Display information about the environment reader table.
 Shows the process ID, thread ID, and transaction ID for each active
index 0f0fa847f39582168e2f760753aef1e9da79de1d..15145b8456050d49c32a9cb7ff9d2528b425cd13 100644 (file)
@@ -34,7 +34,7 @@ static void prstat(MDB_stat *ms)
 
 static void usage(char *prog)
 {
-       fprintf(stderr, "usage: %s [-V] [-n] [-e] [-r[r]] [-f[f[f]]] [-a|-s subdb] dbpath\n", prog);
+       fprintf(stderr, "usage: %s [-V] [-n] [-e] [-r[r]] [-f[f[f]]] [-v] [-a|-s subdb] dbpath\n", prog);
        exit(EXIT_FAILURE);
 }
 
@@ -61,6 +61,7 @@ int main(int argc, char *argv[])
         * -f: print freelist info
         * -r: print reader info
         * -n: use NOSUBDIR flag on env_open
+        * -v: use previous metapage
         * -V: print version and exit
         * (default) print stat of only the main DB
         */
@@ -84,6 +85,9 @@ int main(int argc, char *argv[])
                case 'n':
                        envflags |= MDB_NOSUBDIR;
                        break;
+               case 'v':
+                       envflags |= MDB_PREVMETA;
+                       break;
                case 'r':
                        rdrinfo++;
                        break;