fix backup delete piece file incomplete

This commit is contained in:
WenJinyu
2023-03-02 14:51:59 +00:00
committed by ob-robot
parent 14228a3f70
commit 9e0e3b8aa9
13 changed files with 185 additions and 91 deletions

View File

@ -227,7 +227,7 @@ int ObBackupCleanTaskMgr::mark_backup_files_deleting_()
} }
return ret; return ret;
} }
// file:///backup/backup_sets/backup_set_xx_xxx_xxxx_end_xxx; // file:///backup/backup_sets/backup_set_xx_xxx_xxxx_end_xxx.obbak
int ObBackupCleanTaskMgr::try_delete_extern_set_end_file_() int ObBackupCleanTaskMgr::try_delete_extern_set_end_file_()
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -265,7 +265,7 @@ int ObBackupCleanTaskMgr::try_delete_extern_piece_end_file_()
LOG_WARN("backup piece info is invalid", K(ret), K_(backup_piece_info)); LOG_WARN("backup piece info is invalid", K(ret), K_(backup_piece_info));
} else if (OB_FAIL(ObArchivePathUtil::get_piece_end_file_path( } else if (OB_FAIL(ObArchivePathUtil::get_piece_end_file_path(
backup_dest_, backup_piece_info_.key_.dest_id_, backup_piece_info_.key_.round_id_, backup_dest_, backup_piece_info_.key_.dest_id_, backup_piece_info_.key_.round_id_,
backup_piece_info_.key_.piece_id_, backup_piece_info_.end_scn_, end_path))) { backup_piece_info_.key_.piece_id_, backup_piece_info_.checkpoint_scn_, end_path))) {
LOG_WARN("failed to get backup set end placeholder path", K(ret), K_(backup_piece_info)); LOG_WARN("failed to get backup set end placeholder path", K(ret), K_(backup_piece_info));
} else if (OB_FAIL(ObBackupCleanUtil::delete_backup_file(end_path, backup_dest_.get_storage_info()))) { } else if (OB_FAIL(ObBackupCleanUtil::delete_backup_file(end_path, backup_dest_.get_storage_info()))) {
LOG_WARN("failed to delete backup file", K(ret), K_(task_attr), K(end_path)); LOG_WARN("failed to delete backup file", K(ret), K_(task_attr), K(end_path));
@ -653,7 +653,7 @@ int ObBackupCleanTaskMgr::generate_ls_task_(const share::ObLSID &ls_id, share::O
} }
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full/infos/locality_info // file:///obbackup/backup_set_1_full/infos/locality_info.obbak
int ObBackupCleanTaskMgr::delete_tenant_locality_info_() int ObBackupCleanTaskMgr::delete_tenant_locality_info_()
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -669,7 +669,7 @@ int ObBackupCleanTaskMgr::delete_tenant_locality_info_()
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full/infos/diagnose_info // file:///obbackup/backup_set_1_full/infos/diagnose_info.obbak
int ObBackupCleanTaskMgr::delete_tenant_diagnose_info_() int ObBackupCleanTaskMgr::delete_tenant_diagnose_info_()
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -701,7 +701,7 @@ int ObBackupCleanTaskMgr::delete_meta_info_dir_()
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/single_backup_set_info // file:///obbackup/backup_set_1_full/single_backup_set_info.obbak
int ObBackupCleanTaskMgr::delete_single_backup_set_info_() int ObBackupCleanTaskMgr::delete_single_backup_set_info_()
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -889,7 +889,7 @@ int ObBackupCleanTaskMgr::delete_backup_piece_start_file_()
return ret; return ret;
} }
// oss://archive/[dest_id]_[round_id]_[piece_id]/single_piece_info // oss://archive/[dest_id]_[round_id]_[piece_id]/single_piece_info.obarc
int ObBackupCleanTaskMgr::delete_single_piece_info_() int ObBackupCleanTaskMgr::delete_single_piece_info_()
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -904,7 +904,21 @@ int ObBackupCleanTaskMgr::delete_single_piece_info_()
return ret; return ret;
} }
// oss://archive/[dest_id]_[round_id]_[piece_id]/piece_file_info // oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/tenant_archive_piece_infos.obarc
int ObBackupCleanTaskMgr::delete_tenant_archive_piece_infos()
{
int ret = OB_SUCCESS;
ObBackupPath path;
if (OB_FAIL(ObArchivePathUtil::get_tenant_archive_piece_infos_file_path(backup_dest_, backup_piece_info_.key_.dest_id_,
backup_piece_info_.key_.round_id_, backup_piece_info_.key_.piece_id_, path))) {
LOG_WARN("failed to get tenant archive piece infos 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;
}
// oss://archive/[dest_id]_[round_id]_[piece_id]/file_info.obarc
int ObBackupCleanTaskMgr::delete_piece_info_file_() int ObBackupCleanTaskMgr::delete_piece_info_file_()
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -955,15 +969,17 @@ int ObBackupCleanTaskMgr::delete_backup_piece_meta_info_files_()
ObBackupPath path; ObBackupPath path;
if (!backup_piece_info_.is_valid()) { if (!backup_piece_info_.is_valid()) {
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
LOG_WARN("backup set info is valid", K(ret)); LOG_WARN("backup piece info is valid", K(ret));
} else if (OB_FAIL(delete_single_piece_info_())) { } else if (OB_FAIL(delete_single_piece_info_())) {
LOG_WARN("failed to set delete single piece info file", K(ret), K(backup_piece_info_)); LOG_WARN("failed to delete single piece info file", K(ret), K(backup_piece_info_));
} else if (OB_FAIL(delete_piece_info_file_())) { } else if (OB_FAIL(delete_piece_info_file_())) {
LOG_WARN("failed to set delete info file", K(ret), K(backup_piece_info_)); LOG_WARN("failed to delete info file", K(ret), K(backup_piece_info_));
} else if (OB_FAIL(delete_tenant_archive_piece_infos())) {
LOG_WARN("failed to delete info file", K(ret), K(backup_piece_info_));
} else if (OB_FAIL(delete_piece_inner_placeholder_file_())) { } else if (OB_FAIL(delete_piece_inner_placeholder_file_())) {
LOG_WARN("failed to set delete piece inner placeholder file", K(ret), K(backup_piece_info_)); LOG_WARN("failed to delete piece inner placeholder file", K(ret), K(backup_piece_info_));
} else if (OB_FAIL(delete_piece_checkpoint_file_())) { } else if (OB_FAIL(delete_piece_checkpoint_file_())) {
LOG_WARN("failed to set delete checkpoint file", K(ret), K(backup_piece_info_)); LOG_WARN("failed to delete checkpoint file", K(ret), K(backup_piece_info_));
} else if (OB_FAIL(ObArchivePathUtil::get_piece_dir_path( } else if (OB_FAIL(ObArchivePathUtil::get_piece_dir_path(
backup_dest_, backup_piece_info_.key_.dest_id_, backup_piece_info_.key_.round_id_, backup_dest_, backup_piece_info_.key_.dest_id_, backup_piece_info_.key_.round_id_,
backup_piece_info_.key_.piece_id_, path))) { backup_piece_info_.key_.piece_id_, path))) {

View File

@ -95,6 +95,7 @@ private:
int delete_backup_set_dir_(); int delete_backup_set_dir_();
int delete_meta_info_dir_(); int delete_meta_info_dir_();
int delete_single_piece_info_(); int delete_single_piece_info_();
int delete_tenant_archive_piece_infos();
int delete_piece_info_file_(); int delete_piece_info_file_();
int delete_piece_inner_placeholder_file_(); int delete_piece_inner_placeholder_file_();
int delete_piece_checkpoint_file_(); int delete_piece_checkpoint_file_();

View File

@ -75,7 +75,7 @@ int ObArchivePathUtil::get_rounds_dir_path(const ObBackupDest &dest, ObBackupPat
return ret; return ret;
} }
// oss://archive/rounds/round_d[dest_id]r[round_id]_start // oss://archive/rounds/round_d[dest_id]r[round_id]_start.obarc
int ObArchivePathUtil::get_round_start_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_round_start_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, ObBackupPath &path) const int64_t round_id, ObBackupPath &path)
{ {
@ -91,7 +91,7 @@ int ObArchivePathUtil::get_round_start_file_path(const ObBackupDest &dest, const
return ret; return ret;
} }
// oss://archive/rounds/round_d[dest_id]r[round_id]_end // oss://archive/rounds/round_d[dest_id]r[round_id]_end.obarc
int ObArchivePathUtil::get_round_end_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_round_end_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, ObBackupPath &path) const int64_t round_id, ObBackupPath &path)
{ {
@ -120,7 +120,7 @@ int ObArchivePathUtil::get_pieces_dir_path(const ObBackupDest &dest, ObBackupPat
return ret; return ret;
} }
// // oss://archive/pieces/piece_d[dest_id]r[round_id]p[piece_id]_start_20220601T120000 // // oss://archive/pieces/piece_d[dest_id]r[round_id]p[piece_id]_start_20220601T120000.obarc
int ObArchivePathUtil::get_piece_start_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_piece_start_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, const SCN &start_scn, const int64_t round_id, const int64_t piece_id, const SCN &start_scn,
ObBackupPath &path) ObBackupPath &path)
@ -141,7 +141,7 @@ int ObArchivePathUtil::get_piece_start_file_path(const ObBackupDest &dest, const
return ret; return ret;
} }
// oss://archive/pieces/piece_d[dest_id]r[round_id]p[piece_id]_end_20220601T120000 // oss://archive/pieces/piece_d[dest_id]r[round_id]p[piece_id]_end_20220601T120000.obarc
int ObArchivePathUtil::get_piece_end_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_piece_end_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, const SCN &end_scn, const int64_t round_id, const int64_t piece_id, const SCN &end_scn,
ObBackupPath &path) ObBackupPath &path)
@ -179,7 +179,7 @@ int ObArchivePathUtil::get_piece_dir_path(const ObBackupDest &dest, const int64_
return ret; return ret;
} }
// oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/single_piece_info // oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/single_piece_info.obarc
int ObArchivePathUtil::get_single_piece_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_single_piece_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, ObBackupPath &path) const int64_t round_id, const int64_t piece_id, ObBackupPath &path)
{ {
@ -207,7 +207,7 @@ int ObArchivePathUtil::get_piece_checkpoint_dir_path(const ObBackupDest &dest, c
return ret; return ret;
} }
// oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/checkpoint/checkpoint_info.[file_id] // oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/checkpoint/checkpoint_info.[file_id].obarc
int ObArchivePathUtil::get_piece_checkpoint_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_piece_checkpoint_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, const int64_t file_id, ObBackupPath &path) const int64_t round_id, const int64_t piece_id, const int64_t file_id, ObBackupPath &path)
{ {
@ -223,7 +223,7 @@ int ObArchivePathUtil::get_piece_checkpoint_file_path(const ObBackupDest &dest,
return ret; return ret;
} }
// oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/piece_d[dest_id]r[round_id]p[piece_id]_20220601T120000_20220602T120000 // oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/piece_d[dest_id]r[round_id]p[piece_id]_20220601T120000_20220602T120000.obarc
int ObArchivePathUtil::get_piece_inner_placeholder_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_piece_inner_placeholder_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, const SCN &start_scn, const SCN &end_scn, ObBackupPath &path) const int64_t round_id, const int64_t piece_id, const SCN &start_scn, const SCN &end_scn, ObBackupPath &path)
{ {
@ -277,33 +277,33 @@ int ObArchivePathUtil::get_piece_ls_log_dir_path(const ObBackupDest &dest, const
return ret; return ret;
} }
// oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/logstream_[ls_id]/ls_file_info // oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/logstream_[ls_id]/file_info.obarc
int ObArchivePathUtil::get_single_ls_info_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_ls_file_info_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, ObBackupPath &path) const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, ObBackupPath &path)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
if (OB_FAIL(get_piece_ls_dir_path_(dest, dest_id, round_id, piece_id, ls_id, path))) { if (OB_FAIL(get_piece_ls_dir_path_(dest, dest_id, round_id, piece_id, ls_id, path))) {
LOG_WARN("failed to get piece dir path", K(ret), K(dest), K(round_id), K(dest_id), K(piece_id), K(ls_id)); LOG_WARN("failed to get piece dir path", K(ret), K(dest), K(round_id), K(dest_id), K(piece_id), K(ls_id));
} else if (OB_FAIL(path.join("ls_file_info", ObBackupFileSuffix::ARCHIVE))) { } else if (OB_FAIL(path.join("file_info", ObBackupFileSuffix::ARCHIVE))) {
LOG_WARN("failed to join ls file info ", K(ret), K(path)); LOG_WARN("failed to join ls file info ", K(ret), K(path));
} }
return ret; return ret;
} }
// oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/piece_file_info // oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/file_info.obarc
int ObArchivePathUtil::get_piece_info_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_piece_info_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, ObBackupPath &path) const int64_t round_id, const int64_t piece_id, ObBackupPath &path)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
if (OB_FAIL(get_piece_dir_path(dest, dest_id, round_id, piece_id, path))) { if (OB_FAIL(get_piece_dir_path(dest, dest_id, round_id, piece_id, path))) {
LOG_WARN("failed to get piece dir path", K(ret), K(dest), K(round_id), K(dest_id), K(piece_id)); LOG_WARN("failed to get piece dir path", K(ret), K(dest), K(round_id), K(dest_id), K(piece_id));
} else if (OB_FAIL(path.join("piece_file_info", ObBackupFileSuffix::ARCHIVE))) { } else if (OB_FAIL(path.join("file_info", ObBackupFileSuffix::ARCHIVE))) {
LOG_WARN("failed to join piece info file", K(ret), K(path)); LOG_WARN("failed to join piece info file", K(ret), K(path));
} }
return ret; return ret;
} }
// oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/tenant_archive_piece_infos // oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/tenant_archive_piece_infos.obarc
int ObArchivePathUtil::get_tenant_archive_piece_infos_file_path(const ObBackupDest &dest, const int64_t dest_id, int ObArchivePathUtil::get_tenant_archive_piece_infos_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, ObBackupPath &path) const int64_t round_id, const int64_t piece_id, ObBackupPath &path)
{ {
@ -336,10 +336,9 @@ int ObArchivePathUtil::get_ls_meta_record_prefix(const ObBackupDest &dest, const
const ObArchiveLSMetaType &meta_type, ObBackupPath &prefix) const ObArchiveLSMetaType &meta_type, ObBackupPath &prefix)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
ObFixedLengthString<ObArchiveLSMetaType::MAX_TYPE_LEN> s(meta_type.get_type_str());
if (OB_FAIL(get_piece_ls_dir_path_(dest, dest_id, round_id, piece_id, ls_id, prefix))) { if (OB_FAIL(get_piece_ls_dir_path_(dest, dest_id, round_id, piece_id, ls_id, prefix))) {
LOG_WARN("failed to get piece dir path", K(ret), K(dest), K(round_id), K(dest_id), K(piece_id), K(ls_id)); LOG_WARN("failed to get piece dir path", K(ret), K(dest), K(round_id), K(dest_id), K(piece_id), K(ls_id));
} else if (OB_FAIL(prefix.join(::obsys::ObStringUtil::str_to_lower(s.ptr()), ObBackupFileSuffix::NONE))) { } else if (OB_FAIL(prefix.join(meta_type.get_type_str(), ObBackupFileSuffix::NONE))) {
LOG_WARN("failed to join meta_type", K(ret), K(prefix)); LOG_WARN("failed to join meta_type", K(ret), K(prefix));
} }
return ret; return ret;

View File

@ -84,11 +84,11 @@ public:
static int get_piece_ls_log_dir_path(const ObBackupDest &dest, const int64_t dest_id, static int get_piece_ls_log_dir_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, ObBackupPath &path); const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, ObBackupPath &path);
// oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/logstream_[ls_id]/ls_file_info.obarc // oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/logstream_[ls_id]/file_info.obarc
static int get_single_ls_info_file_path(const ObBackupDest &dest, const int64_t dest_id, static int get_ls_file_info_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, ObBackupPath &path); const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, ObBackupPath &path);
// oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/piece_file_info.obarc // oss://archive/piece_d[dest_id]r[round_id]p[piece_id]/file_info.obarc
static int get_piece_info_file_path(const ObBackupDest &dest, const int64_t dest_id, static int get_piece_info_file_path(const ObBackupDest &dest, const int64_t dest_id,
const int64_t round_id, const int64_t piece_id, ObBackupPath &path); const int64_t round_id, const int64_t piece_id, ObBackupPath &path);

