mco_disk_backup
为持久化数据库执行文件备份。
原型
MCO_RET mco_disk_database_vacuum(
/*IN*/ mco_db_h db,
/*IN*/ char const* db_backup_path,
/*IN*/ char const* log_backup_path);
参数
db | 由 mco_db_connect() 建立的数据库句柄 |
db_backup_path | 备份数据库文件的路径和文件名 |
log_backup_path | 备份日志文件的路径和文件名 |
描述
此功能允许应用程序复制持久数据库的数据库文件和日志文件。然后,只需在设备定义中指定这些备份文件,并以常规方式打开数据库,即可“恢复”该数据库。请注意,执行文件备份的应用程序必须使用 REDO_LOG 日志类型。
传递给 mco_db_open_dev() 的 file_backup_delay 参数可以进行调整,以指定写入备份块之间的延迟(以毫秒为单位),从而将备份对性能的影响降至最低。
返回
MCO_S_OK | 文件备份已完成。 |
MCO_E_DISK_INCOMPATIBLE_LOG_TYPE | 无效的数据库日志类型。备份仅支持重做日志(REDO_LOG)。 |
MCO_E_DISK_OPEN | 无法打开备份文件* |
MCO_E_DISK_READ | 无法读取数据库或日志文件* |
MCO_E_DISK_WRITE | 无法写入数据库备份文件或日志文件* |
MCO_E_DISK_CLOSE | 无法关闭日志或数据库备份文件* |
*这些错误表明文件系统故障或可能无效的文件名
示例
/* 应用程序代码片段 */
const char * dbname = "SimpleDb";
int main(int argc, char* argv[])
{
mco_db_h db;
MCO_RET rc;
mco_device_t dev[4];
mco_db_params_t db_params;
char * db_file = "SimpleDb_backup.dbs";
char * log_file = "SimpleDb_backup.log";
...
rc = mco_db_open_dev( dbname, simple_get_dictionary(), dev, 4, &db_params );
if ( MCO_S_OK != rc )
{
rc = mco_db_connect( dbname, &db );
...
rc = mco_disk_backup( db, db_file, log_file);
...
}
}