fix backup clean missing files
This commit is contained in:
@ -683,6 +683,25 @@ int ObBackupCleanTaskMgr::delete_tenant_diagnose_info_()
|
||||
return ret;
|
||||
}
|
||||
|
||||
// file:///obbackup/backup_set_1_full/infos/major_compaction_mview_dep_tablet_list.obbak
|
||||
int ObBackupCleanTaskMgr::delete_major_compaction_mview_dep_tablet_list_()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObBackupPath path;
|
||||
ObBackupSetDesc desc;
|
||||
ObBackupDest backup_set_dest;
|
||||
desc.backup_set_id_ = backup_set_info_.backup_set_id_;
|
||||
desc.backup_type_ = backup_set_info_.backup_type_;
|
||||
if (OB_FAIL(ObBackupPathUtil::construct_backup_set_dest(backup_dest_, desc, backup_set_dest))) {
|
||||
LOG_WARN("fail to construct backup set dest", K(ret));
|
||||
} else if (OB_FAIL(ObBackupPathUtil::get_major_compaction_mview_dep_tablet_list_path(backup_set_dest, path))) {
|
||||
LOG_WARN("failed to get major compaction mview dep tablet list path", K(ret));
|
||||
} else if (OB_FAIL(share::ObBackupCleanUtil::delete_backup_file(path, backup_dest_.get_storage_info()))) {
|
||||
LOG_WARN("failed to delete backup file", K(ret), K(task_attr_), K(path));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
// file:///obbackup/backup_set_1_full/infos/meta_info/
|
||||
int ObBackupCleanTaskMgr::delete_meta_info_dir_()
|
||||
{
|
||||
@ -737,6 +756,41 @@ int ObBackupCleanTaskMgr::delete_minor_data_info_dir_()
|
||||
return ret;
|
||||
}
|
||||
|
||||
// file:///obbackup/backup_set_1_full/infos/user_data_info_turn_X/
|
||||
int ObBackupCleanTaskMgr::delete_user_data_info_dir_()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObBackupPath path;
|
||||
ObBackupSetDesc desc;
|
||||
desc.backup_set_id_ = backup_set_info_.backup_set_id_;
|
||||
desc.backup_type_ = backup_set_info_.backup_type_;
|
||||
share::ObBackupDataType backup_data_type;
|
||||
backup_data_type.set_user_data_backup();
|
||||
if (OB_FAIL(ObBackupPathUtil::get_ls_info_data_info_dir_path(backup_dest_, desc,
|
||||
backup_data_type, backup_set_info_.minor_turn_id_, path))) {
|
||||
LOG_WARN("failed to get ls info data info path", K(ret));
|
||||
} else if (OB_FAIL(share::ObBackupCleanUtil::delete_backup_dir_files(path, backup_dest_.get_storage_info()))) {
|
||||
LOG_WARN("failed to delete backup file", K(ret), K(task_attr_), K(path));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
// file:///obbackup/backup_set_1_full/infos/table_list/
|
||||
int ObBackupCleanTaskMgr::delete_table_list_dir_()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObBackupPath path;
|
||||
ObBackupSetDesc desc;
|
||||
desc.backup_set_id_ = backup_set_info_.backup_set_id_;
|
||||
desc.backup_type_ = backup_set_info_.backup_type_;
|
||||
if (OB_FAIL(ObBackupPathUtil::get_table_list_dir_path(backup_dest_, desc, path))) {
|
||||
LOG_WARN("failed to get table list dir path", K(ret));
|
||||
} else if (OB_FAIL(share::ObBackupCleanUtil::delete_backup_dir_files(path, backup_dest_.get_storage_info()))) {
|
||||
LOG_WARN("failed to delete backup file", K(ret), K(task_attr_), K(path));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
// file:///obbackup/backup_set_1_full/single_backup_set_info.obbak
|
||||
int ObBackupCleanTaskMgr::delete_single_backup_set_info_()
|
||||
{
|
||||
@ -882,6 +936,10 @@ int ObBackupCleanTaskMgr::delete_backup_set_meta_info_files_()
|
||||
LOG_WARN("failed to delete major data info file", K(ret));
|
||||
} else if (OB_FAIL(delete_minor_data_info_dir_())) {
|
||||
LOG_WARN("failed to delete minor data info file", K(ret));
|
||||
} else if (OB_FAIL(delete_user_data_info_dir_())) {
|
||||
LOG_WARN("failed to delete minor data info file", K(ret));
|
||||
} else if (OB_FAIL(delete_table_list_dir_())) {
|
||||
LOG_WARN("failed to delete table list dir", K(ret));
|
||||
} else if (OB_FAIL(ObBackupPathUtil::get_ls_info_dir_path(backup_dest_, desc, infos_path))) {
|
||||
LOG_WARN("failed to get backup log stream info path", K(ret));
|
||||
} else if (OB_FAIL(delete_data_info_turn_files_(infos_path))) {
|
||||
@ -890,6 +948,8 @@ int ObBackupCleanTaskMgr::delete_backup_set_meta_info_files_()
|
||||
LOG_WARN("failed to delete tenant locality info", K(ret));
|
||||
} else if (OB_FAIL(delete_tenant_diagnose_info_())) {
|
||||
LOG_WARN("failed to delete tenant diagnose info", K(ret));
|
||||
} else if (OB_FAIL(delete_major_compaction_mview_dep_tablet_list_())) {
|
||||
LOG_WARN("failed to delete major compaction mview dep tablet list", K(ret));
|
||||
} else if (OB_FAIL(delete_backup_dir_(infos_path))) {
|
||||
LOG_WARN("failed to delete backup infos dir", K(ret));
|
||||
} else if (OB_FAIL(delete_single_backup_set_info_())) {
|
||||
|
@ -71,13 +71,16 @@ private:
|
||||
int try_delete_extern_end_file_();
|
||||
int delete_tenant_locality_info_();
|
||||
int delete_tenant_diagnose_info_();
|
||||
int delete_major_compaction_mview_dep_tablet_list_();
|
||||
int delete_tenant_backup_set_infos_();
|
||||
int delete_single_backup_set_info_();
|
||||
int delete_backup_set_start_file_();
|
||||
int delete_backup_piece_start_file_();
|
||||
int delete_backup_set_inner_placeholder_();
|
||||
int delete_user_data_info_dir_();
|
||||
int delete_minor_data_info_dir_();
|
||||
int delete_major_data_info_dir_();
|
||||
int delete_table_list_dir_();
|
||||
int get_set_ls_ids_(common::ObIArray<share::ObLSID> &ls_ids);
|
||||
int get_piece_ls_ids_(common::ObIArray<share::ObLSID> &ls_ids);
|
||||
int get_ls_ids_(common::ObIArray<share::ObLSID> &ls_ids);
|
||||
|
@ -720,6 +720,74 @@ int ObLSBackupCleanTask::delete_minor_data_(const ObBackupPath &path)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObLSBackupCleanTask::delete_fused_meta_data_(const ObBackupPath &path)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObBackupIoAdapter util;
|
||||
ObArray<ObIODirentEntry> d_entrys;
|
||||
const char fused_meta_prefix[OB_BACKUP_DIR_PREFIX_LENGTH] = "fused_meta_info_turn_";
|
||||
ObDirPrefixEntryNameFilter prefix_op(d_entrys);
|
||||
if (OB_FAIL(prefix_op.init(fused_meta_prefix, strlen(fused_meta_prefix)))) {
|
||||
LOG_WARN("failed to init dir prefix", K(ret), K(fused_meta_prefix));
|
||||
} else if (OB_FAIL(util.list_directories(path.get_obstr(), backup_dest_.get_storage_info(), prefix_op))) {
|
||||
LOG_WARN("failed to list files", K(ret));
|
||||
} else {
|
||||
ObIODirentEntry tmp_entry;
|
||||
ObBackupPath fused_meta_path;
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < d_entrys.count(); ++i) {
|
||||
ObIODirentEntry tmp_entry = d_entrys.at(i);
|
||||
fused_meta_path.reset();
|
||||
if (OB_ISNULL(tmp_entry.name_)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("file name is null", K(ret));
|
||||
} else if (OB_FAIL(fused_meta_path.init(path.get_ptr()))) {
|
||||
LOG_WARN("failed to init fused meta path", K(ret), K(path));
|
||||
} else if (OB_FAIL(fused_meta_path.join(tmp_entry.name_, ObBackupFileSuffix::NONE))) {
|
||||
LOG_WARN("failed to join fused meta path", K(ret));
|
||||
} else if (OB_FAIL(ObBackupCleanUtil::delete_backup_dir_files(fused_meta_path, backup_dest_.get_storage_info()))) {
|
||||
LOG_WARN("failed to delete backup log stream dir files", K(ret), K(path));
|
||||
} else {
|
||||
LOG_INFO("[BACKUP_CLEAN]success delete fused meta turn", K(fused_meta_path));
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObLSBackupCleanTask::delete_user_data_(const ObBackupPath &path)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObBackupIoAdapter util;
|
||||
ObArray<ObIODirentEntry> d_entrys;
|
||||
const char user_data_prefix[OB_BACKUP_DIR_PREFIX_LENGTH] = "user_data_turn_";
|
||||
ObDirPrefixEntryNameFilter prefix_op(d_entrys);
|
||||
if (OB_FAIL(prefix_op.init(user_data_prefix, strlen(user_data_prefix)))) {
|
||||
LOG_WARN("failed to init dir prefix", K(ret), K(user_data_prefix));
|
||||
} else if (OB_FAIL(util.list_directories(path.get_obstr(), backup_dest_.get_storage_info(), prefix_op))) {
|
||||
LOG_WARN("failed to list files", K(ret));
|
||||
} else {
|
||||
ObIODirentEntry tmp_entry;
|
||||
ObBackupPath user_data_path;
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < d_entrys.count(); ++i) {
|
||||
ObIODirentEntry tmp_entry = d_entrys.at(i);
|
||||
user_data_path.reset();
|
||||
if (OB_ISNULL(tmp_entry.name_)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("file name is null", K(ret));
|
||||
} else if (OB_FAIL(user_data_path.init(path.get_ptr()))) {
|
||||
LOG_WARN("failed to init user data path", K(ret), K(path));
|
||||
} else if (OB_FAIL(user_data_path.join(tmp_entry.name_, ObBackupFileSuffix::NONE))) {
|
||||
LOG_WARN("failed to join user data path", K(ret));
|
||||
} else if (OB_FAIL(ObBackupCleanUtil::delete_backup_dir_files(user_data_path, backup_dest_.get_storage_info()))) {
|
||||
LOG_WARN("failed to delete backup log stream dir files", K(ret), K(path));
|
||||
} else {
|
||||
LOG_INFO("[BACKUP_CLEAN]success delete user data turn", K(user_data_path));
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObLSBackupCleanTask::delete_meta_info_(const ObBackupPath &path)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
@ -785,6 +853,10 @@ int ObLSBackupCleanTask::delete_backup_set_ls_files_(const ObBackupPath &path)
|
||||
LOG_WARN("failed to delete major data", K(ret));
|
||||
} else if (OB_FAIL(delete_minor_data_(path))) {
|
||||
LOG_WARN("failed to delete minor data", K(ret));
|
||||
} else if (OB_FAIL(delete_fused_meta_data_(path))) {
|
||||
LOG_WARN("failed to delete fused meta data", K(ret));
|
||||
} else if (OB_FAIL(delete_user_data_(path))) {
|
||||
LOG_WARN("failed to delete user data", K(ret));
|
||||
} else if (OB_FAIL(delete_meta_info_(path))) {
|
||||
LOG_WARN("failed to delete meta info", K(ret));
|
||||
} else if (OB_FAIL(delete_log_stream_dir_(path))) {
|
||||
|
@ -136,6 +136,8 @@ protected:
|
||||
int delete_sys_data_(const share::ObBackupPath &path);
|
||||
int delete_major_data_(const share::ObBackupPath &path);
|
||||
int delete_minor_data_(const share::ObBackupPath &path);
|
||||
int delete_fused_meta_data_(const share::ObBackupPath &path);
|
||||
int delete_user_data_(const share::ObBackupPath &path);
|
||||
int delete_meta_info_(const share::ObBackupPath &path);
|
||||
int delete_log_stream_dir_(const share::ObBackupPath &ls_path);
|
||||
protected:
|
||||
|
Reference in New Issue
Block a user