解决按需回放中,未升主备机lsn校验失败的问题;删除按需回放支持升级

This commit is contained in:
chendong76
2023-09-21 11:25:26 +08:00
parent 555dac870b
commit 62c19f20fd
18 changed files with 105 additions and 184 deletions

View File

@ -144,16 +144,17 @@
(SS_NORMAL_STANDBY && (g_instance.attr.attr_storage.xlog_file_path != 0))
#define SS_CLUSTER_ONDEMAND_NOT_NORAML \
(ENABLE_DMS && (g_instance.dms_cxt.SSReformerControl.clusterStatus != CLUSTER_NORMAL))
(ENABLE_DMS && (g_instance.dms_cxt.SSRecoveryInfo.cluster_ondemand_status!= CLUSTER_NORMAL))
#define SS_CLUSTER_ONDEMAND_BUILD \
(ENABLE_DMS && (g_instance.dms_cxt.SSReformerControl.clusterStatus == CLUSTER_IN_ONDEMAND_BUILD))
(ENABLE_DMS && (g_instance.dms_cxt.SSRecoveryInfo.cluster_ondemand_status== CLUSTER_IN_ONDEMAND_BUILD))
#define SS_CLUSTER_ONDEMAND_RECOVERY \
(ENABLE_DMS && (g_instance.dms_cxt.SSReformerControl.clusterStatus == CLUSTER_IN_ONDEMAND_RECOVERY))
(ENABLE_DMS && (g_instance.dms_cxt.SSRecoveryInfo.cluster_ondemand_status== CLUSTER_IN_ONDEMAND_REDO))
#define SS_CLUSTER_ONDEMAND_NORMAL \
(ENABLE_DMS && (g_instance.dms_cxt.SSReformerControl.clusterStatus == CLUSTER_NORMAL))
(ENABLE_DMS && (g_instance.dms_cxt.SSRecoveryInfo.cluster_ondemand_status== CLUSTER_NORMAL))
#define SS_STANDBY_ONDEMAND_BUILD (SS_STANDBY_MODE && SS_CLUSTER_ONDEMAND_BUILD)
#define SS_STANDBY_ONDEMAND_RECOVERY (SS_STANDBY_MODE && SS_CLUSTER_ONDEMAND_RECOVERY)
#define SS_STANDBY_ONDEMAND_NORMAL (SS_STANDBY_MODE && SS_CLUSTER_ONDEMAND_NORMAL)
#define SS_STANDBY_ONDEMAND_NOT_NORMAL (SS_STANDBY_MODE && SS_CLUSTER_ONDEMAND_NOT_NORAML)
/* DMS_BUF_NEED_LOAD */
#define BUF_NEED_LOAD 0x1
@ -209,6 +210,7 @@ typedef enum SSBroadcastOp {
BCAST_DDLLOCKRELEASE,
BCAST_DDLLOCKRELEASE_ALL,
BCAST_CHECK_DB_BACKENDS,
BCAST_RELOAD_REFORM_CTRL_PAGE,
BCAST_END
} SSBroadcastOp;

View File

@ -75,6 +75,7 @@ typedef struct ss_recovery_info {
volatile failover_ckpt_status_t failover_ckpt_status;
char recovery_xlog_dir[MAXPGPATH];
int recovery_inst_id;
volatile SSGlobalClusterState cluster_ondemand_status;
LWLock* update_seg_lock;
bool new_primary_reset_walbuf_flag;
bool ready_to_startup; // when DB start (except failover), the flag will set true

View File

@ -43,7 +43,7 @@ int SSReadXlogInternal(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr, XL
int readLen);
XLogReaderState *SSXLogReaderAllocate(XLogPageReadCB pagereadfunc, void *private_data, Size alignedSize);
void SSGetRecoveryXlogPath();
void SSSaveReformerCtrl(bool force = false);
void SSUpdateReformerCtrl();
void SSReadControlFile(int id, bool updateDmsCtx = false);
void SSClearSegCache();
int SSCancelTransactionOfAllStandby(SSBroadcastOp type);

View File

@ -111,5 +111,7 @@ int SSProcessDropSegSpace(char *data, uint32 len);
int SSCheckDbBackends(char *data, uint32 len, char *output_msg, uint32 *output_msg_len);
int SSCheckDbBackendsAck(char *data, unsigned int len);
bool SSCheckDbBackendsFromAllStandby(Oid dbid);
int SSReloadReformCtrlPage(uint32 len);
void SSRequestAllStandbyReloadReformCtrlPage();
#endif

View File

@ -37,7 +37,6 @@
/*****************************************************************************
* Backend version and inplace upgrade staffs
*****************************************************************************/
extern const uint32 ONDEMAND_REDO_VERSION_NUM;
extern const uint32 SRF_FUSION_VERSION_NUM;
extern const uint32 INNER_UNIQUE_VERSION_NUM;
extern const uint32 PARTITION_ENHANCE_VERSION_NUM;
@ -132,7 +131,6 @@ extern const uint32 CREATE_TABLE_AS_VERSION_NUM;
extern void register_backend_version(uint32 backend_version);
extern bool contain_backend_version(uint32 version_number);
extern void SSUpgradeFileBeforeCommit();
#define INPLACE_UPGRADE_PRECOMMIT_VERSION 1