Package org.firebirdsql.management
Class FBBackupManagerBase
- java.lang.Object
-
- org.firebirdsql.management.FBServiceManager
-
- org.firebirdsql.management.FBBackupManagerBase
-
- All Implemented Interfaces:
AttachmentProperties
,BaseProperties
,ServiceConnectionProperties
,BackupManager
,ServiceManager
- Direct Known Subclasses:
FBBackupManager
,FBStreamingBackupManager
public abstract class FBBackupManagerBase extends FBServiceManager implements BackupManager
Implements the common functionality between regular and streaming backup/restore- Author:
- Roman Rokytskyy, Mark Rotteveel
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
FBBackupManagerBase.PathSizeStruct
Structure that holds path to the database and corresponding size of the file (in case of backup - that is size of the file in megabytes, in case of restore - size of the database file in pages).
-
Field Summary
Fields Modifier and Type Field Description protected boolean
noLimitRestore
protected java.util.List<FBBackupManagerBase.PathSizeStruct>
restorePaths
protected boolean
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 FBBackupManagerBase()
Create a new instance ofFBBackupManagerBase
based on the default GDSType.FBBackupManagerBase(java.lang.String gdsType)
Create a new instance ofFBBackupManagerBase
based on a given GDSType.FBBackupManagerBase(GDSType gdsType)
Create a new instance ofFBBackupManagerBase
based on a given GDSType.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addBackupPath(java.lang.String path)
Add backup file to the list.protected abstract void
addBackupsToBackupRequestBuffer(FbService service, ServiceRequestBuffer backupSPB)
Adds the backup source for the backup opration, depending on the manager usedprotected abstract void
addBackupsToRestoreRequestBuffer(FbService service, ServiceRequestBuffer restoreSPB)
Adds the backup files to be used during restorevoid
addRestorePath(java.lang.String path, int size)
Add the file to the multi-file database of the specified size for restore operation.void
backupDatabase()
Perform the backup operation.void
backupMetadata()
Perform the backup operation, metadata only.void
clearRestorePaths()
Clear the information about restore paths.protected ServiceRequestBuffer
getBackupSRB(FbService service, int options)
Creates and returns the "backup" service request buffer for the Service Manager.protected ServiceRequestBuffer
getRestoreSRB(FbService service, int options)
Creates and returns the "backup" service request buffer for the Service Manager.void
restoreDatabase()
Perform the restore operation.void
setDatabase(java.lang.String database)
Sets the database path for the connection to the service manager.void
setRestorePageBufferCount(int bufferCount)
Set the default number of pages to be buffered (cached) by default in a restored database.void
setRestorePageSize(int pageSize)
Set the page size that will be used for a restored database.void
setRestoreReadOnly(boolean readOnly)
Set the read-only attribute on a restored database.void
setRestoreReplace(boolean replace)
Set the restore operation to create a new database, as opposed to overwriting an existing database.void
setVerbose(boolean verbose)
Set whether the operations of thisBackupManager
will result in verbose logging to the configured logger.protected abstract boolean
verboseBackup()
Whether the backup will produce verbose output-
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, 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, getEncoding, getParallelWorkers, getPassword, getPortNumber, getProcessId, getProcessName, getRoleName, getServerName, getSocketBufferSize, getSoTimeout, getType, getUser, getWireCrypt, isWireCompression, setAuthPlugins, setCharSet, setConnectTimeout, setDbCryptConfig, setEncoding, setParallelWorkers, setPassword, setPortNumber, setProcessId, setProcessName, setRoleName, setServerName, setSocketBufferSize, setSoTimeout, setType, setUser, setWireCompression, setWireCrypt
-
Methods inherited from interface org.firebirdsql.management.BackupManager
addBackupPath, backupDatabase, clearBackupPaths, restoreDatabase, setBackupPath
-
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
-
-
-
-
Field Detail
-
noLimitRestore
protected boolean noLimitRestore
-
restorePaths
protected final java.util.List<FBBackupManagerBase.PathSizeStruct> restorePaths
-
verbose
protected boolean verbose
-
-
Constructor Detail
-
FBBackupManagerBase
public FBBackupManagerBase()
Create a new instance ofFBBackupManagerBase
based on the default GDSType.
-
FBBackupManagerBase
public FBBackupManagerBase(java.lang.String gdsType)
Create a new instance ofFBBackupManagerBase
based on a given GDSType.- Parameters:
gdsType
- type must be PURE_JAVA, EMBEDDED, or NATIVE
-
FBBackupManagerBase
public FBBackupManagerBase(GDSType gdsType)
Create a new instance ofFBBackupManagerBase
based on a given GDSType.- Parameters:
gdsType
- type must be PURE_JAVA, EMBEDDED, or NATIVE
-
-
Method Detail
-
addBackupPath
public void addBackupPath(java.lang.String path)
Description copied from interface:BackupManager
Add backup file to the list. This method is used only during restoring the database to specify multi-file backups. The call is equivalent to passing the size -1 toBackupManager.addBackupPath(String, int)
call.If application invokes backup operation, an error is generated in that call.
- Specified by:
addBackupPath
in interfaceBackupManager
- Parameters:
path
- path to the backup file.
-
setDatabase
public void setDatabase(java.lang.String database)
Description copied from interface:ServiceManager
Sets the database path for the connection to the service manager.Will also set the
expectedDb
property. If a different value must be used, it must be set after calling this method.- Specified by:
setDatabase
in interfaceBackupManager
- Specified by:
setDatabase
in interfaceServiceManager
- Overrides:
setDatabase
in classFBServiceManager
- Parameters:
database
- path for the connection to the service manager.
-
addRestorePath
public void addRestorePath(java.lang.String path, int size)
Description copied from interface:BackupManager
Add the file to the multi-file database of the specified size for restore operation.- Specified by:
addRestorePath
in interfaceBackupManager
- Parameters:
path
- path to the backup file.size
- max size of the database file in pages.
-
clearRestorePaths
public void clearRestorePaths()
Description copied from interface:BackupManager
Clear the information about restore paths. This method undoes all parameters set in theBackupManager.addRestorePath(String, int)
orBackupManager.setDatabase(String)
methods.- Specified by:
clearRestorePaths
in interfaceBackupManager
-
backupDatabase
public void backupDatabase() throws java.sql.SQLException
Description copied from interface:BackupManager
Perform the backup operation.- Specified by:
backupDatabase
in interfaceBackupManager
- Throws:
java.sql.SQLException
- if a database error occurs during the backup
-
backupMetadata
public void backupMetadata() throws java.sql.SQLException
Description copied from interface:BackupManager
Perform the backup operation, metadata only.- Specified by:
backupMetadata
in interfaceBackupManager
- Throws:
java.sql.SQLException
- if a database error occurs during the backup
-
getBackupSRB
protected ServiceRequestBuffer getBackupSRB(FbService service, int options) throws java.sql.SQLException
Creates and returns the "backup" service request buffer for the Service Manager.- Parameters:
service
- Service handleoptions
- The isc_spb_bkp_* parameters options to be used- Returns:
- the "backup" service request buffer for the Service Manager.
- Throws:
java.sql.SQLException
-
restoreDatabase
public void restoreDatabase() throws java.sql.SQLException
Description copied from interface:BackupManager
Perform the restore operation.- Specified by:
restoreDatabase
in interfaceBackupManager
- Throws:
java.sql.SQLException
- if a database error occurs during the restore
-
setVerbose
public void setVerbose(boolean verbose)
Set whether the operations of thisBackupManager
will result in verbose logging to the configured logger.- Specified by:
setVerbose
in interfaceBackupManager
- Parameters:
verbose
- Iftrue
, operations will be logged verbosely, otherwise they will not be logged verbosely
-
setRestorePageBufferCount
public void setRestorePageBufferCount(int bufferCount)
Set the default number of pages to be buffered (cached) by default in a restored database.- Specified by:
setRestorePageBufferCount
in interfaceBackupManager
- Parameters:
bufferCount
- The page-buffer size to be used, a positive value
-
setRestorePageSize
public void setRestorePageSize(int pageSize)
Set the page size that will be used for a restored database. The value forpageSize
must be one ofPageSizeConstants
. The default value depends on the Firebird version.Be aware that not all page sizes are supported by all Firebird versions.
- Specified by:
setRestorePageSize
in interfaceBackupManager
- Parameters:
pageSize
- The page size to be used in a restored database, seePageSizeConstants
- See Also:
PageSizeConstants
-
setRestoreReplace
public void setRestoreReplace(boolean replace)
Set the restore operation to create a new database, as opposed to overwriting an existing database. This is true by default.- Specified by:
setRestoreReplace
in interfaceBackupManager
- Parameters:
replace
- Iftrue
, the restore operation will attempt to create a new database, otherwise the restore operation will overwrite an existing database
-
setRestoreReadOnly
public void setRestoreReadOnly(boolean readOnly)
Set the read-only attribute on a restored database.- Specified by:
setRestoreReadOnly
in interfaceBackupManager
- Parameters:
readOnly
- Iftrue
, a restored database will be read-only, otherwise it will be read-write.
-
getRestoreSRB
protected ServiceRequestBuffer getRestoreSRB(FbService service, int options)
Creates and returns the "backup" service request buffer for the Service Manager.- Parameters:
service
- Service handleoptions
- The options to be used for the backup operation- Returns:
- the "backup" service request buffer for the Service Manager.
-
addBackupsToBackupRequestBuffer
protected abstract void addBackupsToBackupRequestBuffer(FbService service, ServiceRequestBuffer backupSPB) throws java.sql.SQLException
Adds the backup source for the backup opration, depending on the manager used- Parameters:
backupSPB
- The buffer to be used during the backup operation- Throws:
java.sql.SQLException
-
addBackupsToRestoreRequestBuffer
protected abstract void addBackupsToRestoreRequestBuffer(FbService service, ServiceRequestBuffer restoreSPB)
Adds the backup files to be used during restore
-
verboseBackup
protected abstract boolean verboseBackup()
Whether the backup will produce verbose output
-
-