增量备份与恢复
可以使用以下方法在数据库正常活动不受干扰的情况下执行增量在线备份。另外,还有用于保存数据库映像或类数据的 API。(有关详细信息,请参阅数据导出和导入页面。)
备份
SmartEDB 数据库的备份和恢复功能由 Python 类 Backup 实现,该类用于将数据库数据备份到外部文件或从外部文件恢复。该类定义了以下常量(这些常量与 C API 中 struct mco_db_params_t 中的枚举 mco_backup_type、枚举 mco_backup_flags 相对应):
class Backup(object):
MCO_BACKUP_TYPE_AUTO = 0
MCO_BACKUP_TYPE_SNAPSHOT = 1
MCO_BACKUP_TYPE_INCREMENTAL = 2
MCO_BACKUP_FLAG_COMPRESSED = 1
MCO_BACKUP_FLAG_ENCRYPTED = 2
备份和还原方法定义如下:
createBackup()
def createBackup(filename = None, label = None, type = MCO_BACKUP_TYPE_AUTO,
compression_level = 0, cipher = None)
restoreBackup()
def restoreBackup(filename = None, label = None, cipher = None)
listBackup()
此外,还可以通过如下定义的 listBackup() 方法从备份文件中检索信息:
def listBackup(filename = None)
listBackup() 方法返回一个 Python 对象列表,这些对象具有 Magic、ProtocolVersion、Type、Flags、BackupNo、Timestamp、Size、Offset、Crc、TransNo、MemPageSize、DiskPageSize、NPagesTotal、DbName、Label 等字段,这些字段与 C API 中 struct mco_db_params_t 中的 struct mco_backup_info_t 结构相对应。
附加备份参数
还可以在“Database”中指定其他备份参数。用于“exdb.open_database()”方法的参数与 C API 中对应的参数相对应:
def open_database(...,
backup_map_size = 0, backup_min_pages = 0,
backup_max_passes = 10, backup_map_filename = None)
对于 SQL 连接,这些参数定义如下:
class SqlOpenParameters(object):
def __init__(..., backupMapSize = 0, backupMinPages = 0,
backupMaxPasses = 10, backupMapFile = None)