org.h2.mvstore

## Class MVStoreTool

- java.lang.Object
- - org.h2.mvstore.MVStoreTool

    public class MVStoreTool
    extends java.lang.Object

Utility methods used in combination with the MVStore.

### Constructor Summary

Constructors
Constructor and Description
`MVStoreTool()`

### Method Summary

All Methods Static Methods Concrete Methods
`static void` `compact(MVStore source, MVStore target)` Copy all live pages from the source store to the target store.
`static void` `compact(java.lang.String fileName, boolean compress)` Compress the store by creating a new file and copying the live pages there.
`static void` `compact(java.lang.String sourceFileName, java.lang.String targetFileName, boolean compress)` Copy all live pages from the source store to the target store.
`static void` `compactCleanUp(java.lang.String fileName)` Clean up if needed, in a case a compact operation was interrupted due to killing the process or a power failure.
`static void` `dump(java.lang.String fileName, boolean details)` Read the contents of the file and write them to system out.
`static void` `dump(java.lang.String fileName, java.io.Writer writer, boolean details)` Read the contents of the file and display them in a human-readable format.
`static void` `info(java.lang.String fileName)` Read the summary information of the file and write them to system out.
`static java.lang.String` `info(java.lang.String fileName, java.io.Writer writer)` Read the summary information of the file and write them to system out.
`static void` `main(java.lang.String... args)` Runs this tool.
`static void` `repair(java.lang.String fileName)` Repair a store by rolling back to the newest good version.
`static long` `rollback(java.lang.String fileName, long targetVersion, java.io.Writer writer)` Roll back to a given revision into a file called *.temp.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### MVStoreTool

    public MVStoreTool()

### Method Detail

#### main

    public static void main(java.lang.String... args)

Runs this tool. Options are case sensitive. Supported options are:

[-dump <fileName>] | Dump the contends of the file
[-info <fileName>] | Get summary information about a file
[-compact <fileName>] | Compact a store
[-compress <fileName>] | Compact a store with compression enabled

Parameters:
  `args` - the command line arguments

#### dump

    public static void dump(java.lang.String fileName,
                            boolean details)

Read the contents of the file and write them to system out.

Parameters:
  `fileName` - the name of the file
  `details` - whether to print details

#### info

    public static void info(java.lang.String fileName)

Read the summary information of the file and write them to system out.

Parameters:
  `fileName` - the name of the file

#### dump

    public static void dump(java.lang.String fileName,
                            java.io.Writer writer,
                            boolean details)

Read the contents of the file and display them in a human-readable format.

Parameters:
  `fileName` - the name of the file
  `writer` - the print writer
  `details` - print the page details

#### info

    public static java.lang.String info(java.lang.String fileName,
                                        java.io.Writer writer)

Read the summary information of the file and write them to system out.

Parameters:
  `fileName` - the name of the file
  `writer` - the print writer
Returns:
  null if successful (if there was no error), otherwise the error message

#### compact

    public static void compact(java.lang.String fileName,
                               boolean compress)

Compress the store by creating a new file and copying the live pages there. Temporarily, a file with the suffix ".tempFile" is created. This file is then renamed, replacing the original file, if possible. If not, the new file is renamed to ".newFile", then the old file is removed, and the new file is renamed. This might be interrupted, so it's better to compactCleanUp before opening a store, in case this method was used.

Parameters:
  `fileName` - the file name
  `compress` - whether to compress the data

#### compactCleanUp

    public static void compactCleanUp(java.lang.String fileName)

Clean up if needed, in a case a compact operation was interrupted due to killing the process or a power failure. This will delete temporary files (if any), and in case atomic file replacements were not used, rename the new file.

Parameters:
  `fileName` - the file name

#### compact

    public static void compact(java.lang.String sourceFileName,
                               java.lang.String targetFileName,
                               boolean compress)

Copy all live pages from the source store to the target store.

Parameters:
  `sourceFileName` - the name of the source store
  `targetFileName` - the name of the target store
  `compress` - whether to compress the data

#### compact

    public static void compact(MVStore source,
                               MVStore target)

Copy all live pages from the source store to the target store.

Parameters:
  `source` - the source store
  `target` - the target store

#### repair

    public static void repair(java.lang.String fileName)

Repair a store by rolling back to the newest good version.

Parameters:
  `fileName` - the file name

#### rollback

    public static long rollback(java.lang.String fileName,
                                long targetVersion,
                                java.io.Writer writer)

Roll back to a given revision into a file called *.temp.

Parameters:
  `fileName` - the file name
  `targetVersion` - the version to roll back to (Long.MAX_VALUE for the latest version)
  `writer` - the log writer
Returns:
  the version rolled back to (-1 if no version)