Package org.firebirdsql.management

## Class FBBackupManager

- java.lang.Object
- - org.firebirdsql.management.FBServiceManager
  - - org.firebirdsql.management.FBBackupManagerBase
    - - org.firebirdsql.management.FBBackupManager

- All Implemented Interfaces:
    `BackupManager`, `ServiceManager`

      public class FBBackupManager
      extends FBBackupManagerBase
      implements BackupManager

  Implements the backup and restore functionality of Firebird Services API.
  Author:
    Roman Rokytskyy, Mark Rotteveel

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.firebirdsql.management.FBBackupManagerBase

      `FBBackupManagerBase.PathSizeStruct`

  - ### Field Summary

    - ### Fields inherited from class org.firebirdsql.management.FBBackupManagerBase

      `noLimitRestore, restorePaths, verbose`

    - ### Fields inherited from class org.firebirdsql.management.FBServiceManager

      `BUFFER_SIZE`

    - ### Fields inherited from interface org.firebirdsql.management.BackupManager

      `BACKUP_CONVERT, BACKUP_EXPAND, BACKUP_IGNORE_CHECKSUMS, BACKUP_IGNORE_LIMBO, BACKUP_METADATA_ONLY, BACKUP_NO_GARBAGE_COLLECT, BACKUP_NON_TRANSPORTABLE, BACKUP_OLD_DESCRIPTIONS, RESTORE_DEACTIVATE_INDEX, RESTORE_NO_SHADOW, RESTORE_NO_VALIDITY, RESTORE_ONE_AT_A_TIME, RESTORE_USE_ALL_SPACE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FBBackupManager()` | Create a new instance of `FBBackupManager` based on the default GDSType.
    `FBBackupManager​(java.lang.String gdsType)` | Create a new instance of `FBBackupManager` based on a given GDSType.
    `FBBackupManager​(GDSType gdsType)` | Create a new instance of `FBBackupManager` based on a given GDSType.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addBackupPath​(java.lang.String path, int size)` | Add the file to the backup of the specified size.
    `protected void` | `addBackupsToBackupRequestBuffer​(FbService service, ServiceRequestBuffer backupSPB)` | Adds the currentDatabase as a source for the backup operation
    `protected void` | `addBackupsToRestoreRequestBuffer​(FbService service, ServiceRequestBuffer restoreSPB)` | Adds the list of backups to be used for the restore operation
    `void` | `backupDatabase​(int options)` | Perform the backup operation.
    `void` | `clearBackupPaths()` | Clear the information about backup paths.
    `void` | `restoreDatabase​(int options)` | Perform the restore operation.
    `void` | `setBackupPath​(java.lang.String backupPath)` | Sets the location of the backup file.
    `protected boolean` | `verboseBackup()` | Whether backing up will produce verbose output

    - ### Methods inherited from class org.firebirdsql.management.FBBackupManagerBase

      `addBackupPath, addRestorePath, backupDatabase, backupMetadata, clearRestorePaths, getBackupSRB, getRestoreSRB, restoreDatabase, setDatabase, setRestorePageBufferCount, setRestorePageSize, setRestoreReadOnly, setRestoreReplace, setVerbose`

    - ### Methods inherited from class org.firebirdsql.management.FBServiceManager

      `attachDatabase, attachServiceManager, createRequestBuffer, executeServicesOperation, executeServicesOperation, getAuthPlugins, getCharSet, getDatabase, getDbCryptConfig, getHost, getLogger, getPassword, getPort, getServerVersion, getServiceName, getUser, getWireCrypt, isWireCompression, queueService, setAuthPlugins, setCharSet, setDbCryptConfig, setHost, setLogger, setPassword, setPort, setUser, setWireCompression, setWireCrypt`

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

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

    - ### Methods inherited from interface org.firebirdsql.management.BackupManager

      `addBackupPath, addRestorePath, backupDatabase, backupMetadata, clearRestorePaths, restoreDatabase, setDatabase, setRestorePageBufferCount, setRestorePageSize, setRestoreReadOnly, setRestoreReplace, setVerbose`

    - ### Methods inherited from interface org.firebirdsql.management.ServiceManager

      `getAuthPlugins, getCharSet, getDatabase, getDbCryptConfig, getHost, getLogger, getPassword, getPort, getServerVersion, getUser, getWireCrypt, isWireCompression, setAuthPlugins, setCharSet, setDbCryptConfig, setHost, setLogger, setPassword, setPort, setUser, setWireCompression, setWireCrypt`

- - ### Constructor Detail

    - #### FBBackupManager

          public FBBackupManager()

      Create a new instance of `FBBackupManager` based on the default GDSType.

    - #### FBBackupManager

          public FBBackupManager​(java.lang.String gdsType)

      Create a new instance of `FBBackupManager` based on a given GDSType.
      Parameters:
        `gdsType` - type must be PURE_JAVA, EMBEDDED, or NATIVE

    - #### FBBackupManager

          public FBBackupManager​(GDSType gdsType)

      Create a new instance of `FBBackupManager` based on a given GDSType.
      Parameters:
        `gdsType` - type must be PURE_JAVA, EMBEDDED, or NATIVE

  - ### Method Detail

    - #### verboseBackup

          protected boolean verboseBackup()

      Whether backing up will produce verbose output
      Specified by:
        `verboseBackup` in class `FBBackupManagerBase`

    - #### setBackupPath

          public void setBackupPath​(java.lang.String backupPath)

      Description copied from interface: `BackupManager`
      Sets the location of the backup file. This method is used to set the path to the backup consisting of a single file. It is not possible to add multiple files or specify the max. size of the file using this method. It is also not possible to call `BackupManager.addBackupPath(String, int)` method after calling this one.
      Specified by:
        `setBackupPath` in interface `BackupManager`
      Parameters:
        `backupPath` - the location of the backup file.
      See Also:
        `for multi-file backups.`

    - #### addBackupPath

          public void addBackupPath​(java.lang.String path,
                                    int size)

      Description copied from interface: `BackupManager`
      Add the file to the backup of the specified size. Firebird allows splitting the backup into multiple files, limiting the size of the backup file. This can be useful for example for creating a backup on CD or DVD.
      Specified by:
        `addBackupPath` in interface `BackupManager`
      Parameters:
        `path` - path to the backup file.
        `size` - max size of the file in bytes.

    - #### clearBackupPaths

          public void clearBackupPaths()

      Description copied from interface: `BackupManager`
      Clear the information about backup paths. This method undoes all parameters set in the `BackupManager.addBackupPath(String, int)` or `BackupManager.addBackupPath(String)` methods.
      Specified by:
        `clearBackupPaths` in interface `BackupManager`

    - #### backupDatabase

          public void backupDatabase​(int options)
                              throws java.sql.SQLException

      Description copied from interface: `BackupManager`
      Perform the backup operation.
      Specified by:
        `backupDatabase` in interface `BackupManager`
      Parameters:
        `options` - a bitmask combination of the `BACKUP_*` constants for the backup operation
      Throws:
        `java.sql.SQLException` - if a database error occurs during the backup

    - #### restoreDatabase

          public void restoreDatabase​(int options)
                               throws java.sql.SQLException

      Description copied from interface: `BackupManager`
      Perform the restore operation.
      Specified by:
        `restoreDatabase` in interface `BackupManager`
      Parameters:
        `options` - A bitmask combination of `RESTORE_*` constants
      Throws:
        `java.sql.SQLException` - if a database error occurs during the restore

    - #### addBackupsToBackupRequestBuffer

          protected void addBackupsToBackupRequestBuffer​(FbService service,
                                                         ServiceRequestBuffer backupSPB)
                                                  throws java.sql.SQLException

      Adds the currentDatabase as a source for the backup operation
      Specified by:
        `addBackupsToBackupRequestBuffer` in class `FBBackupManagerBase`
      Parameters:
        `backupSPB` - The buffer to be used during the backup operation
      Throws:
        `java.sql.SQLException`

    - #### addBackupsToRestoreRequestBuffer

          protected void addBackupsToRestoreRequestBuffer​(FbService service,
                                                          ServiceRequestBuffer restoreSPB)

      Adds the list of backups to be used for the restore operation
      Specified by:
        `addBackupsToRestoreRequestBuffer` in class `FBBackupManagerBase`
      Parameters:
        `restoreSPB` - The buffer to be used during the restore operation