提交 fa8b8384 编写于 作者: J jk0 提交者: LINGuanRen

modify upgrade scripts&&support system variables session_track_*

上级 ed22c8da
......@@ -4,9 +4,9 @@ include(cmake/Utils.cmake)
include(cmake/Env.cmake)
project("OceanBase CE"
VERSION 3.1.1
VERSION 3.1.2
DESCRIPTION "OceanBase distributed database system"
HOMEPAGE_URL "https://www.oceanbase.com/"
HOMEPAGE_URL "https://open.oceanbase.com/"
LANGUAGES CXX C ASM)
ob_define(WITH_OSS OFF)
......
......@@ -47,6 +47,15 @@ install(PROGRAMS
install(FILES
tools/timezone/timezone_V1.log
tools/upgrade/upgrade_pre.py
tools/upgrade/upgrade_post.py
tools/upgrade/upgrade_post_checker.py
tools/upgrade/upgrade_checker.py
tools/upgrade/upgrade_cluster_health_checker.py
tools/upgrade/upgrade_rolling_pre.py
tools/upgrade/upgrade_rolling_post.py
tools/upgrade/priv_checker.py
tools/upgrade/oceanbase_upgrade_dep.yml
DESTINATION etc
COMPONENT server)
......
......@@ -93,11 +93,12 @@ uint64_t cal_version(const uint64_t major, const uint64_t minor, const uint64_t
#define CLUSTER_VERSION_3000 (oceanbase::common::cal_version(3, 0, 0))
#define CLUSTER_VERSION_3100 (oceanbase::common::cal_version(3, 1, 0))
#define CLUSTER_VERSION_311 (oceanbase::common::cal_version(3, 1, 1))
#define CLUSTER_VERSION_312 (oceanbase::common::cal_version(3, 1, 2))
#define CLUSTER_VERSION_MAX UINT64_MAX
// FIXME If you update the above version, please update me, CLUSTER_CURRENT_VERSION & ObUpgradeChecker!!!!!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#define CLUSTER_CURRENT_VERSION CLUSTER_VERSION_311
#define CLUSTER_CURRENT_VERSION CLUSTER_VERSION_312
#define GET_MIN_CLUSTER_VERSION() (oceanbase::common::ObClusterVersion::get_instance().get_cluster_version())
#define GET_UNIS_CLUSTER_VERSION() (::oceanbase::lib::get_unis_compat_version() ?: GET_MIN_CLUSTER_VERSION())
......
......@@ -30,39 +30,8 @@ using namespace rootserver;
namespace share {
#define CALC_CLUSTER_VERSION(major, minor, patch) (((major) << 32) + ((minor) << 16) + (patch))
const uint64_t ObUpgradeChecker::UPGRADE_PATH[CLUTER_VERSION_NUM] = {
CALC_CLUSTER_VERSION(1UL, 4UL, 3UL), // 1.4.3
CALC_CLUSTER_VERSION(1UL, 4UL, 40UL), // 1.4.40
CALC_CLUSTER_VERSION(1UL, 4UL, 50UL), // 1.4.50
CALC_CLUSTER_VERSION(1UL, 4UL, 51UL), // 1.4.51
CALC_CLUSTER_VERSION(1UL, 4UL, 60UL), // 1.4.60
CALC_CLUSTER_VERSION(1UL, 4UL, 61UL), // 1.4.61
CALC_CLUSTER_VERSION(1UL, 4UL, 70UL), // 1.4.70
CALC_CLUSTER_VERSION(1UL, 4UL, 71UL), // 1.4.71
CALC_CLUSTER_VERSION(1UL, 4UL, 72UL), // 1.4.72
CALC_CLUSTER_VERSION(1UL, 4UL, 76UL), // 1.4.76
CALC_CLUSTER_VERSION(2UL, 0UL, 0UL), // 2.0.0
CALC_CLUSTER_VERSION(2UL, 1UL, 0UL), // 2.1.0
CALC_CLUSTER_VERSION(2UL, 1UL, 1UL), // 2.1.1
CALC_CLUSTER_VERSION(2UL, 1UL, 11UL), // 2.1.11
CALC_CLUSTER_VERSION(2UL, 1UL, 20UL), // 2.1.20
CALC_CLUSTER_VERSION(2UL, 1UL, 30UL), // 2.1.30
CALC_CLUSTER_VERSION(2UL, 1UL, 31UL), // 2.1.31
CALC_CLUSTER_VERSION(2UL, 2UL, 0UL), // 2.2.0
CALC_CLUSTER_VERSION(2UL, 2UL, 1UL), // 2.2.1
CALC_CLUSTER_VERSION(2UL, 2UL, 20UL), // 2.2.20
CALC_CLUSTER_VERSION(2UL, 2UL, 30UL), // 2.2.30
CALC_CLUSTER_VERSION(2UL, 2UL, 40UL), // 2.2.40
CALC_CLUSTER_VERSION(2UL, 2UL, 50UL), // 2.2.50
CALC_CLUSTER_VERSION(2UL, 2UL, 60UL), // 2.2.60
CALC_CLUSTER_VERSION(2UL, 2UL, 70UL), // 2.2.70
CALC_CLUSTER_VERSION(2UL, 2UL, 71UL), // 2.2.71
CALC_CLUSTER_VERSION(2UL, 2UL, 72UL), // 2.2.72
CALC_CLUSTER_VERSION(2UL, 2UL, 73UL), // 2.2.73
CALC_CLUSTER_VERSION(2UL, 2UL, 74UL), // 2.2.74
CALC_CLUSTER_VERSION(2UL, 2UL, 75UL), // 2.2.75
CALC_CLUSTER_VERSION(2UL, 2UL, 76UL), // 2.2.76
CALC_CLUSTER_VERSION(3UL, 1UL, 0UL), // 3.1.0
CALC_CLUSTER_VERSION(3UL, 1UL, 1UL) //3.1.1
CALC_CLUSTER_VERSION(3UL, 1UL, 1UL), //3.1.1
CALC_CLUSTER_VERSION(3UL, 1UL, 2UL) //3.1.2
};
bool ObUpgradeChecker::check_cluster_version_exist(const uint64_t version)
......@@ -1117,16 +1086,8 @@ int ObUpgradeProcesserSet::init(ObBaseUpgradeProcessor::UpgradeMode mode, common
} \
}
// order by cluster version asc
INIT_PROCESSOR_BY_VERSION(2, 2, 60);
INIT_PROCESSOR_BY_VERSION(2, 2, 70);
INIT_PROCESSOR_BY_VERSION(2, 2, 71);
INIT_PROCESSOR_BY_VERSION(2, 2, 72);
INIT_PROCESSOR_BY_VERSION(2, 2, 73);
INIT_PROCESSOR_BY_VERSION(2, 2, 74);
INIT_PROCESSOR_BY_VERSION(2, 2, 75);
INIT_PROCESSOR_BY_VERSION(2, 2, 76);
INIT_PROCESSOR_BY_VERSION(3, 1, 0);
INIT_PROCESSOR_BY_VERSION(3, 1, 1);
INIT_PROCESSOR_BY_VERSION(3, 1, 2);
#undef INIT_PROCESSOR_BY_VERSION
inited_ = true;
}
......
......@@ -181,7 +181,7 @@ public:
static bool check_cluster_version_exist(const uint64_t version);
public:
static const int64_t CLUTER_VERSION_NUM = 33;
static const int64_t CLUTER_VERSION_NUM = 2;
static const uint64_t UPGRADE_PATH[CLUTER_VERSION_NUM];
};
......@@ -231,6 +231,7 @@ DEF_SIMPLE_UPGRARD_PROCESSER(2, 2, 76);
// 3.1.0
DEF_SIMPLE_UPGRARD_PROCESSER(3, 1, 0);
DEF_SIMPLE_UPGRARD_PROCESSER(3, 1, 1);
DEF_SIMPLE_UPGRARD_PROCESSER(3, 1, 2);
/* =========== upgrade processor end ============= */
......
......@@ -275,7 +275,6 @@ DEF_BOOL(_enable_static_typing_engine, OB_CLUSTER_PARAMETER, "True",
"specifies whether static typing sql execution engine is activated",
ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE));
// https://yuque.antfin-inc.com/ob/product_functionality_review/zlp56c
DEF_BOOL(_enable_defensive_check, OB_CLUSTER_PARAMETER, "True",
"specifies whether allow to do some defensive checks when the query is executed",
ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE));
......@@ -519,7 +518,7 @@ DEF_TIME(get_leader_candidate_rpc_timeout, OB_CLUSTER_PARAMETER, "9s", "[2s, 180
"the time during a get leader candidate rpc request "
"is permitted to execute before it is terminated. Range: [2s, 180s]",
ObParameterAttr(Section::ROOT_SERVICE, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE));
DEF_STR(min_observer_version, OB_CLUSTER_PARAMETER, "3.1.1", "the min observer version",
DEF_STR(min_observer_version, OB_CLUSTER_PARAMETER, "3.1.2", "the min observer version",
ObParameterAttr(Section::ROOT_SERVICE, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE));
DEF_BOOL(enable_ddl, OB_CLUSTER_PARAMETER, "True",
"specifies whether DDL operation is turned on. "
......
此差异已折叠。
......@@ -14,9 +14,12 @@
#define OCEANBASE_SHARE_SYSTEM_VARIABLE_OB_SYS_VAR_CLASS_TYPE_
#include <stdint.h>
namespace oceanbase {
namespace share {
enum ObSysVarClassType {
namespace oceanbase
{
namespace share
{
enum ObSysVarClassType
{
SYS_VAR_INVALID = -1,
SYS_VAR_AUTO_INCREMENT_INCREMENT = 0,
SYS_VAR_AUTO_INCREMENT_OFFSET = 1,
......@@ -99,6 +102,9 @@ enum ObSysVarClassType {
SYS_VAR_VERSION_COMPILE_MACHINE = 78,
SYS_VAR_VERSION_COMPILE_OS = 79,
SYS_VAR_WARNING_COUNT = 80,
SYS_VAR_SESSION_TRACK_SCHEMA = 81,
SYS_VAR_SESSION_TRACK_SYSTEM_VARIABLES = 82,
SYS_VAR_SESSION_TRACK_STATE_CHANGE = 83,
SYS_VAR_OB_DEFAULT_REPLICA_NUM = 10000,
SYS_VAR_OB_INTERM_RESULT_MEM_LIMIT = 10001,
SYS_VAR_OB_PROXY_PARTITION_HIT = 10002,
......@@ -216,5 +222,5 @@ enum ObSysVarClassType {
};
}
} // namespace oceanbase
#endif // OCEANBASE_SHARE_SYSTEM_VARIABLE_OB_SYS_VAR_CLASS_TYPE_
\ No newline at end of file
}
#endif //OCEANBASE_SHARE_SYSTEM_VARIABLE_OB_SYS_VAR_CLASS_TYPE_
......@@ -15,9 +15,13 @@
#include "share/system_variable/ob_sys_var_class_type.h"
#include <stdint.h>
#include "common/object/ob_object.h"
namespace oceanbase {
namespace share {
struct ObSysVarFlag {
namespace oceanbase
{
namespace share
{
// ObSysVarFlag的值不可随意增删改, 有任何增删改要同时同步到sql/session/gen_ob_sys_variables.py的flag_value_dict变量中
struct ObSysVarFlag
{
const static int64_t NONE = 0LL;
const static int64_t GLOBAL_SCOPE = 1LL;
const static int64_t SESSION_SCOPE = (1LL << 1);
......@@ -33,7 +37,7 @@ struct ObSysVarFlag {
const static int64_t WITH_UPGRADE = (1LL << 11);
const static int64_t MYSQL_ONLY = (1LL << 12);
};
struct ObSysVarFromJson {
struct ObSysVarFromJson{
ObSysVarClassType id_;
common::ObString name_;
common::ObObjType data_type_;
......@@ -52,28 +56,11 @@ struct ObSysVarFromJson {
common::ObString get_meta_type_func_;
common::ObString session_special_update_func_;
ObSysVarFromJson()
: id_(SYS_VAR_INVALID),
name_(""),
data_type_(common::ObNullType),
value_(""),
min_val_(""),
max_val_(""),
enum_names_(""),
info_(""),
flags_(ObSysVarFlag::NONE),
alias_(""),
base_class_(""),
on_check_and_convert_func_(),
on_update_func_(),
to_select_obj_func_(),
to_show_str_func_(),
get_meta_type_func_(),
session_special_update_func_()
{}
ObSysVarFromJson():id_(SYS_VAR_INVALID), name_(""), data_type_(common::ObNullType), value_(""), min_val_(""), max_val_(""), enum_names_(""), info_(""), flags_(ObSysVarFlag::NONE), alias_(""), base_class_(""), on_check_and_convert_func_(), on_update_func_(), to_select_obj_func_(), to_show_str_func_(), get_meta_type_func_(), session_special_update_func_() {}
};
class ObSysVariables {
class ObSysVariables
{
public:
static int64_t get_all_sys_var_count();
static ObSysVarClassType get_sys_var_id(int64_t i);
......@@ -88,20 +75,21 @@ public:
static bool is_oracle_only(int64_t i);
static bool is_mysql_only(int64_t i);
static common::ObString get_alias(int64_t i);
static const common::ObObj& get_default_value(int64_t i);
static const common::ObObj &get_default_value(int64_t i);
static int64_t get_amount();
static int set_value(const char* name, const char* new_value);
static int set_value(const common::ObString& name, const common::ObString& new_value);
static int set_value(const char *name, const char * new_value);
static int set_value(const common::ObString &name, const common::ObString &new_value);
static int init_default_values();
};
class ObSysVarsToIdxMap {
class ObSysVarsToIdxMap
{
public:
static int64_t get_store_idx(int64_t var_id);
static bool has_invalid_sys_var_id();
};
} // end namespace share
} // end namespace oceanbase
} // end namespace share
} // end namespace oceanbase
#endif /* OCEANBASE_SHARE_SYSTEM_VARIABLE_OB_SYSTEM_VARIABLE_INIT_ */
......@@ -1099,6 +1099,42 @@
"background_cn": "",
"ref_url": ""
},
"session_track_schema": {
"id": 81,
"name": "session_track_schema",
"value": "1",
"data_type": "bool",
"info": "specifies whether return schema change info in ok packet",
"flags": "GLOBAL | SESSION | MYSQL_ONLY",
"publish_version": "312",
"info_cn": "控制返回的ok包中是否包含schema变更的信息",
"background_cn": "",
"ref_url": "ob/product_functionality_review/pw3wd2"
},
"session_track_system_variables": {
"id": 82,
"name": "session_track_system_variables",
"value": "time_zone, autocommit, character_set_client, character_set_results, character_set_connection",
"data_type": "varchar",
"info": "specifies whether return system variables change info in ok packet",
"flags": "GLOBAL | SESSION | MYSQL_ONLY",
"publish_version": "312",
"info_cn": "控制返回的ok包中是否包含系统变量变更的信息",
"background_cn": "",
"ref_url": "ob/product_functionality_review/pw3wd2"
},
"session_track_state_change": {
"id": 83,
"name": "session_track_state_change",
"value": "0",
"data_type": "bool",
"info": "specifies whether return session state change info in ok packet",
"flags": "GLOBAL | SESSION | MYSQL_ONLY",
"publish_version": "312",
"info_cn": "控制返回的ok包中是否包含session状态变更的信息",
"background_cn": "",
"ref_url": "ob/product_functionality_review/pw3wd2"
},
"ob_default_replica_num": {
"id": 10000,
"name": "ob_default_replica_num",
......@@ -2441,7 +2477,7 @@
"publish_version": "226",
"info_cn": "限制导入导出功能访问的路径",
"background_cn": "导入导出功能未限制文件访问可能存在漏洞",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/sxwpug"
"ref_url": "ob/product_functionality_review/sxwpug"
},
"plsql_warnings": {
"id": 10103,
......@@ -2454,7 +2490,7 @@
"publish_version": "3.1.0",
"info_cn": "控制pl/sql编译器的报错行为, 可以指定某类型或某个warning码的状态为:enable, disable, error",
"background_cn": "pl/sql编译器的警告信息分成了几个分类, 这个系统参数可以控制这些警告信息的行为",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/xxibln"
"ref_url": "ob/product_functionality_review/xxibln"
},
"_enable_parallel_query": {
"id": 10104,
......@@ -2466,7 +2502,7 @@
"publish_version": "227",
"info_cn": "在session上打开parallel query配置项, 查询默认情况下才可以被并行执行(parallel>=2)",
"background_cn": "px上控制parallel的方式有很多, session上有对应的parallel的控制开关, 这个开关用于控制session级别的默认并行度是否可以大于等于2",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/tblezn"
"ref_url": "ob/product_functionality_review/tblezn"
},
"_force_parallel_query_dop": {
"id": 10105,
......@@ -2478,7 +2514,7 @@
"publish_version": "310",
"info_cn": "在session上打开parallel query配置项, 并指定默认并行度",
"background_cn": "px上控制parallel的方式有很多, session上有对应的parallel的控制开关, 这个变量用于设置session级别的 query 默认并行度大小",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/bpv992"
"ref_url": "ob/product_functionality_review/bpv992"
},
"_force_parallel_dml_dop": {
"id": 10106,
......@@ -2490,7 +2526,7 @@
"publish_version": "310",
"info_cn": "在session上打开parallel dml配置项, 并指定默认并行度.当未通过 hint 指定 dml 并行度时, 会使用本变量值作为默认并行度",
"background_cn": "px上控制parallel的方式有很多, session上有对应的parallel的控制开关, 这个变量用于设置session级别的 dml 默认并行度大小",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/bpv992"
"ref_url": "ob/product_functionality_review/bpv992"
},
"ob_pl_block_timeout": {
"id": 10107,
......@@ -2505,7 +2541,7 @@
"publish_version": "227",
"info_cn": "",
"background_cn": "",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/gry0a1"
"ref_url": "ob/product_functionality_review/gry0a1"
},
"transaction_read_only": {
"id": 10108,
......@@ -2521,7 +2557,7 @@
"publish_version": "320",
"info_cn": "控制是否只允许开启只读事务",
"background_cn": "用户可以通过这两个变量访问或者设置事务的访问模式, 当transaction_read_only设置为true时, 不允许执行dml语句",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/qcneoc"
"ref_url": "ob/product_functionality_review/qcneoc"
},
"resource_manager_plan": {
"id": 10109,
......@@ -2533,7 +2569,7 @@
"publish_version": "320",
"info_cn": "指定租户的资源隔离计划",
"background_cn": "租户内的普通线程和并行执行线程会相互抢占CPU资源, 通过给租户指定资源隔离计划, 可以控制资源抢占策略, 隔离资源使用量",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/do11tp"
"ref_url": "ob/product_functionality_review/do11tp"
},
"performance_schema": {
"id": 10110,
......@@ -2545,7 +2581,7 @@
"publish_version": "227",
"info_cn": "向客户端声明是否支持 performance 信息查询",
"background_cn": "纯兼容性变量.不支持 performance_schema 系统变量, 导致 8.0 JDBC 驱动在连接认证后初始化系统变量阶段执行 select @performance_schema 抛出异常",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/mg0sbv"
"ref_url": "ob/product_functionality_review/mg0sbv"
},
"nls_currency": {
"id": 10111,
......@@ -2557,7 +2593,7 @@
"publish_version": "320",
"info_cn": "L数字格式元素的本地货币符号",
"background_cn": "兼容 oracle number format model L 数字格式元素",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/efqk1r"
"ref_url": "ob/product_functionality_review/efqk1r"
},
"nls_iso_currency": {
"id": 10112,
......@@ -2569,7 +2605,7 @@
"publish_version": "320",
"info_cn": "C数字格式元素的国际货币符号",
"background_cn": "兼容 oracle number format model C 数字格式元素",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/efqk1r"
"ref_url": "ob/product_functionality_review/efqk1r"
},
"nls_dual_currency": {
"id": 10113,
......@@ -2581,7 +2617,7 @@
"publish_version": "320",
"info_cn": "U数字格式元素的双货币符号",
"background_cn": "兼容 oracle number format model U 数字格式元素",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/efqk1r"
"ref_url": "ob/product_functionality_review/efqk1r"
},
"_ob_proxy_session_temporary_table_used": {
"id": 10116,
......@@ -2593,6 +2629,6 @@
"publish_version": "310",
"info_cn": "标记当前Session是否使用过Session级别临时表,用于告知proxy并修改路由决策",
"background_cn": "为了解决Session临时表断链接时可能导致的问题,当Session临时表第一次使用后,后续请求Proxy只会路由到同一个Session",
"ref_url": "https://yuque.antfin-inc.com/ob/product_functionality_review/hinq1e"
"ref_url": "ob/product_functionality_review/hinq1e"
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册