View File

@ -920,7 +920,7 @@ int ObArchiveStore::write_piece_inner_placeholder(const int64_t dest_id, const i
return ret; return ret;
} }
// oss://archive/d[dest_id]r[round_id]p[piece_id]/[ls_id]/ls_file_info.obarc // oss://archive/d[dest_id]r[round_id]p[piece_id]/[ls_id]/file_info.obarc
int ObArchiveStore::is_single_ls_info_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, int ObArchiveStore::is_single_ls_info_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id,
const ObLSID &ls_id, bool &is_exist) const const ObLSID &ls_id, bool &is_exist) const
{ {
@ -932,7 +932,7 @@ int ObArchiveStore::is_single_ls_info_file_exist(const int64_t dest_id, const in
if (!is_init()) { if (!is_init()) {
ret = OB_NOT_INIT; ret = OB_NOT_INIT;
LOG_WARN("ObArchiveStore not init", K(ret)); LOG_WARN("ObArchiveStore not init", K(ret));
} else if (OB_FAIL(ObArchivePathUtil::get_single_ls_info_file_path(dest, dest_id, round_id, piece_id, ls_id,full_path))) { } else if (OB_FAIL(ObArchivePathUtil::get_ls_file_info_path(dest, dest_id, round_id, piece_id, ls_id,full_path))) {
LOG_WARN("failed to get single ls info file path", K(ret), K(dest), K(dest_id), K(round_id), K(piece_id), K(ls_id)); LOG_WARN("failed to get single ls info file path", K(ret), K(dest), K(dest_id), K(round_id), K(piece_id), K(ls_id));
} else if (OB_FAIL(util.is_exist(full_path.get_ptr(), storage_info, is_exist))) { } else if (OB_FAIL(util.is_exist(full_path.get_ptr(), storage_info, is_exist))) {
LOG_WARN("failed to check single ls info file exist.", K(ret), K(dest), K(dest_id), K(round_id), K(piece_id), K(ls_id), K(full_path), K(storage_info)); LOG_WARN("failed to check single ls info file exist.", K(ret), K(dest), K(dest_id), K(round_id), K(piece_id), K(ls_id), K(full_path), K(storage_info));
@ -949,7 +949,7 @@ int ObArchiveStore::read_single_ls_info(const int64_t dest_id, const int64_t rou
if (!is_init()) { if (!is_init()) {
ret = OB_NOT_INIT; ret = OB_NOT_INIT;
LOG_WARN("ObArchiveStore not init", K(ret)); LOG_WARN("ObArchiveStore not init", K(ret));
} else if (OB_FAIL(ObArchivePathUtil::get_single_ls_info_file_path(dest, dest_id, round_id, piece_id, ls_id, full_path))) { } else if (OB_FAIL(ObArchivePathUtil::get_ls_file_info_path(dest, dest_id, round_id, piece_id, ls_id, full_path))) {
LOG_WARN("failed to get single ls info file path", K(ret), K(dest), K(dest_id), K(round_id), K(piece_id), K(ls_id)); LOG_WARN("failed to get single ls info file path", K(ret), K(dest), K(dest_id), K(round_id), K(piece_id), K(ls_id));
} else if (OB_FAIL(read_single_file(full_path.get_ptr(), desc))) { } else if (OB_FAIL(read_single_file(full_path.get_ptr(), desc))) {
LOG_WARN("failed to read single file", K(ret), K(full_path)); LOG_WARN("failed to read single file", K(ret), K(full_path));
@ -965,7 +965,7 @@ int ObArchiveStore::write_single_ls_info(const int64_t dest_id, const int64_t ro
if (!is_init()) { if (!is_init()) {
ret = OB_NOT_INIT; ret = OB_NOT_INIT;
LOG_WARN("ObArchiveStore not init", K(ret)); LOG_WARN("ObArchiveStore not init", K(ret));
} else if (OB_FAIL(ObArchivePathUtil::get_single_ls_info_file_path(dest, dest_id, round_id, piece_id, ls_id, full_path))) { } else if (OB_FAIL(ObArchivePathUtil::get_ls_file_info_path(dest, dest_id, round_id, piece_id, ls_id, full_path))) {
LOG_WARN("failed to get single ls info file path", K(ret), K(dest), K(dest_id), K(round_id), K(piece_id), K(ls_id)); LOG_WARN("failed to get single ls info file path", K(ret), K(dest), K(dest_id), K(round_id), K(piece_id), K(ls_id));
} else if (OB_FAIL(write_single_file(full_path.get_ptr(), desc))) { } else if (OB_FAIL(write_single_file(full_path.get_ptr(), desc))) {
LOG_WARN("failed to write single file", K(ret), K(full_path)); LOG_WARN("failed to write single file", K(ret), K(full_path));
@ -973,7 +973,7 @@ int ObArchiveStore::write_single_ls_info(const int64_t dest_id, const int64_t ro
return ret; return ret;
} }
// oss://archive/d[dest_id]r[round_id]p[piece_id]/piece_file_info.obarc // oss://archive/d[dest_id]r[round_id]p[piece_id]/file_info.obarc
int ObArchiveStore::is_piece_info_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, bool &is_exist) const int ObArchiveStore::is_piece_info_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, bool &is_exist) const
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;

View File

@ -325,12 +325,12 @@ class ObArchiveStore : public ObBackupStore
public: public:
ObArchiveStore(); ObArchiveStore();
// oss://archive/rounds/round_d[dest_id]r[round_id]_start // oss://archive/rounds/round_d[dest_id]r[round_id]_start.obarc
int is_round_start_file_exist(const int64_t dest_id, const int64_t round_id, bool &is_exist) const; int is_round_start_file_exist(const int64_t dest_id, const int64_t round_id, bool &is_exist) const;
int read_round_start(const int64_t dest_id, const int64_t round_id, ObRoundStartDesc &desc) const; int read_round_start(const int64_t dest_id, const int64_t round_id, ObRoundStartDesc &desc) const;
int write_round_start(const int64_t dest_id, const int64_t round_id, const ObRoundStartDesc &desc) const; int write_round_start(const int64_t dest_id, const int64_t round_id, const ObRoundStartDesc &desc) const;
// oss://archive/rounds/round_d[dest_id]r[round_id]_end // oss://archive/rounds/round_d[dest_id]r[round_id]_end.obarc
int is_round_end_file_exist(const int64_t dest_id, const int64_t round_id, bool &is_exist) const; int is_round_end_file_exist(const int64_t dest_id, const int64_t round_id, bool &is_exist) const;
int read_round_end(const int64_t dest_id, const int64_t round_id, ObRoundEndDesc &desc) const; int read_round_end(const int64_t dest_id, const int64_t round_id, ObRoundEndDesc &desc) const;
int write_round_end(const int64_t dest_id, const int64_t round_id, const ObRoundEndDesc &desc) const; int write_round_end(const int64_t dest_id, const int64_t round_id, const ObRoundEndDesc &desc) const;
@ -343,7 +343,7 @@ public:
int write_piece_start(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, int write_piece_start(const int64_t dest_id, const int64_t round_id, const int64_t piece_id,
const SCN &create_scn, const ObPieceStartDesc &desc) const; const SCN &create_scn, const ObPieceStartDesc &desc) const;
// oss://archive/pieces/piece_d[dest_id]r[round_id]p[piece_id]_end_20220601T120000 // oss://archive/pieces/piece_d[dest_id]r[round_id]p[piece_id]_end_20220601T120000.obarc
int is_piece_end_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, int is_piece_end_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id,
const SCN &create_scn, bool &is_exist) const; const SCN &create_scn, bool &is_exist) const;
int read_piece_end(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, int read_piece_end(const int64_t dest_id, const int64_t round_id, const int64_t piece_id,
@ -351,34 +351,34 @@ public:
int write_piece_end(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, int write_piece_end(const int64_t dest_id, const int64_t round_id, const int64_t piece_id,
const SCN &create_scn, const ObPieceEndDesc &desc) const; const SCN &create_scn, const ObPieceEndDesc &desc) const;
// oss://archive/d[dest_id]r[round_id]p[piece_id]/single_piece_info // oss://archive/d[dest_id]r[round_id]p[piece_id]/single_piece_info.obarc
int is_single_piece_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, bool &is_exist) const; int is_single_piece_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, bool &is_exist) const;
int read_single_piece(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, ObSinglePieceDesc &desc) const; int read_single_piece(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, ObSinglePieceDesc &desc) const;
int write_single_piece(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObSinglePieceDesc &desc) const; int write_single_piece(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObSinglePieceDesc &desc) const;
// oss://archive/d[dest_id]r[round_id]p[piece_id]/checkpoint/checkpoint_info.[file_id] // oss://archive/d[dest_id]r[round_id]p[piece_id]/checkpoint/checkpoint_info.[file_id].obarc
int is_piece_checkpoint_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const int64_t file_id, bool &is_exist) const; int is_piece_checkpoint_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const int64_t file_id, bool &is_exist) const;
int read_piece_checkpoint(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const int64_t file_id, ObPieceCheckpointDesc &desc) const; int read_piece_checkpoint(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const int64_t file_id, ObPieceCheckpointDesc &desc) const;
int write_piece_checkpoint(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const int64_t file_id, const ObPieceCheckpointDesc &desc) const; int write_piece_checkpoint(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const int64_t file_id, const ObPieceCheckpointDesc &desc) const;
// oss://archive/d[dest_id]r[round_id]p[piece_id]/piece_d[dest_id]r[round_id]p[piece_id]_20220601T120000_20220602T120000 // oss://archive/d[dest_id]r[round_id]p[piece_id]/piece_d[dest_id]r[round_id]p[piece_id]_20220601T120000_20220602T120000.obarc
int is_piece_inner_placeholder_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const SCN &start_scn, int is_piece_inner_placeholder_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const SCN &start_scn,
const SCN &end_scn, bool &is_exist) const; const SCN &end_scn, bool &is_exist) const;
int read_piece_inner_placeholder(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const SCN &start_scn, const SCN &end_scn, ObPieceInnerPlaceholderDesc &desc) const; int read_piece_inner_placeholder(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const SCN &start_scn, const SCN &end_scn, ObPieceInnerPlaceholderDesc &desc) const;
int write_piece_inner_placeholder(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const SCN &start_scn, const SCN &end_scn, const ObPieceInnerPlaceholderDesc &desc) const; int write_piece_inner_placeholder(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const SCN &start_scn, const SCN &end_scn, const ObPieceInnerPlaceholderDesc &desc) const;
// oss://archive/d[dest_id]r[round_id]p[piece_id]/[ls_id]/ls_file_info // oss://archive/d[dest_id]r[round_id]p[piece_id]/[ls_id]/file_info.obarc
int is_single_ls_info_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, int is_single_ls_info_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id,
const ObLSID &ls_id, bool &is_exist) const; const ObLSID &ls_id, bool &is_exist) const;
int read_single_ls_info(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, ObSingleLSInfoDesc &desc) const; int read_single_ls_info(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, ObSingleLSInfoDesc &desc) const;
int write_single_ls_info(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, const ObSingleLSInfoDesc &desc) const; int write_single_ls_info(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObLSID &ls_id, const ObSingleLSInfoDesc &desc) const;
// oss://archive/d[dest_id]r[round_id]p[piece_id]/piece_file_info // oss://archive/d[dest_id]r[round_id]p[piece_id]/file_info.obarc
int is_piece_info_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, bool &is_exist) const; int is_piece_info_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, bool &is_exist) const;
int read_piece_info(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, ObPieceInfoDesc &desc) const; int read_piece_info(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, ObPieceInfoDesc &desc) const;
int write_piece_info(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObPieceInfoDesc &desc) const; int write_piece_info(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObPieceInfoDesc &desc) const;
// oss://archive/d[dest_id]r[round_id]p[piece_id]/tenant_archive_piece_infos // oss://archive/d[dest_id]r[round_id]p[piece_id]/tenant_archive_piece_infos.obarc
int is_tenant_archive_piece_infos_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, bool &is_exist) const; int is_tenant_archive_piece_infos_file_exist(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, bool &is_exist) const;
int read_tenant_archive_piece_infos(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, ObTenantArchivePieceInfosDesc &desc) const; int read_tenant_archive_piece_infos(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, ObTenantArchivePieceInfosDesc &desc) const;
int write_tenant_archive_piece_infos(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObTenantArchivePieceInfosDesc &desc) const; int write_tenant_archive_piece_infos(const int64_t dest_id, const int64_t round_id, const int64_t piece_id, const ObTenantArchivePieceInfosDesc &desc) const;

View File

@ -1134,11 +1134,36 @@ int ObArchiveLSMetaType::compare(const ObArchiveLSMetaType &other) const
const char *ObArchiveLSMetaType::get_type_str() const const char *ObArchiveLSMetaType::get_type_str() const
{ {
#define CHECK_TYPE_STR(x) case(Type::x): return #x const char *type_str = nullptr;
switch (type_) { const char *meta_type_strs[] = {
CHECK_TYPE_STR(SCHEMA_META); "invalid",
default: "schema_meta",
return "Invalid";
}; };
#undef CHECK_TYPE_STR STATIC_ASSERT(Type::MAX_TYPE == ARRAYSIZEOF(meta_type_strs), "type count mismatch");
if (type_ < Type::INVALID_TYPE || type_ >= Type::MAX_TYPE) {
type_str = "unknow";
} else {
type_str = meta_type_strs[type_];
}
return type_str;
} }
int ObArchiveLSMetaType::get_next_type()
{
int ret = OB_SUCCESS;
switch (type_) {
case Type::INVALID_TYPE: {
type_ = Type::SCHEMA_META;
break;
};
case Type::SCHEMA_META: {
ret = OB_ITER_END;
break;
};
case Type::MAX_TYPE: {
ret = OB_ITER_END;
break;
};
}
return ret;
}

View File

@ -900,7 +900,7 @@ struct ObArchiveLSMetaType final
// so pay attention to give the type an appropriate name while the length of its name // so pay attention to give the type an appropriate name while the length of its name
// 'SMALLER' than then MAX_TYPE_LEN // 'SMALLER' than then MAX_TYPE_LEN
static const int64_t MAX_TYPE_LEN = 100; static const int64_t MAX_TYPE_LEN = 100;
enum class Type : int64_t enum Type : int64_t
{ {
INVALID_TYPE = 0, INVALID_TYPE = 0,
// add task type here // add task type here
@ -918,6 +918,7 @@ struct ObArchiveLSMetaType final
bool operator==(const ObArchiveLSMetaType &other) const { return 0 == compare(other); } bool operator==(const ObArchiveLSMetaType &other) const { return 0 == compare(other); }
bool operator!=(const ObArchiveLSMetaType &other) const { return !operator==(other); } bool operator!=(const ObArchiveLSMetaType &other) const { return !operator==(other); }
const char *get_type_str() const; const char *get_type_str() const;
int get_next_type();
TO_STRING_KV("type", get_type_str()); TO_STRING_KV("type", get_type_str());
}; };

View File

@ -542,7 +542,7 @@ int ObBackupPathUtil::get_backup_set_placeholder_end_failed_path(
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/ // file:///obbackup/backup_set_1_full/
int ObBackupPathUtil::get_backup_set_dir_path(const share::ObBackupDest &backup_set_dest, ObBackupPath &path) int ObBackupPathUtil::get_backup_set_dir_path(const share::ObBackupDest &backup_set_dest, ObBackupPath &path)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -553,7 +553,7 @@ int ObBackupPathUtil::get_backup_set_dir_path(const share::ObBackupDest &backup_
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/ // file:///obbackup/backup_set_1_full/
int ObBackupPathUtil::get_backup_set_dir_path(const share::ObBackupDest &backup_tenant_dest, int ObBackupPathUtil::get_backup_set_dir_path(const share::ObBackupDest &backup_tenant_dest,
const share::ObBackupSetDesc &desc, share::ObBackupPath &backup_path) const share::ObBackupSetDesc &desc, share::ObBackupPath &backup_path)
{ {
@ -613,7 +613,7 @@ int ObBackupPathUtil::get_backup_set_inner_placeholder(
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/ // file:///obbackup/backup_set_1_full/log_stream_1/
int ObBackupPathUtil::get_ls_backup_dir_path(const share::ObBackupDest &backup_set_dest, const share::ObLSID &ls_id, int ObBackupPathUtil::get_ls_backup_dir_path(const share::ObBackupDest &backup_set_dest, const share::ObLSID &ls_id,
ObBackupPath &path) ObBackupPath &path)
{ {
@ -638,7 +638,7 @@ int ObBackupPathUtil::get_ls_backup_dir_path(const share::ObBackupDest &backup_s
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/meta_info_turn_1/tablet_info.obbak // file:///obbackup/backup_set_1_full/log_stream_1/meta_info_turn_1/tablet_info.obbak
int ObBackupPathUtil::get_ls_data_tablet_info_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_ls_data_tablet_info_path(const share::ObBackupDest &backup_set_dest,
const share::ObLSID &ls_id, const int64_t turn_id, const int64_t retry_id, ObBackupPath &path) const share::ObLSID &ls_id, const int64_t turn_id, const int64_t retry_id, ObBackupPath &path)
{ {
@ -653,7 +653,7 @@ int ObBackupPathUtil::get_ls_data_tablet_info_path(const share::ObBackupDest &ba
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/major_data_turn_1_retry_0/ // file:///obbackup/backup_set_1_full/log_stream_1/major_data_turn_1_retry_0/
int ObBackupPathUtil::get_ls_backup_data_dir_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_ls_backup_data_dir_path(const share::ObBackupDest &backup_set_dest,
const share::ObLSID &ls_id, const ObBackupDataType &backup_data_type, const share::ObLSID &ls_id, const ObBackupDataType &backup_data_type,
const int64_t turn_id, const int64_t retry_id, ObBackupPath &path) const int64_t turn_id, const int64_t retry_id, ObBackupPath &path)
@ -668,7 +668,7 @@ int ObBackupPathUtil::get_ls_backup_data_dir_path(const share::ObBackupDest &bac
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/major_data_turn_1_retry_0/ // file:///obbackup/backup_set_1_full/log_stream_1/major_data_turn_1_retry_0/
int ObBackupPathUtil::get_ls_backup_data_dir_path(const share::ObBackupDest &backup_tenant_dest, int ObBackupPathUtil::get_ls_backup_data_dir_path(const share::ObBackupDest &backup_tenant_dest,
const share::ObBackupSetDesc &desc, const share::ObLSID &ls_id, const share::ObBackupDataType &backup_data_type, const share::ObBackupSetDesc &desc, const share::ObLSID &ls_id, const share::ObBackupDataType &backup_data_type,
const int64_t turn_id, const int64_t retry_id, share::ObBackupPath &backup_path) const int64_t turn_id, const int64_t retry_id, share::ObBackupPath &backup_path)
@ -684,7 +684,7 @@ int ObBackupPathUtil::get_ls_backup_data_dir_path(const share::ObBackupDest &bac
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/major_data_turn_1_retry_0/macro_block_data.1.obbak // file:///obbackup/backup_set_1_full/log_stream_1/major_data_turn_1_retry_0/macro_block_data.1.obbak
int ObBackupPathUtil::get_macro_block_backup_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_macro_block_backup_path(const share::ObBackupDest &backup_set_dest,
const share::ObLSID &ls_id, const ObBackupDataType &backup_data_type, const share::ObLSID &ls_id, const ObBackupDataType &backup_data_type,
const int64_t turn_id, const int64_t retry_id, const int64_t file_id, ObBackupPath &path) const int64_t turn_id, const int64_t retry_id, const int64_t file_id, ObBackupPath &path)
@ -717,7 +717,7 @@ int ObBackupPathUtil::get_macro_block_backup_path(const share::ObBackupDest &bac
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/major_data_turn_1_retry_0/macro_range_index.obbak // file:///obbackup/backup_set_1_full/log_stream_1/major_data_turn_1_retry_0/macro_range_index.obbak
int ObBackupPathUtil::get_ls_macro_range_index_backup_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_ls_macro_range_index_backup_path(const share::ObBackupDest &backup_set_dest,
const share::ObLSID &ls_id, const ObBackupDataType &backup_data_type, const int64_t turn_id, const share::ObLSID &ls_id, const ObBackupDataType &backup_data_type, const int64_t turn_id,
const int64_t retry_id, ObBackupPath &path) const int64_t retry_id, ObBackupPath &path)
@ -750,7 +750,7 @@ int ObBackupPathUtil::get_ls_macro_range_index_backup_path(const share::ObBackup
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/major_data_turn_1_retry_0/meta_index.obbak // file:///obbackup/backup_set_1_full/log_stream_1/major_data_turn_1_retry_0/meta_index.obbak
int ObBackupPathUtil::get_ls_meta_index_backup_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_ls_meta_index_backup_path(const share::ObBackupDest &backup_set_dest,
const share::ObLSID &ls_id, const ObBackupDataType &backup_data_type, const share::ObLSID &ls_id, const ObBackupDataType &backup_data_type,
const int64_t turn_id, const int64_t retry_id, const bool is_sec_meta, ObBackupPath &path) const int64_t turn_id, const int64_t retry_id, const bool is_sec_meta, ObBackupPath &path)
@ -784,7 +784,7 @@ int ObBackupPathUtil::get_ls_meta_index_backup_path(const share::ObBackupDest &b
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/infos/ // file:///obbackup/backup_set_1_full/infos/
int ObBackupPathUtil::get_ls_info_dir_path(const share::ObBackupDest &backup_set_dest, ObBackupPath &backup_path) int ObBackupPathUtil::get_ls_info_dir_path(const share::ObBackupDest &backup_set_dest, ObBackupPath &backup_path)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -892,7 +892,7 @@ int ObBackupPathUtil::get_ls_meta_infos_path(const share::ObBackupDest &backup_s
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/tenant_backup_set_infos.obbak // file:///obbackup/backup_set_1_full/tenant_backup_set_infos.obbak
int ObBackupPathUtil::get_tenant_backup_set_infos_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_tenant_backup_set_infos_path(const share::ObBackupDest &backup_set_dest,
ObBackupPath &backup_path) ObBackupPath &backup_path)
{ {
@ -918,7 +918,7 @@ int ObBackupPathUtil::get_tenant_backup_set_infos_path(const share::ObBackupDest
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/single_backup_set_info.obbak // file:///obbackup/backup_set_1_full/single_backup_set_info.obbak
int ObBackupPathUtil::get_backup_set_info_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_backup_set_info_path(const share::ObBackupDest &backup_set_dest,
ObBackupPath &backup_path) ObBackupPath &backup_path)
{ {
@ -944,7 +944,7 @@ int ObBackupPathUtil::get_backup_set_info_path(const share::ObBackupDest &backup
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/infos/diagnose_info.obbak // file:///obbackup/backup_set_1_full/infos/diagnose_info.obbak
int ObBackupPathUtil::get_diagnose_info_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_diagnose_info_path(const share::ObBackupDest &backup_set_dest,
ObBackupPath &backup_path) ObBackupPath &backup_path)
{ {
@ -970,7 +970,7 @@ int ObBackupPathUtil::get_diagnose_info_path(const share::ObBackupDest &backup_t
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/infos/locality_info.obbak // file:///obbackup/backup_set_1_full/infos/locality_info.obbak
int ObBackupPathUtil::get_locality_info_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_locality_info_path(const share::ObBackupDest &backup_set_dest,
ObBackupPath &backup_path) ObBackupPath &backup_path)
{ {
@ -996,7 +996,7 @@ int ObBackupPathUtil::get_locality_info_path(const share::ObBackupDest &backup_t
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/meta_info_turn_1_retry_0/ls_meta_info.obbak // file:///obbackup/backup_set_1_full/log_stream_1/meta_info_turn_1_retry_0/ls_meta_info.obbak
int ObBackupPathUtil::get_ls_meta_info_backup_path(const share::ObBackupDest &backup_tenant_dest, int ObBackupPathUtil::get_ls_meta_info_backup_path(const share::ObBackupDest &backup_tenant_dest,
const ObBackupSetDesc &desc, const share::ObLSID &ls_id, const int64_t turn_id, const ObBackupSetDesc &desc, const share::ObLSID &ls_id, const int64_t turn_id,
const int64_t retry_id, ObBackupPath &backup_path) const int64_t retry_id, ObBackupPath &backup_path)
@ -1014,7 +1014,7 @@ int ObBackupPathUtil::get_ls_meta_info_backup_path(const share::ObBackupDest &ba
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/logstream_1/xxx_xxx_turn_1_retry_0/macro_range_index.obbak // file:///obbackup/backup_set_1_full/logstream_1/xxx_xxx_turn_1_retry_0/macro_range_index.obbak
int ObBackupPathUtil::get_tenant_macro_range_index_backup_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_tenant_macro_range_index_backup_path(const share::ObBackupDest &backup_set_dest,
const ObBackupDataType &backup_data_type, const int64_t turn_id, const int64_t retry_id, ObBackupPath &path) const ObBackupDataType &backup_data_type, const int64_t turn_id, const int64_t retry_id, ObBackupPath &path)
{ {
@ -1044,7 +1044,7 @@ int ObBackupPathUtil::get_tenant_macro_range_index_backup_path(const share::ObBa
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/logstream_1/xxx_xxx_turn_1_retry_0/meta_index.obbak // file:///obbackup/backup_set_1_full/logstream_1/xxx_xxx_turn_1_retry_0/meta_index.obbak
int ObBackupPathUtil::get_tenant_meta_index_backup_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_tenant_meta_index_backup_path(const share::ObBackupDest &backup_set_dest,
const ObBackupDataType &backup_data_type, const int64_t turn_id, const int64_t retry_id, const ObBackupDataType &backup_data_type, const int64_t turn_id, const int64_t retry_id,
const bool is_sec_meta, ObBackupPath &path) const bool is_sec_meta, ObBackupPath &path)
@ -1075,7 +1075,7 @@ int ObBackupPathUtil::get_tenant_meta_index_backup_path(const share::ObBackupDes
return ret; return ret;
} }
// file://obbackup/backup_set_1_full_20211231/infos/data_info_turn_1/tablet_log_stream_info.obbak // file://obbackup/backup_set_1_full/infos/data_info_turn_1/tablet_log_stream_info.obbak
int ObBackupPathUtil::get_backup_data_tablet_ls_info_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_backup_data_tablet_ls_info_path(const share::ObBackupDest &backup_set_dest,
const uint64_t turn_id, ObBackupPath &path) const uint64_t turn_id, ObBackupPath &path)
{ {
@ -1103,7 +1103,7 @@ int ObBackupPathUtil::get_deleted_tablet_info_path(const share::ObBackupDest &ba
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/complement_log/ // file:///obbackup/backup_set_1_full/log_stream_1/complement_log/
int ObBackupPathUtil::get_ls_complement_log_dir_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_ls_complement_log_dir_path(const share::ObBackupDest &backup_set_dest,
const share::ObLSID &ls_id, ObBackupPath &backup_path) const share::ObLSID &ls_id, ObBackupPath &backup_path)
{ {
@ -1130,7 +1130,7 @@ int ObBackupPathUtil::get_ls_complement_log_dir_path(const share::ObBackupDest &
return ret; return ret;
} }
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/complement_log/1 // file:///obbackup/backup_set_1_full/log_stream_1/complement_log/1
int ObBackupPathUtil::get_ls_complement_log_backup_path(const share::ObBackupDest &backup_set_dest, int ObBackupPathUtil::get_ls_complement_log_backup_path(const share::ObBackupDest &backup_set_dest,
const share::ObLSID &ls_id, const int64_t file_id, ObBackupPath &path) const share::ObLSID &ls_id, const int64_t file_id, ObBackupPath &path)
{ {

View File

@ -112,7 +112,7 @@ struct ObBackupPathUtil
static int get_ls_backup_dir_path(const share::ObBackupDest &backup_set_dest, static int get_ls_backup_dir_path(const share::ObBackupDest &backup_set_dest,
const share::ObBackupSetDesc &desc, const share::ObLSID &ls_id, share::ObBackupPath &backup_path); const share::ObBackupSetDesc &desc, const share::ObLSID &ls_id, share::ObBackupPath &backup_path);
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/meta_info_turn_1/tablet_info.obbak // file:///obbackup/backup_set_1_full/log_stream_1/meta_info_turn_1/tablet_info.obbak
static int get_ls_data_tablet_info_path(const share::ObBackupDest &backup_set_dest, static int get_ls_data_tablet_info_path(const share::ObBackupDest &backup_set_dest,
const share::ObLSID &ls_id, const int64_t turn_id, const int64_t retry_id, const share::ObLSID &ls_id, const int64_t turn_id, const int64_t retry_id,
share::ObBackupPath &backup_path); share::ObBackupPath &backup_path);
@ -191,7 +191,7 @@ struct ObBackupPathUtil
static int get_tenant_backup_set_infos_path(const share::ObBackupDest &backup_tenant_dest, static int get_tenant_backup_set_infos_path(const share::ObBackupDest &backup_tenant_dest,
const share::ObBackupSetDesc &desc, share::ObBackupPath &backup_path); const share::ObBackupSetDesc &desc, share::ObBackupPath &backup_path);
// file:///obbackup/backup_set_1_full_20211231/single_backup_set_info.obbak // file:///obbackup/backup_set_1_full/single_backup_set_info.obbak
static int get_backup_set_info_path(const share::ObBackupDest &backup_set_dest, static int get_backup_set_info_path(const share::ObBackupDest &backup_set_dest,
share::ObBackupPath &backup_path); share::ObBackupPath &backup_path);
@ -212,12 +212,12 @@ struct ObBackupPathUtil
static int get_locality_info_path(const share::ObBackupDest &backup_tenant_dest, static int get_locality_info_path(const share::ObBackupDest &backup_tenant_dest,
share::ObBackupSetDesc &desc, share::ObBackupPath &backup_path); share::ObBackupSetDesc &desc, share::ObBackupPath &backup_path);
// file:///obbackup/backup_set_1_full_20211231/log_stream_1/meta_info_turn_1_retry_0/ls_meta_info.obbak // file:///obbackup/backup_set_1_full/log_stream_1/meta_info_turn_1_retry_0/ls_meta_info.obbak
static int get_ls_meta_info_backup_path(const share::ObBackupDest &backup_tenant_dest, static int get_ls_meta_info_backup_path(const share::ObBackupDest &backup_tenant_dest,
const share::ObBackupSetDesc &desc, const share::ObLSID &ls_id, const int64_t turn_id, const share::ObBackupSetDesc &desc, const share::ObLSID &ls_id, const int64_t turn_id,
const int64_t retry_id, share::ObBackupPath &backup_path); const int64_t retry_id, share::ObBackupPath &backup_path);
// file:///obbackup/backup_set_1_full_20211231/logstream_1/xxx_xxx_turn_1_retry_0/macro_range_index.obbak // file:///obbackup/backup_set_1_full/logstream_1/xxx_xxx_turn_1_retry_0/macro_range_index.obbak
static int get_tenant_macro_range_index_backup_path(const share::ObBackupDest &backup_set_dest, static int get_tenant_macro_range_index_backup_path(const share::ObBackupDest &backup_set_dest,
const share::ObBackupDataType &backup_data_type, const int64_t turn_id, const int64_t retry_id, const share::ObBackupDataType &backup_data_type, const int64_t turn_id, const int64_t retry_id,
share::ObBackupPath &backup_path); share::ObBackupPath &backup_path);
@ -226,7 +226,7 @@ struct ObBackupPathUtil
const share::ObBackupSetDesc &desc, const share::ObBackupDataType &backup_data_type, const int64_t turn_id, const share::ObBackupSetDesc &desc, const share::ObBackupDataType &backup_data_type, const int64_t turn_id,
const int64_t retry_id, share::ObBackupPath &backup_path); const int64_t retry_id, share::ObBackupPath &backup_path);
// file:///obbackup/backup_set_1_full_20211231/logstream_1/xxx_xxx_turn_1_retry_0/meta_index.obbak // file:///obbackup/backup_set_1_full/logstream_1/xxx_xxx_turn_1_retry_0/meta_index.obbak
static int get_tenant_meta_index_backup_path(const share::ObBackupDest &backup_set_dest, static int get_tenant_meta_index_backup_path(const share::ObBackupDest &backup_set_dest,
const share::ObBackupDataType &backup_data_type, const int64_t turn_id, const int64_t retry_id, const share::ObBackupDataType &backup_data_type, const int64_t turn_id, const int64_t retry_id,
const bool is_sec_meta, share::ObBackupPath &backup_path); const bool is_sec_meta, share::ObBackupPath &backup_path);
@ -235,7 +235,7 @@ struct ObBackupPathUtil
const share::ObBackupSetDesc &desc, const share::ObBackupDataType &backup_data_type, const int64_t turn_id, const share::ObBackupSetDesc &desc, const share::ObBackupDataType &backup_data_type, const int64_t turn_id,
const int64_t retry_id, const bool is_sec_meta, share::ObBackupPath &backup_path); const int64_t retry_id, const bool is_sec_meta, share::ObBackupPath &backup_path);
// file://obbackup/backup_set_1_full_20211231/infos/data_info_turn_1/tablet_log_stream_info.obbak // file://obbackup/backup_set_1_full/infos/data_info_turn_1/tablet_log_stream_info.obbak
static int get_backup_data_tablet_ls_info_path(const share::ObBackupDest &backup_set_dest, static int get_backup_data_tablet_ls_info_path(const share::ObBackupDest &backup_set_dest,
const uint64_t turn_id, share::ObBackupPath &path); const uint64_t turn_id, share::ObBackupPath &path);

View File

@ -588,7 +588,11 @@ int ObLSBackupCleanTask::do_ls_task()
int ObLSBackupCleanTask::delete_backup_piece_ls_files_(const ObBackupPath &path) int ObLSBackupCleanTask::delete_backup_piece_ls_files_(const ObBackupPath &path)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
if (OB_FAIL(ObBackupCleanUtil::delete_backup_dir_files(path, backup_dest_.get_storage_info()))) { if (OB_FAIL(delete_piece_log_files_(path))) {
LOG_WARN("failed to delete log files", K(ret), K(path));
} else if (OB_FAIL(delete_piece_ls_meta_files_(path))) {
LOG_WARN("failed to delete piece ls meta files", K(ret), K(path));
} else if (OB_FAIL(ObBackupCleanUtil::delete_backup_dir_files(path, backup_dest_.get_storage_info()))) {
LOG_WARN("failed to delete backup log stream dir files", K(ret), K(path)); LOG_WARN("failed to delete backup log stream dir files", K(ret), K(path));
} }
return ret; return ret;
@ -601,9 +605,9 @@ int ObLSBackupCleanTask::delete_complement_log_(const ObBackupPath &path)
if (OB_FAIL(complement_path.init(path.get_ptr()))) { if (OB_FAIL(complement_path.init(path.get_ptr()))) {
LOG_WARN("failed to init complement log path", K(ret), K(path)); LOG_WARN("failed to init complement log path", K(ret), K(path));
} else if (OB_FAIL(complement_path.join("complement_log", ObBackupFileSuffix::NONE))) { } else if (OB_FAIL(complement_path.join("complement_log", ObBackupFileSuffix::NONE))) {
LOG_WARN("failed to join complement log", K(ret), K(path)); LOG_WARN("failed to join complement log", K(ret), K(complement_path));
} else if (OB_FAIL(ObBackupCleanUtil::delete_backup_dir_files(path, backup_dest_.get_storage_info()))) { } else if (OB_FAIL(ObBackupCleanUtil::delete_backup_dir_files(complement_path, backup_dest_.get_storage_info()))) {
LOG_WARN("failed to delete backup log stream dir files", K(ret), K(path)); LOG_WARN("failed to delete backup log stream dir files", K(ret), K(complement_path));
} else { } else {
LOG_INFO("[BACKUP_CLEAN]success delete complement log", K(complement_path)); LOG_INFO("[BACKUP_CLEAN]success delete complement log", K(complement_path));
} }
@ -813,6 +817,52 @@ int ObLSBackupCleanTask::get_set_ls_path_(ObBackupPath &path)
return ret; return ret;
} }
int ObLSBackupCleanTask::delete_piece_log_files_(const ObBackupPath &path)
{
int ret = OB_SUCCESS;
ObBackupPath log_path;
if (OB_FAIL(log_path.init(path.get_ptr()))) {
LOG_WARN("failed to init piece log path", K(ret), K(path));
} else if (OB_FAIL(log_path.join("log", ObBackupFileSuffix::NONE))) {
LOG_WARN("failed to join log", K(ret), K(log_path));
} else if (OB_FAIL(ObBackupCleanUtil::delete_backup_dir_files(log_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 log files", K(log_path));
}
return ret;
}
int ObLSBackupCleanTask::delete_piece_ls_meta_files_(const ObBackupPath &path)
{
int ret = OB_SUCCESS;
ObBackupPath meta_path;
ObArchiveLSMetaType meta_type;
do {
meta_path.reset();
if (OB_FAIL(meta_type.get_next_type())) {
if (OB_ITER_END == ret) {
ret = OB_SUCCESS;
break;
} else {
LOG_WARN("failed to get next type", K(ret), K(meta_type));
}
} else if (!meta_type.is_valid()) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("meta type is invalid", K(ret), K(meta_type));
} else if (OB_FAIL(meta_path.init(path.get_ptr()))) {
LOG_WARN("failed to init complement log path", K(ret), K(path));
} else if (OB_FAIL(meta_path.join(meta_type.get_type_str(), ObBackupFileSuffix::NONE))) {
LOG_WARN("failed to join meta type", K(ret), K(path));
} else if (OB_FAIL(ObBackupCleanUtil::delete_backup_dir_files(meta_path, backup_dest_.get_storage_info()))) {
LOG_WARN("failed to delete backup log stream dir files", K(ret), K(meta_path));
} else {
LOG_INFO("[BACKUP_CLEAN]success delete meta files", K(meta_path));
}
} while (OB_SUCC(ret));
return ret;
}
int ObLSBackupCleanTask::get_piece_ls_path(ObBackupPath &path) int ObLSBackupCleanTask::get_piece_ls_path(ObBackupPath &path)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;

View File

@ -128,6 +128,8 @@ protected:
int delete_backup_set_ls_files_(const share::ObBackupPath &path); int delete_backup_set_ls_files_(const share::ObBackupPath &path);
int get_set_ls_path_(share::ObBackupPath &path); int get_set_ls_path_(share::ObBackupPath &path);
int get_piece_ls_path(share::ObBackupPath &path); int get_piece_ls_path(share::ObBackupPath &path);
int delete_piece_ls_meta_files_(const share::ObBackupPath &path);
int delete_piece_log_files_(const share::ObBackupPath &path);
int delete_complement_log_(const share::ObBackupPath &path); int delete_complement_log_(const share::ObBackupPath &path);
int delete_sys_data_(const share::ObBackupPath &path); int delete_sys_data_(const share::ObBackupPath &path);
int delete_major_data_(const share::ObBackupPath &path); int delete_major_data_(const share::ObBackupPath &path);

View File

@ -219,19 +219,19 @@ TEST_F(TestLogStreamBackup, test_backup_path)
ObBackupPath path; ObBackupPath path;
const char *root_path = "file:///obbackup"; const char *root_path = "file:///obbackup";
const char *expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231"; const char *expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full";
ret = ObBackupPathUtil::get_backup_set_dir_path(root_path, tenant_id_, backup_set_desc_, path); ret = ObBackupPathUtil::get_backup_set_dir_path(root_path, tenant_id_, backup_set_desc_, path);
ASSERT_EQ(OB_SUCCESS, ret); ASSERT_EQ(OB_SUCCESS, ret);
LOG_INFO("dump path", K(path), K(expect_path)); LOG_INFO("dump path", K(path), K(expect_path));
ASSERT_EQ(0, path.get_obstr().compare(expect_path)); ASSERT_EQ(0, path.get_obstr().compare(expect_path));
expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231/logstream_1"; expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full/logstream_1";
ret = ObBackupPathUtil::get_ls_backup_dir_path(root_path, tenant_id_, backup_set_desc_, ls_id_, path); ret = ObBackupPathUtil::get_ls_backup_dir_path(root_path, tenant_id_, backup_set_desc_, ls_id_, path);
ASSERT_EQ(OB_SUCCESS, ret); ASSERT_EQ(OB_SUCCESS, ret);
LOG_INFO("dump path", K(path), K(expect_path)); LOG_INFO("dump path", K(path), K(expect_path));
ASSERT_EQ(0, path.get_obstr().compare(expect_path)); ASSERT_EQ(0, path.get_obstr().compare(expect_path));
expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231/logstream_1/" expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full/logstream_1/"
"major_data_turn_1_retry_0"; "major_data_turn_1_retry_0";
ret = ObBackupPathUtil::get_ls_backup_data_dir_path( ret = ObBackupPathUtil::get_ls_backup_data_dir_path(
root_path, tenant_id_, backup_set_desc_, ls_id_, backup_data_type_, turn_id_, retry_id_, path); root_path, tenant_id_, backup_set_desc_, ls_id_, backup_data_type_, turn_id_, retry_id_, path);
@ -239,7 +239,7 @@ TEST_F(TestLogStreamBackup, test_backup_path)
LOG_INFO("dump path", K(path), K(expect_path)); LOG_INFO("dump path", K(path), K(expect_path));
ASSERT_EQ(0, path.get_obstr().compare(expect_path)); ASSERT_EQ(0, path.get_obstr().compare(expect_path));
expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231/logstream_1/" expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full/logstream_1/"
"major_data_turn_1_retry_0/macro_block_data.0"; "major_data_turn_1_retry_0/macro_block_data.0";
ret = ObBackupPathUtil::get_macro_block_backup_path( ret = ObBackupPathUtil::get_macro_block_backup_path(
root_path, tenant_id_, backup_set_desc_, ls_id_, backup_data_type_, turn_id_, retry_id_, file_id_, path); root_path, tenant_id_, backup_set_desc_, ls_id_, backup_data_type_, turn_id_, retry_id_, file_id_, path);
@ -247,7 +247,7 @@ TEST_F(TestLogStreamBackup, test_backup_path)
LOG_INFO("dump path", K(path), K(expect_path)); LOG_INFO("dump path", K(path), K(expect_path));
ASSERT_EQ(0, path.get_obstr().compare(expect_path)); ASSERT_EQ(0, path.get_obstr().compare(expect_path));
expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231/logstream_1/" expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full/logstream_1/"
"major_data_turn_1_retry_0/macro_range_index"; "major_data_turn_1_retry_0/macro_range_index";
ret = ObBackupPathUtil::get_ls_macro_range_index_backup_path( ret = ObBackupPathUtil::get_ls_macro_range_index_backup_path(
root_path, tenant_id_, backup_set_desc_, ls_id_, backup_data_type_, turn_id_, retry_id_, path); root_path, tenant_id_, backup_set_desc_, ls_id_, backup_data_type_, turn_id_, retry_id_, path);
@ -255,7 +255,7 @@ TEST_F(TestLogStreamBackup, test_backup_path)
LOG_INFO("dump path", K(path), K(expect_path)); LOG_INFO("dump path", K(path), K(expect_path));
ASSERT_EQ(0, path.get_obstr().compare(expect_path)); ASSERT_EQ(0, path.get_obstr().compare(expect_path));
expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231/logstream_1/" expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full/logstream_1/"
"major_data_turn_1_retry_0/meta_index"; "major_data_turn_1_retry_0/meta_index";
ret = ObBackupPathUtil::get_ls_meta_index_backup_path( ret = ObBackupPathUtil::get_ls_meta_index_backup_path(
root_path, tenant_id_, backup_set_desc_, ls_id_, backup_data_type_, turn_id_, retry_id_, path); root_path, tenant_id_, backup_set_desc_, ls_id_, backup_data_type_, turn_id_, retry_id_, path);
@ -263,13 +263,13 @@ TEST_F(TestLogStreamBackup, test_backup_path)
LOG_INFO("dump path", K(path), K(expect_path)); LOG_INFO("dump path", K(path), K(expect_path));
ASSERT_EQ(0, path.get_obstr().compare(expect_path)); ASSERT_EQ(0, path.get_obstr().compare(expect_path));
expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231/infos/ls_meta_info"; expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full/infos/ls_meta_info";
ret = ObBackupPathUtil::get_ls_meta_info_backup_path(root_path, tenant_id_, backup_set_desc_, path); ret = ObBackupPathUtil::get_ls_meta_info_backup_path(root_path, tenant_id_, backup_set_desc_, path);
ASSERT_EQ(OB_SUCCESS, ret); ASSERT_EQ(OB_SUCCESS, ret);
LOG_INFO("dump path", K(path), K(expect_path)); LOG_INFO("dump path", K(path), K(expect_path));
ASSERT_EQ(0, path.get_obstr().compare(expect_path)); ASSERT_EQ(0, path.get_obstr().compare(expect_path));
expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231/infos/info_turn_1/" expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full/infos/info_turn_1/"
"tenant_major_data_macro_range_index"; "tenant_major_data_macro_range_index";
ret = ObBackupPathUtil::get_tenant_macro_range_index_backup_path( ret = ObBackupPathUtil::get_tenant_macro_range_index_backup_path(
root_path, tenant_id_, backup_set_desc_, backup_data_type_, turn_id_, path); root_path, tenant_id_, backup_set_desc_, backup_data_type_, turn_id_, path);
@ -277,7 +277,7 @@ TEST_F(TestLogStreamBackup, test_backup_path)
LOG_INFO("dump path", K(path), K(expect_path)); LOG_INFO("dump path", K(path), K(expect_path));
ASSERT_EQ(0, path.get_obstr().compare(expect_path)); ASSERT_EQ(0, path.get_obstr().compare(expect_path));
expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231/infos/info_turn_1/" expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full/infos/info_turn_1/"
"tenant_major_data_meta_index"; "tenant_major_data_meta_index";
ret = ObBackupPathUtil::get_tenant_meta_index_backup_path( ret = ObBackupPathUtil::get_tenant_meta_index_backup_path(
root_path, tenant_id_, backup_set_desc_, backup_data_type_, turn_id_, path); root_path, tenant_id_, backup_set_desc_, backup_data_type_, turn_id_, path);
@ -285,7 +285,7 @@ TEST_F(TestLogStreamBackup, test_backup_path)
LOG_INFO("dump path", K(path), K(expect_path)); LOG_INFO("dump path", K(path), K(expect_path));
ASSERT_EQ(0, path.get_obstr().compare(expect_path)); ASSERT_EQ(0, path.get_obstr().compare(expect_path));
expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full_20211231/logstream_1/complement_log/0"; expect_path = "file:///obbackup/tenant_1_incarnation_1/data/backup_set_1_full/logstream_1/complement_log/0";
ret = ObBackupPathUtil::get_ls_complement_log_backup_path( ret = ObBackupPathUtil::get_ls_complement_log_backup_path(
root_path, tenant_id_, backup_set_desc_, ls_id_, file_id_, path); root_path, tenant_id_, backup_set_desc_, ls_id_, file_id_, path);
ASSERT_EQ(OB_SUCCESS, ret); ASSERT_EQ(OB_SUCCESS, ret);