org.firebirdsql.management

## Class FBNBackupManager

- java.lang.Object
- - org.firebirdsql.management.FBServiceManager
  - - org.firebirdsql.management.FBNBackupManager

All Implemented Interfaces:
  AttachmentProperties, BaseProperties, ServiceConnectionProperties, NBackupManager, ServiceManager

    public class FBNBackupManager
    extends FBServiceManager
    implements NBackupManager

Implements the incremental backup and restore functionality of NBackup via the Firebird Services API.

Author:
  Thomas Steinmaurer, Mark Rotteveel

### Field Summary

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

`BUFFER_SIZE`

### Constructor Summary

Constructors
Constructor and Description
`FBNBackupManager()` Create a new instance of `FBNBackupManager` based on the default GDSType.
`FBNBackupManager(GDSType gdsType)` Create a new instance of `FBNBackupManager` based on a given GDSType.
`FBNBackupManager(java.lang.String gdsType)` Create a new instance of `FBNBackupManager` based on a given GDSType name.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addBackupFile(java.lang.String backupFile)` Add additional backup files.
`void` `backupDatabase()` Perform the backup operation.
`void` `clearBackupFiles()` Clear the information about backup files.
`void` `fixupDatabase()` Perform the nbackup fixup operation.
`void` `restoreDatabase()` Perform the restore operation.
`void` `setBackupFile(java.lang.String backupFile)` Sets the location of the backup file.
`void` `setBackupGuid(java.lang.String guid)` Sets the backup GUID (Firebird 4 and higher only).
`void` `setBackupLevel(int backupLevel)` Sets the backup level (0 = full, 1..n = incremental)
`void` `setCleanHistory(boolean cleanHistory)` Enables clean history on backup.
`void` `setInPlaceRestore(boolean inPlaceRestore)` Enables in-place restore.
`void` `setKeepDays(int days)` Sets the number of days of backup history to keep.
`void` `setKeepRows(int rows)` Sets the number of rows of backup history to keep (this includes the row created by the backup).
`void` `setNoDBTriggers(boolean noDBTriggers)` Sets the option no database triggers when connecting at backup or in-place restore.
`void` `setPreserveSequence(boolean preserveSequence)` Enables preserve sequence (for fixup or restore).

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

`attachDatabase, attachServiceManager, connectionPropertyValues, createRequestBuffer, executeServicesOperation, executeServicesOperation, getAuthPlugins, getBooleanProperty, getCharSet, getDatabase, getDbCryptConfig, getExpectedDb, getHost, getIntProperty, getLogger, getPassword, getPort, getPortNumber, getProperty, getServerName, getServerVersion, getServiceName, getUser, getWireCrypt, getWireCryptAsEnum, isWireCompression, queueService, setAuthPlugins, setBooleanProperty, setCharSet, setDatabase, setDbCryptConfig, setExpectedDb, setHost, setIntProperty, setLogger, setPassword, setPort, setPortNumber, setProperty, setServerName, setServiceName, setType, setUser, setWireCompression, setWireCryptAsEnum`

### 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.NBackupManager

`setDatabase`

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

`getDatabase, getHost, getLogger, getPort, getServerVersion, getWireCryptAsEnum, setHost, setLogger, setPort, setWireCryptAsEnum`

### Methods inherited from interface org.firebirdsql.jaybird.props.ServiceConnectionProperties

`getExpectedDb, getServiceName, setExpectedDb, setServiceName`

### Methods inherited from interface org.firebirdsql.jaybird.props.AttachmentProperties

`getAuthPlugins, getCharSet, getConnectTimeout, getDbCryptConfig, getEncoding, getPassword, getPortNumber, getProcessId, getProcessName, getRoleName, getServerName, getSocketBufferSize, getSoTimeout, getType, getUser, getWireCrypt, isWireCompression, setAuthPlugins, setCharSet, setConnectTimeout, setDbCryptConfig, setEncoding, setPassword, setPortNumber, setProcessId, setProcessName, setRoleName, setServerName, setSocketBufferSize, setSoTimeout, setType, setUser, setWireCompression, setWireCrypt`

### Methods inherited from interface org.firebirdsql.jaybird.props.BaseProperties

`connectionPropertyValues, getBooleanProperty, getBooleanProperty, getIntProperty, getIntProperty, getProperty, getProperty, setBooleanProperty, setIntProperty, setProperty`

### Constructor Detail

#### FBNBackupManager

    public FBNBackupManager()

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

#### FBNBackupManager

    public FBNBackupManager(java.lang.String gdsType)

Create a new instance of `FBNBackupManager` based on a given GDSType name.

Parameters:
  `gdsType` - type must be PURE_JAVA, EMBEDDED, or NATIVE

#### FBNBackupManager

    public FBNBackupManager(GDSType gdsType)

Create a new instance of `FBNBackupManager` based on a given GDSType.

Parameters:
  `gdsType` - type must be PURE_JAVA, EMBEDDED, or NATIVE

### Method Detail

#### setBackupFile

    public void setBackupFile(java.lang.String backupFile)

Description copied from interface: `NBackupManager`
Sets the location of the backup file.

Warning: this method behaves identical to `NBackupManager.addBackupFile(String)`.

Specified by:
  `setBackupFile` in interface `NBackupManager`
Parameters:
  `backupFile` - the location of the backup file.

#### addBackupFile

    public void addBackupFile(java.lang.String backupFile)

Description copied from interface: `NBackupManager`
Add additional backup files.

Specifying multiple backup files is only valid for restore, for backup only the first file is used.

Use `NBackupManager.clearBackupFiles()` to clear earlier backup files.

Specified by:
  `addBackupFile` in interface `NBackupManager`
Parameters:
  `backupFile` - the location of the backup file.

#### clearBackupFiles

    public void clearBackupFiles()

Description copied from interface: `NBackupManager`
Clear the information about backup files. This method undoes all parameters set in the `NBackupManager.addBackupFile(String)` method.

Specified by:
  `clearBackupFiles` in interface `NBackupManager`

#### backupDatabase

    public void backupDatabase()
                        throws java.sql.SQLException

Description copied from interface: `NBackupManager`
Perform the backup operation.

Specified by:
  `backupDatabase` in interface `NBackupManager`
Throws:
  `java.sql.SQLException` - if a database error occurs during the backup

#### restoreDatabase

    public void restoreDatabase()
                         throws java.sql.SQLException

Description copied from interface: `NBackupManager`
Perform the restore operation.

Set `NBackupManager.setPreserveSequence(boolean)` to preserve the original database GUID and replication sequence.

Specified by:
  `restoreDatabase` in interface `NBackupManager`
Throws:
  `java.sql.SQLException` - if a database error occurs during the restore
See Also:
  `NBackupManager.restoreDatabase()`

#### fixupDatabase

    public void fixupDatabase()
                       throws java.sql.SQLException

Description copied from interface: `NBackupManager`
Perform the nbackup fixup operation.

A fixup will switch a locked database to 'normal' state without merging the delta, so this is a potentially destructive action. The normal use-case of this option is to unlock a copy of a database file where the source database file was locked with `nbackup -L` or `ALTER DATABASE BEGIN BACKUP`.

Set `NBackupManager.setPreserveSequence(boolean)` to preserve the original database GUID and replication sequence.

Specified by:
  `fixupDatabase` in interface `NBackupManager`
Throws:
  `java.sql.SQLException` - if a database error occurs during the fixup

#### setBackupLevel

    public void setBackupLevel(int backupLevel)

Description copied from interface: `NBackupManager`
Sets the backup level (0 = full, 1..n = incremental)

Specified by:
  `setBackupLevel` in interface `NBackupManager`
Parameters:
  `backupLevel` - backup level (e.g. 0 = full backup, 1 = level 1 incremental backup based on level 0 backup

#### setBackupGuid

    public void setBackupGuid(java.lang.String guid)

Description copied from interface: `NBackupManager`
Sets the backup GUID (Firebird 4 and higher only).

The backup GUID is the GUID of a previous backup of the (source) database. This is used by Firebird to backup the pages modified since that backup.

This setting is mutually exclusive with `NBackupManager.setBackupLevel(int)`, but this is only checked server-side.

Specified by:
  `setBackupGuid` in interface `NBackupManager`
Parameters:
  `guid` - A GUID string of a previous backup, enclosed in braces.

#### setNoDBTriggers

    public void setNoDBTriggers(boolean noDBTriggers)

Description copied from interface: `NBackupManager`
Sets the option no database triggers when connecting at backup or in-place restore.

Specified by:
  `setNoDBTriggers` in interface `NBackupManager`
Parameters:
  `noDBTriggers` - `true` disable db triggers during backup or in-place restore.

#### setInPlaceRestore

    public void setInPlaceRestore(boolean inPlaceRestore)

Description copied from interface: `NBackupManager`
Enables in-place restore.

Specified by:
  `setInPlaceRestore` in interface `NBackupManager`
Parameters:
  `inPlaceRestore` - `true` to enable in-place restore

#### setPreserveSequence

    public void setPreserveSequence(boolean preserveSequence)

Description copied from interface: `NBackupManager`
Enables preserve sequence (for fixup or restore).

This preserves the existing GUID and replication sequence of the original database (they are reset otherwise).

Specified by:
  `setPreserveSequence` in interface `NBackupManager`
Parameters:
  `preserveSequence` - `true` to enable preserve sequence

#### setCleanHistory

    public void setCleanHistory(boolean cleanHistory)

Description copied from interface: `NBackupManager`
Enables clean history on backup.

The backup will fail if `NBackupManager.setKeepDays(int)` or `NBackupManager.setKeepRows(int)` has not been called.

Specified by:
  `setCleanHistory` in interface `NBackupManager`
Parameters:
  `cleanHistory` - `true` to enable clean history

#### setKeepDays

    public void setKeepDays(int days)

Description copied from interface: `NBackupManager`
Sets the number of days of backup history to keep.

Server-side, this option is mutually exclusive with `NBackupManager.setKeepRows(int)`, this is not enforced by the Java code.

This option only has effect when `setCleanHistory(true)` has been called.

Specified by:
  `setKeepDays` in interface `NBackupManager`
Parameters:
  `days` - number of days to keep history when cleaning, or `-1` to clear current value
See Also:
  `NBackupManager.setCleanHistory(boolean)`, `NBackupManager.setKeepRows(int)`

#### setKeepRows

    public void setKeepRows(int rows)

Description copied from interface: `NBackupManager`
Sets the number of rows of backup history to keep (this includes the row created by the backup).

Server-side, this option is mutually exclusive with `NBackupManager.setKeepDays(int)`, this is not enforced by the Java code.

This option only has effect when `setCleanHistory(true)` has been called.

Specified by:
  `setKeepRows` in interface `NBackupManager`
Parameters:
  `rows` - number of rows to keep history when cleaning, or `-1` to clear current value
See Also:
  `NBackupManager.setCleanHistory(boolean)`, `NBackupManager.setKeepDays(int)`