fix backup clean missing files

This commit is contained in:
LoLolobster
2024-10-15 19:43:57 +00:00
committed by ob-robot
parent c34c8af142
commit 692b71ab4e
4 changed files with 137 additions and 0 deletions

View File

@ -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_())) {

View File

@ -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);

View File

@ -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))) {

View File

@ -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: