Package org.h2.tools

Class Recover

    • Constructor Detail

      • Recover

        public Recover()
        Creates default instance
    • Method Detail

      • main

        public static void main​(java.lang.String... args)
                         throws java.sql.SQLException
        Options are case sensitive.
        Supported options
        [-help] or [-?] Print the list of options
        [-dir <dir>] The directory (default: .)
        [-db <database>] The database name (all databases if not set)
        [-trace] Print additional trace information
        [-transactionLog] Print the transaction log
        Encrypted databases need to be decrypted first.
        Parameters:
        args - the command line arguments
        Throws:
        java.sql.SQLException - on failure
      • runTool

        public void runTool​(java.lang.String... args)
                     throws java.sql.SQLException
        Dumps the contents of a database file to a human readable text file. This text file can be used to recover most of the data. This tool does not open the database and can be used even if the database files are corrupted. A database can get corrupted if there is a bug in the database engine or file system software, or if an application writes into the database file that doesn't understand the file format, or if there is a hardware problem.
        Specified by:
        runTool in class Tool
        Parameters:
        args - the command line arguments
        Throws:
        java.sql.SQLException - on failure
      • readBlobMap

        public static java.io.InputStream readBlobMap​(java.sql.Connection conn,
                                                      long lobId,
                                                      long precision)
                                               throws java.sql.SQLException
        INTERNAL
        Parameters:
        conn - to use
        lobId - id of the LOB stream
        precision - not used
        Returns:
        InputStream to read LOB content from
        Throws:
        java.sql.SQLException - on failure
      • readClobMap

        public static java.io.Reader readClobMap​(java.sql.Connection conn,
                                                 long lobId,
                                                 long precision)
                                          throws java.lang.Exception
        INTERNAL
        Parameters:
        conn - to use
        lobId - id of the LOB stream
        precision - not used
        Returns:
        Reader to read LOB content from
        Throws:
        java.sql.SQLException - on failure
        java.lang.Exception
      • execute

        public static void execute​(java.lang.String dir,
                                   java.lang.String db)
                            throws java.sql.SQLException
        Dumps the contents of a database to a SQL script file.
        Parameters:
        dir - the directory
        db - the database name (null for all databases)
        Throws:
        java.sql.SQLException - on failure
      • getDatabasePath

        public java.lang.String getDatabasePath()
        INTERNAL
        Specified by:
        getDatabasePath in interface DataHandler
        Returns:
        the database path
      • openFile

        public FileStore openFile​(java.lang.String name,
                                  java.lang.String mode,
                                  boolean mustExist)
        INTERNAL
        Specified by:
        openFile in interface DataHandler
        Parameters:
        name - the file name
        mode - the mode
        mustExist - whether the file must already exist
        Returns:
        the file
      • getLobSyncObject

        public java.lang.Object getLobSyncObject()
        INTERNAL
        Specified by:
        getLobSyncObject in interface DataHandler
        Returns:
        the synchronization object
      • readLob

        public int readLob​(long lobId,
                           byte[] hmac,
                           long offset,
                           byte[] buff,
                           int off,
                           int length)
        INTERNAL
        Specified by:
        readLob in interface DataHandler
        Parameters:
        lobId - the lob id
        hmac - the message authentication code
        offset - the offset within the lob
        buff - the target buffer
        off - the offset within the target buffer
        length - the number of bytes to read
        Returns:
        the number of bytes read