don't advance checkpoint if tenant not normal
This commit is contained in:
@ -730,12 +730,18 @@ int ObArchiveHandler::do_checkpoint_(share::ObTenantArchiveRoundAttr &round_info
|
|||||||
ObDestRoundSummary summary;
|
ObDestRoundSummary summary;
|
||||||
ObDestRoundCheckpointer checkpointer;
|
ObDestRoundCheckpointer checkpointer;
|
||||||
SCN max_checkpoint_scn = SCN::min_scn();
|
SCN max_checkpoint_scn = SCN::min_scn();
|
||||||
|
bool can = false;
|
||||||
if (OB_FAIL(ObTenantArchiveMgr::decide_piece_id(round_info.start_scn_, round_info.base_piece_id_, round_info.piece_switch_interval_, round_info.checkpoint_scn_, since_piece_id))) {
|
if (OB_FAIL(ObTenantArchiveMgr::decide_piece_id(round_info.start_scn_, round_info.base_piece_id_, round_info.piece_switch_interval_, round_info.checkpoint_scn_, since_piece_id))) {
|
||||||
LOG_WARN("failed to calc since piece id", K(ret), K(round_info));
|
LOG_WARN("failed to calc since piece id", K(ret), K(round_info));
|
||||||
} else if (OB_FAIL(archive_table_op_.get_dest_round_summary(*sql_proxy_, round_info.dest_id_, round_info.round_id_, since_piece_id, summary))) {
|
} else if (OB_FAIL(archive_table_op_.get_dest_round_summary(*sql_proxy_, round_info.dest_id_, round_info.round_id_, since_piece_id, summary))) {
|
||||||
LOG_WARN("failed to get dest round summary.", K(ret), K(round_info), K(since_piece_id));
|
LOG_WARN("failed to get dest round summary.", K(ret), K(round_info), K(since_piece_id));
|
||||||
} else if (OB_FAIL(get_max_checkpoint_scn_(tenant_id_, max_checkpoint_scn))) {
|
} else if (OB_FAIL(get_max_checkpoint_scn_(tenant_id_, max_checkpoint_scn))) {
|
||||||
LOG_WARN("failed to get limit scn.", K(ret));
|
LOG_WARN("failed to get limit scn.", K(ret));
|
||||||
|
} else if (OB_FAIL(check_can_do_archive(can))) {
|
||||||
|
LOG_WARN("failed to check can do archive", K(ret));
|
||||||
|
} else if (!can) {
|
||||||
|
ret = OB_NOT_SUPPORTED;
|
||||||
|
LOG_WARN("tenant can not do archive", K(ret), K_(tenant_id));
|
||||||
} else if (OB_FAIL(checkpointer.init(&round_handler_, piece_generated_cb, round_checkpoint_cb, max_checkpoint_scn))) {
|
} else if (OB_FAIL(checkpointer.init(&round_handler_, piece_generated_cb, round_checkpoint_cb, max_checkpoint_scn))) {
|
||||||
LOG_WARN("failed to init checkpointer", K(ret), K(round_info));
|
LOG_WARN("failed to init checkpointer", K(ret), K(round_info));
|
||||||
} else if (OB_FAIL(checkpointer.checkpoint(round_info, summary))) {
|
} else if (OB_FAIL(checkpointer.checkpoint(round_info, summary))) {
|
||||||
|
|||||||
@ -105,7 +105,6 @@ int ObDestRoundCheckpointer::checkpoint(const ObTenantArchiveRoundAttr &round_in
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int ObDestRoundCheckpointer::count_(const ObDestRoundSummary &summary, ObDestRoundCheckpointer::Counter &counter) const
|
int ObDestRoundCheckpointer::count_(const ObDestRoundSummary &summary, ObDestRoundCheckpointer::Counter &counter) const
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
|
|||||||
Reference in New Issue
Block a user