java.lang.Object
org.firebirdsql.management.FBServiceManager
org.firebirdsql.management.FBBackupManagerBase
org.firebirdsql.management.FBStreamingBackupManager
- All Implemented Interfaces:
AttachmentProperties
,BaseProperties
,ServiceConnectionProperties
,BackupManager
,ServiceManager
Implements the streaming version of 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
ConstructorsConstructorDescriptionCreate a new instance ofFBStreamingBackupManager
based on the default GDSType.FBStreamingBackupManager
(String gdsType) Create a new instance ofFBStreamingBackupManager
based on a given GDSType.FBStreamingBackupManager
(GDSType gdsType) Create a new instance ofFBStreamingBackupManager
based on a given GDSType. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addBackupPath
(String path, int size) Add the file to the backup of the specified size.protected void
addBackupsToBackupRequestBuffer
(FbService service, ServiceRequestBuffer backupSPB) Adds stdout as a source for the backup operationprotected void
addBackupsToRestoreRequestBuffer
(FbService service, ServiceRequestBuffer restoreSPB) Adds stdin as a source for the restore operationvoid
backupDatabase
(int options) Perform the backup operation.void
Clear the information about backup paths.void
restoreDatabase
(int options) Perform the restore operation.void
setBackupBufferSize
(int bufferSize) Set the local buffer size to be used when doing a backup.void
setBackupOutputStream
(OutputStream backupStream) void
setBackupPath
(String backupPath) Sets the location of the backup file.void
setRestoreInputStream
(InputStream restoreStream) void
setRestorePageSize
(int pageSize) Set the page size that will be used for a restored database.protected boolean
Streaming backups are currently not capable of verbose outputMethods inherited from class org.firebirdsql.management.FBBackupManagerBase
addBackupPath, addRestorePath, backupDatabase, backupMetadata, clearRestorePaths, getBackupSRB, getRestoreSRB, restoreDatabase, setDatabase, setRestorePageBufferCount, setRestoreReadOnly, setRestoreReplace, setVerbose
Methods inherited from class org.firebirdsql.management.FBServiceManager
attachDatabase, attachServiceManager, connectionPropertyValues, createRequestBuffer, 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, 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.jaybird.props.AttachmentProperties
getAuthPlugins, getCharSet, getConnectTimeout, getDbCryptConfig, getEnableProtocol, getEncoding, getParallelWorkers, getPassword, getPortNumber, getProcessId, getProcessName, getRoleName, getServerName, getSocketBufferSize, getSocketFactory, getSoTimeout, getType, getUser, getWireCrypt, isWireCompression, setAuthPlugins, setCharSet, setConnectTimeout, setDbCryptConfig, setEnableProtocol, setEncoding, setParallelWorkers, setPassword, setPortNumber, setProcessId, setProcessName, setRoleName, setServerName, setSocketBufferSize, setSocketFactory, setSoTimeout, setType, setUser, setWireCompression, setWireCrypt
Methods inherited from interface org.firebirdsql.management.BackupManager
addBackupPath, addRestorePath, backupDatabase, backupMetadata, clearRestorePaths, restoreDatabase, setDatabase, setRestorePageBufferCount, setRestoreReadOnly, setRestoreReplace, setVerbose
Methods inherited from interface org.firebirdsql.jaybird.props.BaseProperties
connectionPropertyValues, getBooleanProperty, getBooleanProperty, getIntProperty, getIntProperty, getProperty, getProperty, setBooleanProperty, setIntProperty, setProperty
Methods inherited from interface org.firebirdsql.jaybird.props.ServiceConnectionProperties
getExpectedDb, getServiceName, setExpectedDb, setServiceName
Methods inherited from interface org.firebirdsql.management.ServiceManager
getDatabase, getHost, getLogger, getPort, getServerVersion, getWireCryptAsEnum, setHost, setLogger, setPort, setWireCryptAsEnum
-
Constructor Details
-
FBStreamingBackupManager
public FBStreamingBackupManager()Create a new instance ofFBStreamingBackupManager
based on the default GDSType. -
FBStreamingBackupManager
Create a new instance ofFBStreamingBackupManager
based on a given GDSType.- Parameters:
gdsType
- type must be PURE_JAVA, EMBEDDED, or NATIVE
-
FBStreamingBackupManager
Create a new instance ofFBStreamingBackupManager
based on a given GDSType.- Parameters:
gdsType
- type must be PURE_JAVA, EMBEDDED, or NATIVE
-
-
Method Details
-
setBackupBufferSize
public void setBackupBufferSize(int bufferSize) Set the local buffer size to be used when doing a backup. Default is 30720- Parameters:
bufferSize
- The buffer size to be used, a positive value
-
setBackupPath
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 callBackupManager.addBackupPath(String, int)
method after calling this one.- Specified by:
setBackupPath
in interfaceBackupManager
- Parameters:
backupPath
- the location of the backup file.- See Also:
-
addBackupPath
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 interfaceBackupManager
- Parameters:
path
- path to the backup file.size
- max size of the file in bytes.
-
setBackupOutputStream
-
setRestoreInputStream
-
clearBackupPaths
public void clearBackupPaths()Description copied from interface:BackupManager
Clear the information about backup paths. This method undoes all parameters set in theBackupManager.addBackupPath(String, int)
orBackupManager.addBackupPath(String)
methods.- Specified by:
clearBackupPaths
in interfaceBackupManager
-
backupDatabase
Description copied from interface:BackupManager
Perform the backup operation.- Specified by:
backupDatabase
in interfaceBackupManager
- Parameters:
options
- a bitmask combination of theBACKUP_*
constants for the backup operation- Throws:
SQLException
- if a database error occurs during the backup
-
restoreDatabase
Description copied from interface:BackupManager
Perform the restore operation.- Specified by:
restoreDatabase
in interfaceBackupManager
- Parameters:
options
- A bitmask combination ofRESTORE_*
constants- Throws:
SQLException
- if a database error occurs during the restore
-
verboseBackup
protected boolean verboseBackup()Streaming backups are currently not capable of verbose output- Specified by:
verboseBackup
in classFBBackupManagerBase
-
setRestorePageSize
public void setRestorePageSize(int pageSize) Set the page size that will be used for a restored database. The value forpageSize
must be one at least 4096, see alsPageSizeConstants
. The default value depends on the Firebird version. Pages smaller than 4096 were dropped in 2006 and are by definition unavailable with the streaming functionality of the Services API- Specified by:
setRestorePageSize
in interfaceBackupManager
- Overrides:
setRestorePageSize
in classFBBackupManagerBase
- Parameters:
pageSize
- The page size to be used in a restored database, seePageSizeConstants
with a minimum of 4096- See Also:
-
addBackupsToBackupRequestBuffer
Adds stdout as a source for the backup operation- Specified by:
addBackupsToBackupRequestBuffer
in classFBBackupManagerBase
- Parameters:
backupSPB
- The buffer to be used during the backup operation
-
addBackupsToRestoreRequestBuffer
Adds stdin as a source for the restore operation- Specified by:
addBackupsToRestoreRequestBuffer
in classFBBackupManagerBase
- Parameters:
restoreSPB
- The buffer to be used during the restore operation
-