[CP] fix backup check rebuild seq use rebuild seq not correct issue
This commit is contained in:
@ -3777,7 +3777,9 @@ int ObLSBackupPrepareTask::may_need_advance_checkpoint_()
|
||||
if (OB_ISNULL(ls_backup_ctx_)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("ls backup ctx should not be null", K(ret));
|
||||
} else if (OB_FAIL(fetch_backup_ls_meta_(rebuild_seq, backup_clog_checkpoint_scn))) {
|
||||
} else if (OB_FAIL(fetch_cur_ls_rebuild_seq_(rebuild_seq))) {
|
||||
LOG_WARN("failed to fetch cur ls rebuild seq", K(ret), K_(param));
|
||||
} else if (OB_FAIL(fetch_backup_ls_meta_(backup_clog_checkpoint_scn))) {
|
||||
LOG_WARN("failed to fetch backup ls meta checkpoint ts", K(ret), K_(param));
|
||||
} else if (FALSE_IT(ls_backup_ctx_->rebuild_seq_ = rebuild_seq)) {
|
||||
// assign rebuild seq
|
||||
@ -3811,10 +3813,33 @@ int ObLSBackupPrepareTask::may_need_advance_checkpoint_()
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObLSBackupPrepareTask::fetch_backup_ls_meta_(int64_t &rebuild_seq, SCN &clog_checkpoint_scn)
|
||||
int ObLSBackupPrepareTask::fetch_cur_ls_rebuild_seq_(int64_t &rebuild_seq)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
rebuild_seq = -1;
|
||||
storage::ObLSHandle ls_handle;
|
||||
storage::ObLS *ls = NULL;
|
||||
const uint64_t tenant_id = param_.tenant_id_;
|
||||
const share::ObLSID &ls_id = param_.ls_id_;
|
||||
MTL_SWITCH(tenant_id) {
|
||||
ObLSMetaPackage cur_ls_meta;
|
||||
if (OB_FAIL(get_ls_handle(tenant_id, ls_id, ls_handle))) {
|
||||
LOG_WARN("failed to get ls handle", K(ret), K(tenant_id), K(ls_id));
|
||||
} else if (OB_ISNULL(ls = ls_handle.get_ls())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("log stream not exist", K(ret), K(ls_id));
|
||||
} else if (OB_FAIL(ls->get_ls_meta_package(cur_ls_meta))) {
|
||||
LOG_WARN("failed to get ls meta package", K(ret), K(tenant_id), K(ls_id));
|
||||
} else {
|
||||
rebuild_seq = cur_ls_meta.ls_meta_.get_rebuild_seq();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObLSBackupPrepareTask::fetch_backup_ls_meta_(share::SCN &clog_checkpoint_scn)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
rebuild_seq = 0;
|
||||
clog_checkpoint_scn.reset();
|
||||
ObLSMetaPackage ls_meta_package;
|
||||
share::ObBackupDataStore store;
|
||||
@ -3826,7 +3851,6 @@ int ObLSBackupPrepareTask::fetch_backup_ls_meta_(int64_t &rebuild_seq, SCN &clog
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("invalid ls meta package", K(ret), K(ls_meta_package));
|
||||
} else {
|
||||
rebuild_seq = ls_meta_package.ls_meta_.get_rebuild_seq();
|
||||
clog_checkpoint_scn = ls_meta_package.ls_meta_.get_clog_checkpoint_scn();
|
||||
}
|
||||
return ret;
|
||||
|
||||
@ -451,6 +451,8 @@ public:
|
||||
|
||||
private:
|
||||
int may_need_advance_checkpoint_();
|
||||
int fetch_cur_ls_rebuild_seq_(int64_t &rebuild_seq);
|
||||
int fetch_backup_ls_meta_(share::SCN &clog_checkpoint_scn);
|
||||
int check_tx_data_can_explain_user_data_();
|
||||
int get_backup_tx_data_table_filled_tx_scn_(share::SCN &filled_tx_scn);
|
||||
int prepare_meta_index_store_(ObBackupMetaIndexStore &meta_index_store);
|
||||
@ -459,7 +461,6 @@ private:
|
||||
int get_cur_ls_min_filled_tx_scn_(share::SCN &min_filled_tx_scn);
|
||||
int get_tablet_min_filled_tx_scn_(ObTabletHandle &tablet_handle,
|
||||
share::SCN &min_filled_tx_scn, bool &has_minor_sstable);
|
||||
int fetch_backup_ls_meta_(int64_t &rebuild_seq, share::SCN &clog_checkpoint_scn);
|
||||
|
||||
private:
|
||||
bool is_inited_;
|
||||
|
||||
Reference in New Issue
Block a user