fix GV$SESSION_LONGOPS.

This commit is contained in:
obdev 2023-04-10 07:54:09 +00:00 committed by ob-robot
parent 7fc53bfe13
commit 30fb08200c
15 changed files with 748 additions and 38 deletions

View File

@ -45,7 +45,7 @@ int ObAllVirtualLongOpsStatus::inner_get_next_row(ObNewRow *&row)
} else if (FALSE_IT(start_to_read_ = true)) {
} else if (!longops_iter_.is_inited() && OB_FAIL(ObLongopsMgr::get_instance().begin_iter(longops_iter_))) {
LOG_WARN("fail to begin longops iter", K(ret));
} else if (OB_FAIL(longops_iter_.get_next(longops_value_))) {
} else if (OB_FAIL(longops_iter_.get_next(effective_tenant_id_, longops_value_))) {
LOG_WARN("fail to get next longops value", K(ret));
} else {
for (int64_t i = 0; OB_SUCC(ret) && i < col_count; ++i) {

View File

@ -1090,6 +1090,7 @@ def gen_sys_agent_virtual_table_def(table_id, keywords):
new_keywords = __gen_oracle_vt_base_on_mysql(table_id, keywords, "_SYS_AGENT")
new_keywords["partition_expr"] = []
new_keywords["partition_columns"] = []
new_keywords["vtable_route_policy"] = "local"
all_only_sys_table_name[keywords["table_name"]] = True
all_agent_virtual_tables.append(new_keywords)
return new_keywords
@ -1097,7 +1098,7 @@ def gen_sys_agent_virtual_table_def(table_id, keywords):
def __gen_mysql_vt(table_id, keywords, table_name_suffix):
if keywords.has_key('in_tenant_space') and keywords['in_tenant_space']:
raise Exception("base table should not in_tenant_space")
elif 'SYSTEM_TABLE' != keywords['table_type']:
elif 'SYSTEM_TABLE' != keywords['table_type'] and 'VIRTUAL_TABLE' != keywords['table_type']:
raise Exception("unsupported table type", keywords['table_type'])
new_keywords = copy.deepcopy(keywords)
new_keywords["table_type"] = 'VIRTUAL_TABLE'
@ -1118,6 +1119,7 @@ def gen_mysql_sys_agent_virtual_table_def(table_id, keywords):
new_keywords = __gen_mysql_vt(table_id, keywords, "_mysql_sys_agent")
new_keywords["partition_expr"] = []
new_keywords["partition_columns"] = []
new_keywords["vtable_route_policy"] = "local"
mysql_compat_agent_tables[keywords["table_name"]] = True
all_agent_virtual_tables.append(new_keywords)
return new_keywords

View File

@ -3055,7 +3055,7 @@ int ObInnerTableSchema::all_virtual_long_ops_status_schema(ObTableSchema &table_
++column_id, //column_id
0, //rowkey_id
0, //index_id
1, //part_key_pos
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
MAX_IP_ADDR_LENGTH, //column_length
@ -3070,7 +3070,7 @@ int ObInnerTableSchema::all_virtual_long_ops_status_schema(ObTableSchema &table_
++column_id, //column_id
0, //rowkey_id
0, //index_id
2, //part_key_pos
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
@ -3199,16 +3199,6 @@ int ObInnerTableSchema::all_virtual_long_ops_status_schema(ObTableSchema &table_
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
table_schema.get_part_option().set_part_num(1);
table_schema.set_part_level(PARTITION_LEVEL_ONE);
table_schema.get_part_option().set_part_func_type(PARTITION_FUNC_TYPE_LIST_COLUMNS);
if (OB_FAIL(table_schema.get_part_option().set_part_expr("svr_ip, svr_port"))) {
LOG_WARN("set_part_expr failed", K(ret));
} else if (OB_FAIL(table_schema.mock_list_partition_array())) {
LOG_WARN("mock list partition array failed", K(ret));
}
}
table_schema.set_index_using_type(USING_HASH);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);

View File

@ -2754,6 +2754,260 @@ int ObInnerTableSchema::all_virtual_io_scheduler_schema(ObTableSchema &table_sch
return ret;
}
int ObInnerTableSchema::all_virtual_virtual_long_ops_status_mysql_sys_agent_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_SYS_DATABASE_ID);
table_schema.set_table_id(OB_ALL_VIRTUAL_VIRTUAL_LONG_OPS_STATUS_MYSQL_SYS_AGENT_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(0);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(VIRTUAL_TABLE);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_VIRTUAL_LONG_OPS_STATUS_MYSQL_SYS_AGENT_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("tenant_id", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("sid", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("op_name", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
MAX_LONG_OPS_NAME_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("target", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
MAX_LONG_OPS_TARGET_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("svr_ip", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
MAX_IP_ADDR_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("svr_port", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("start_time", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("finish_time", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("elapsed_time", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("remaining_time", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("last_update_time", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("percentage", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("message", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
MAX_LONG_OPS_MESSAGE_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("trace_id", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
OB_MAX_TRACE_ID_BUFFER_SIZE, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
table_schema.set_index_using_type(USING_HASH);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_max_used_column_id(column_id);
return ret;
}
} // end namespace share
} // end namespace oceanbase

View File

@ -8487,6 +8487,260 @@ int ObInnerTableSchema::all_virtual_archive_dest_status_ora_schema(ObTableSchema
return ret;
}
int ObInnerTableSchema::all_virtual_long_ops_status_sys_agent_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
table_schema.set_table_id(OB_ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(0);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(VIRTUAL_TABLE);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCollationType::CS_TYPE_UTF8MB4_BIN);
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("TENANT_ID", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("SID", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("OP_NAME", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
MAX_LONG_OPS_NAME_LENGTH, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("TARGET", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
MAX_LONG_OPS_TARGET_LENGTH, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("SVR_IP", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
MAX_IP_ADDR_LENGTH, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("SVR_PORT", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("START_TIME", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("FINISH_TIME", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("ELAPSED_TIME", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("REMAINING_TIME", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("LAST_UPDATE_TIME", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("PERCENTAGE", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("MESSAGE", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
MAX_LONG_OPS_MESSAGE_LENGTH, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("TRACE_ID", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
OB_MAX_TRACE_ID_BUFFER_SIZE, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
table_schema.set_index_using_type(USING_HASH);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_max_used_column_id(column_id);
return ret;
}
} // end namespace share
} // end namespace oceanbase

View File

@ -260,7 +260,7 @@ int ObInnerTableSchema::gv_session_longops_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(sid AS SIGNED) AS SID, CAST(trace_id AS CHAR(64)) AS TRACE_ID, CAST(op_name AS CHAR(64)) AS OPNAME, CAST(TARGET AS CHAR(64)) AS TARGET, CAST(SVR_IP AS CHAR(46)) AS SVR_IP, CAST(SVR_PORT AS SIGNED) AS SVR_PORT, CAST(USEC_TO_TIME(START_TIME) AS DATE) AS START_TIME, CAST(ELAPSED_TIME/1000000 AS SIGNED) AS ELAPSED_SECONDS, CAST(REMAINING_TIME AS SIGNED) AS TIME_REMAINING, CAST(USEC_TO_TIME(LAST_UPDATE_TIME) AS DATE) AS LAST_UPDATE_TIME, CAST(MESSAGE AS CHAR(512)) AS MESSAGE FROM oceanbase.__all_virtual_long_ops_status )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(sid AS SIGNED) AS SID, CAST(trace_id AS CHAR(64)) AS TRACE_ID, CAST(op_name AS CHAR(64)) AS OPNAME, CAST(TARGET AS CHAR(64)) AS TARGET, CAST(SVR_IP AS CHAR(46)) AS SVR_IP, CAST(SVR_PORT AS SIGNED) AS SVR_PORT, CAST(USEC_TO_TIME(START_TIME) AS DATE) AS START_TIME, CAST(ELAPSED_TIME/1000000 AS SIGNED) AS ELAPSED_SECONDS, CAST(REMAINING_TIME AS SIGNED) AS TIME_REMAINING, CAST(USEC_TO_TIME(LAST_UPDATE_TIME) AS DATE) AS LAST_UPDATE_TIME, CAST(MESSAGE AS CHAR(512)) AS MESSAGE FROM oceanbase.__all_virtual_virtual_long_ops_status_mysql_sys_agent )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}

View File

@ -575,6 +575,106 @@ int ObInnerTableSchema::dba_ob_ls_log_archive_progress_ora_schema(ObTableSchema
return ret;
}
int ObInnerTableSchema::gv_session_longops_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
table_schema.set_table_id(OB_GV_SESSION_LONGOPS_ORA_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(0);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(SYSTEM_VIEW);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_GV_SESSION_LONGOPS_ORA_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(sid AS NUMBER) AS SID, CAST(trace_id AS VARCHAR2(64)) AS TRACE_ID, CAST(op_name AS VARCHAR2(64)) AS OPNAME, CAST(TARGET AS VARCHAR2(64)) AS TARGET, CAST(SVR_IP AS VARCHAR2(46)) AS SVR_IP, CAST(SVR_PORT AS NUMBER) AS SVR_PORT, TO_CHAR(TO_DATE('19700101','YYYYMMDD') + START_TIME / 86400 / 1000000 + TO_NUMBER(SUBSTR(TZ_OFFSET(SESSIONTIMEZONE), 1, 3)) / 24) AS START_TIME, CAST(ELAPSED_TIME/1000000 AS NUMBER) AS ELAPSED_SECONDS, CAST(REMAINING_TIME AS NUMBER) AS TIME_REMAINING, TO_CHAR(TO_DATE('19700101','YYYYMMDD') + LAST_UPDATE_TIME / 86400 / 1000000 + TO_NUMBER(SUBSTR(TZ_OFFSET(SESSIONTIMEZONE), 1, 3)) / 24) AS LAST_UPDATE_TIME, CAST(MESSAGE AS VARCHAR2(512)) AS MESSAGE FROM SYS.ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_max_used_column_id(column_id);
return ret;
}
int ObInnerTableSchema::v_session_longops_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
table_schema.set_table_id(OB_V_SESSION_LONGOPS_ORA_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(0);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(SYSTEM_VIEW);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_V_SESSION_LONGOPS_ORA_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM SYS.GV$SESSION_LONGOPS WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_max_used_column_id(column_id);
return ret;
}
int ObInnerTableSchema::all_table_idx_data_table_id_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;

View File

@ -870,6 +870,7 @@ public:
static int all_virtual_ls_arb_replica_task_history_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_archive_dest_status_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_io_scheduler_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_virtual_long_ops_status_mysql_sys_agent_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_sql_audit_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_plan_stat_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_plan_cache_plan_explain_ora_schema(share::schema::ObTableSchema &table_schema);
@ -1077,6 +1078,7 @@ public:
static int all_virtual_ls_arb_replica_task_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_ls_arb_replica_task_history_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_archive_dest_status_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_long_ops_status_sys_agent_schema(share::schema::ObTableSchema &table_schema);
static int gv_ob_plan_cache_stat_schema(share::schema::ObTableSchema &table_schema);
static int gv_ob_plan_cache_plan_stat_schema(share::schema::ObTableSchema &table_schema);
static int schemata_schema(share::schema::ObTableSchema &table_schema);
@ -1734,6 +1736,8 @@ public:
static int dba_ob_user_defined_rules_ora_schema(share::schema::ObTableSchema &table_schema);
static int v_ob_archive_dest_status_ora_schema(share::schema::ObTableSchema &table_schema);
static int dba_ob_ls_log_archive_progress_ora_schema(share::schema::ObTableSchema &table_schema);
static int gv_session_longops_ora_schema(share::schema::ObTableSchema &table_schema);
static int v_session_longops_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_table_aux_lob_meta_schema(share::schema::ObTableSchema &table_schema);
static int all_column_aux_lob_meta_schema(share::schema::ObTableSchema &table_schema);
static int all_ddl_operation_aux_lob_meta_schema(share::schema::ObTableSchema &table_schema);
@ -2913,6 +2917,7 @@ const schema_create_func virtual_table_schema_creators [] = {
ObInnerTableSchema::all_virtual_ls_arb_replica_task_history_schema,
ObInnerTableSchema::all_virtual_archive_dest_status_schema,
ObInnerTableSchema::all_virtual_io_scheduler_schema,
ObInnerTableSchema::all_virtual_virtual_long_ops_status_mysql_sys_agent_schema,
ObInnerTableSchema::all_virtual_sql_plan_monitor_all_virtual_sql_plan_monitor_i1_schema,
ObInnerTableSchema::all_virtual_sql_audit_all_virtual_sql_audit_i1_schema,
ObInnerTableSchema::all_virtual_sysstat_all_virtual_sysstat_i1_schema,
@ -3129,6 +3134,7 @@ const schema_create_func virtual_table_schema_creators [] = {
ObInnerTableSchema::all_virtual_ls_arb_replica_task_ora_schema,
ObInnerTableSchema::all_virtual_ls_arb_replica_task_history_ora_schema,
ObInnerTableSchema::all_virtual_archive_dest_status_ora_schema,
ObInnerTableSchema::all_virtual_long_ops_status_sys_agent_schema,
ObInnerTableSchema::all_virtual_sql_plan_monitor_ora_all_virtual_sql_plan_monitor_i1_schema,
ObInnerTableSchema::all_virtual_system_event_ora_all_virtual_system_event_i1_schema,
ObInnerTableSchema::all_virtual_sysstat_ora_all_virtual_sysstat_i1_schema,
@ -3797,6 +3803,8 @@ const schema_create_func sys_view_schema_creators [] = {
ObInnerTableSchema::dba_ob_user_defined_rules_ora_schema,
ObInnerTableSchema::v_ob_archive_dest_status_ora_schema,
ObInnerTableSchema::dba_ob_ls_log_archive_progress_ora_schema,
ObInnerTableSchema::gv_session_longops_ora_schema,
ObInnerTableSchema::v_session_longops_ora_schema,
NULL,};
const schema_create_func core_index_table_schema_creators [] = {
@ -4175,7 +4183,6 @@ const uint64_t tenant_space_tables [] = {
OB_ALL_VIRTUAL_PROXY_PARTITION_INFO_TID,
OB_ALL_VIRTUAL_PROXY_PARTITION_TID,
OB_ALL_VIRTUAL_PROXY_SUB_PARTITION_TID,
OB_ALL_VIRTUAL_LONG_OPS_STATUS_TID,
OB_TENANT_VIRTUAL_SHOW_CREATE_TABLEGROUP_TID,
OB_ALL_VIRTUAL_TENANT_PARAMETER_STAT_TID,
OB_ALL_VIRTUAL_SERVER_SCHEMA_INFO_TID,
@ -4276,6 +4283,7 @@ const uint64_t tenant_space_tables [] = {
OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_TID,
OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY_TID,
OB_ALL_VIRTUAL_ARCHIVE_DEST_STATUS_TID,
OB_ALL_VIRTUAL_VIRTUAL_LONG_OPS_STATUS_MYSQL_SYS_AGENT_TID,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TID,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_ALL_VIRTUAL_SQL_AUDIT_I1_TID,
OB_ALL_VIRTUAL_PLAN_STAT_ORA_TID,
@ -4491,6 +4499,7 @@ const uint64_t tenant_space_tables [] = {
OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_ORA_TID,
OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY_ORA_TID,
OB_ALL_VIRTUAL_ARCHIVE_DEST_STATUS_ORA_TID,
OB_ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT_TID,
OB_GV_OB_PLAN_CACHE_STAT_TID,
OB_GV_OB_PLAN_CACHE_PLAN_STAT_TID,
OB_SCHEMATA_TID,
@ -5071,6 +5080,8 @@ const uint64_t tenant_space_tables [] = {
OB_DBA_OB_USER_DEFINED_RULES_ORA_TID,
OB_V_OB_ARCHIVE_DEST_STATUS_ORA_TID,
OB_DBA_OB_LS_LOG_ARCHIVE_PROGRESS_ORA_TID,
OB_GV_SESSION_LONGOPS_ORA_TID,
OB_V_SESSION_LONGOPS_ORA_TID,
OB_ALL_TABLE_IDX_DATA_TABLE_ID_TID,
OB_ALL_TABLE_IDX_DB_TB_NAME_TID,
OB_ALL_TABLE_IDX_TB_NAME_TID,
@ -6089,7 +6100,6 @@ const char* const tenant_space_table_names [] = {
OB_ALL_VIRTUAL_PROXY_PARTITION_INFO_TNAME,
OB_ALL_VIRTUAL_PROXY_PARTITION_TNAME,
OB_ALL_VIRTUAL_PROXY_SUB_PARTITION_TNAME,
OB_ALL_VIRTUAL_LONG_OPS_STATUS_TNAME,
OB_TENANT_VIRTUAL_SHOW_CREATE_TABLEGROUP_TNAME,
OB_ALL_VIRTUAL_TENANT_PARAMETER_STAT_TNAME,
OB_ALL_VIRTUAL_SERVER_SCHEMA_INFO_TNAME,
@ -6190,6 +6200,7 @@ const char* const tenant_space_table_names [] = {
OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_TNAME,
OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY_TNAME,
OB_ALL_VIRTUAL_ARCHIVE_DEST_STATUS_TNAME,
OB_ALL_VIRTUAL_VIRTUAL_LONG_OPS_STATUS_MYSQL_SYS_AGENT_TNAME,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TNAME,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_ALL_VIRTUAL_SQL_AUDIT_I1_TNAME,
OB_ALL_VIRTUAL_PLAN_STAT_ORA_TNAME,
@ -6405,6 +6416,7 @@ const char* const tenant_space_table_names [] = {
OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_ORA_TNAME,
OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY_ORA_TNAME,
OB_ALL_VIRTUAL_ARCHIVE_DEST_STATUS_ORA_TNAME,
OB_ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT_TNAME,
OB_GV_OB_PLAN_CACHE_STAT_TNAME,
OB_GV_OB_PLAN_CACHE_PLAN_STAT_TNAME,
OB_SCHEMATA_TNAME,
@ -6985,6 +6997,8 @@ const char* const tenant_space_table_names [] = {
OB_DBA_OB_USER_DEFINED_RULES_ORA_TNAME,
OB_V_OB_ARCHIVE_DEST_STATUS_ORA_TNAME,
OB_DBA_OB_LS_LOG_ARCHIVE_PROGRESS_ORA_TNAME,
OB_GV_SESSION_LONGOPS_ORA_TNAME,
OB_V_SESSION_LONGOPS_ORA_TNAME,
OB_ALL_TABLE_IDX_DATA_TABLE_ID_TNAME,
OB_ALL_TABLE_IDX_DB_TB_NAME_TNAME,
OB_ALL_TABLE_IDX_TB_NAME_TNAME,
@ -7501,6 +7515,7 @@ const char* const tenant_space_table_names [] = {
const uint64_t only_rs_vtables [] = {
OB_ALL_VIRTUAL_CORE_META_TABLE_TID,
OB_ALL_VIRTUAL_UPGRADE_INSPECTION_TID,
OB_ALL_VIRTUAL_LONG_OPS_STATUS_TID,
OB_ALL_VIRTUAL_BACKUP_SCHEDULE_TASK_TID,
OB_ALL_VIRTUAL_LS_REPLICA_TASK_PLAN_TID,
OB_ALL_VIRTUAL_LS_REPLICA_TASK_PLAN_ORA_TID, };
@ -7587,7 +7602,6 @@ const uint64_t tenant_distributed_vtables [] = {
OB_ALL_VIRTUAL_TRACE_SPAN_INFO_TID,
OB_ALL_VIRTUAL_PLAN_CACHE_PLAN_EXPLAIN_TID,
OB_ALL_VIRTUAL_OBRPC_STAT_TID,
OB_ALL_VIRTUAL_LONG_OPS_STATUS_TID,
OB_ALL_VIRTUAL_TENANT_PARAMETER_STAT_TID,
OB_ALL_VIRTUAL_SERVER_SCHEMA_INFO_TID,
OB_ALL_VIRTUAL_TABLET_ENCRYPT_INFO_TID,
@ -9814,11 +9828,11 @@ static inline int get_sys_table_lob_aux_schema(const uint64_t tid,
const int64_t OB_CORE_TABLE_COUNT = 4;
const int64_t OB_SYS_TABLE_COUNT = 230;
const int64_t OB_VIRTUAL_TABLE_COUNT = 575;
const int64_t OB_SYS_VIEW_COUNT = 657;
const int64_t OB_SYS_TENANT_TABLE_COUNT = 1467;
const int64_t OB_VIRTUAL_TABLE_COUNT = 577;
const int64_t OB_SYS_VIEW_COUNT = 659;
const int64_t OB_SYS_TENANT_TABLE_COUNT = 1471;
const int64_t OB_CORE_SCHEMA_VERSION = 1;
const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 1470;
const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 1474;
} // end namespace share
} // end namespace oceanbase

View File

@ -612,6 +612,7 @@ const uint64_t OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_TID = 12364; // "__all_virtual
const uint64_t OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY_TID = 12365; // "__all_virtual_ls_arb_replica_task_history"
const uint64_t OB_ALL_VIRTUAL_ARCHIVE_DEST_STATUS_TID = 12366; // "__all_virtual_archive_dest_status"
const uint64_t OB_ALL_VIRTUAL_IO_SCHEDULER_TID = 12369; // "__all_virtual_io_scheduler"
const uint64_t OB_ALL_VIRTUAL_VIRTUAL_LONG_OPS_STATUS_MYSQL_SYS_AGENT_TID = 12393; // "__all_virtual_virtual_long_ops_status_mysql_sys_agent"
const uint64_t OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TID = 15009; // "ALL_VIRTUAL_SQL_AUDIT_ORA"
const uint64_t OB_ALL_VIRTUAL_PLAN_STAT_ORA_TID = 15010; // "ALL_VIRTUAL_PLAN_STAT_ORA"
const uint64_t OB_ALL_VIRTUAL_PLAN_CACHE_PLAN_EXPLAIN_ORA_TID = 15012; // "ALL_VIRTUAL_PLAN_CACHE_PLAN_EXPLAIN_ORA"
@ -819,6 +820,7 @@ const uint64_t OB_ALL_VIRTUAL_TRANS_SCHEDULER_ORA_TID = 15287; // "ALL_VIRTUAL_T
const uint64_t OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_ORA_TID = 15288; // "ALL_VIRTUAL_LS_ARB_REPLICA_TASK_ORA"
const uint64_t OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY_ORA_TID = 15289; // "ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY_ORA"
const uint64_t OB_ALL_VIRTUAL_ARCHIVE_DEST_STATUS_ORA_TID = 15290; // "ALL_VIRTUAL_ARCHIVE_DEST_STATUS_ORA"
const uint64_t OB_ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT_TID = 15297; // "ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT"
const uint64_t OB_GV_OB_PLAN_CACHE_STAT_TID = 20001; // "GV$OB_PLAN_CACHE_STAT"
const uint64_t OB_GV_OB_PLAN_CACHE_PLAN_STAT_TID = 20002; // "GV$OB_PLAN_CACHE_PLAN_STAT"
const uint64_t OB_SCHEMATA_TID = 20003; // "SCHEMATA"
@ -1476,6 +1478,8 @@ const uint64_t OB_V_OB_TRANSACTION_SCHEDULERS_ORA_TID = 28160; // "V$OB_TRANSACT
const uint64_t OB_DBA_OB_USER_DEFINED_RULES_ORA_TID = 28171; // "DBA_OB_USER_DEFINED_RULES_ORA"
const uint64_t OB_V_OB_ARCHIVE_DEST_STATUS_ORA_TID = 28176; // "V$OB_ARCHIVE_DEST_STATUS_ORA"
const uint64_t OB_DBA_OB_LS_LOG_ARCHIVE_PROGRESS_ORA_TID = 28177; // "DBA_OB_LS_LOG_ARCHIVE_PROGRESS_ORA"
const uint64_t OB_GV_SESSION_LONGOPS_ORA_TID = 28185; // "GV$SESSION_LONGOPS_ORA"
const uint64_t OB_V_SESSION_LONGOPS_ORA_TID = 28186; // "V$SESSION_LONGOPS_ORA"
const uint64_t OB_ALL_TABLE_AUX_LOB_META_TID = 50003; // "__all_table_aux_lob_meta"
const uint64_t OB_ALL_COLUMN_AUX_LOB_META_TID = 50004; // "__all_column_aux_lob_meta"
const uint64_t OB_ALL_DDL_OPERATION_AUX_LOB_META_TID = 50005; // "__all_ddl_operation_aux_lob_meta"
@ -2639,6 +2643,7 @@ const char *const OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_TNAME = "__all_virtual_ls_a
const char *const OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY_TNAME = "__all_virtual_ls_arb_replica_task_history";
const char *const OB_ALL_VIRTUAL_ARCHIVE_DEST_STATUS_TNAME = "__all_virtual_archive_dest_status";
const char *const OB_ALL_VIRTUAL_IO_SCHEDULER_TNAME = "__all_virtual_io_scheduler";
const char *const OB_ALL_VIRTUAL_VIRTUAL_LONG_OPS_STATUS_MYSQL_SYS_AGENT_TNAME = "__all_virtual_virtual_long_ops_status_mysql_sys_agent";
const char *const OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TNAME = "ALL_VIRTUAL_SQL_AUDIT";
const char *const OB_ALL_VIRTUAL_PLAN_STAT_ORA_TNAME = "ALL_VIRTUAL_PLAN_STAT";
const char *const OB_ALL_VIRTUAL_PLAN_CACHE_PLAN_EXPLAIN_ORA_TNAME = "ALL_VIRTUAL_PLAN_CACHE_PLAN_EXPLAIN";
@ -2846,6 +2851,7 @@ const char *const OB_ALL_VIRTUAL_TRANS_SCHEDULER_ORA_TNAME = "ALL_VIRTUAL_TRANS_
const char *const OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_ORA_TNAME = "ALL_VIRTUAL_LS_ARB_REPLICA_TASK";
const char *const OB_ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY_ORA_TNAME = "ALL_VIRTUAL_LS_ARB_REPLICA_TASK_HISTORY";
const char *const OB_ALL_VIRTUAL_ARCHIVE_DEST_STATUS_ORA_TNAME = "ALL_VIRTUAL_ARCHIVE_DEST_STATUS";
const char *const OB_ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT_TNAME = "ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT";
const char *const OB_GV_OB_PLAN_CACHE_STAT_TNAME = "GV$OB_PLAN_CACHE_STAT";
const char *const OB_GV_OB_PLAN_CACHE_PLAN_STAT_TNAME = "GV$OB_PLAN_CACHE_PLAN_STAT";
const char *const OB_SCHEMATA_TNAME = "SCHEMATA";
@ -3503,6 +3509,8 @@ const char *const OB_V_OB_TRANSACTION_SCHEDULERS_ORA_TNAME = "V$OB_TRANSACTION_S
const char *const OB_DBA_OB_USER_DEFINED_RULES_ORA_TNAME = "DBA_OB_USER_DEFINED_RULES";
const char *const OB_V_OB_ARCHIVE_DEST_STATUS_ORA_TNAME = "V$OB_ARCHIVE_DEST_STATUS";
const char *const OB_DBA_OB_LS_LOG_ARCHIVE_PROGRESS_ORA_TNAME = "DBA_OB_LS_LOG_ARCHIVE_PROGRESS";
const char *const OB_GV_SESSION_LONGOPS_ORA_TNAME = "GV$SESSION_LONGOPS";
const char *const OB_V_SESSION_LONGOPS_ORA_TNAME = "V$SESSION_LONGOPS";
const char *const OB_ALL_TABLE_AUX_LOB_META_TNAME = "__all_table_aux_lob_meta";
const char *const OB_ALL_COLUMN_AUX_LOB_META_TNAME = "__all_column_aux_lob_meta";
const char *const OB_ALL_DDL_OPERATION_AUX_LOB_META_TNAME = "__all_ddl_operation_aux_lob_meta";

View File

@ -7356,7 +7356,6 @@ def_table_schema(
table_name = '__all_virtual_long_ops_status',
table_id = '11081',
table_type = 'VIRTUAL_TABLE',
in_tenant_space = True,
gm_columns = [],
rowkey_columns = [
],
@ -7377,9 +7376,7 @@ def_table_schema(
('message', 'varchar:MAX_LONG_OPS_MESSAGE_LENGTH'),
('trace_id', 'varchar:OB_MAX_TRACE_ID_BUFFER_SIZE'),
],
partition_columns = ['svr_ip', 'svr_port'],
vtable_route_policy = 'distributed',
vtable_route_policy = 'only_rs',
)
# 11082: __all_virtual_rebalance_unit_migrate_stat is deprecated in 4.0.
@ -11447,7 +11444,7 @@ def_table_schema(
# 12390: __all_virtual_wr_statname
# 12391: __all_virtual_wr_sysstat
# 12392: __all_virtual_kv_connection
# 12393: __all_virtual_virtual_long_ops_status_mysql_sys_agent
def_table_schema(**gen_mysql_sys_agent_virtual_table_def('12393', all_def_keywords['__all_virtual_long_ops_status']))
# 12394: __all_virtual_ls_transfer_member_list_lock_info
#
# 余留位置
@ -11734,7 +11731,7 @@ def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15290'
# 15294: __all_task_opt_stat_gather_history
# 15295: __all_table_opt_stat_gather_history
# 15296: __all_virtual_opt_stat_gather_monitor
# 15297: __all_virtual_long_ops_status_ora
def_table_schema(**gen_sys_agent_virtual_table_def('15297', all_def_keywords['__all_virtual_long_ops_status']))
# 15298: __all_virtual_thread
# 15299: __all_virtual_wr_active_session_history
# 15300: __all_virtual_wr_snapshot
@ -11742,7 +11739,7 @@ def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15290'
# 15302: __all_virtual_wr_sysstat
# 15303: __all_virtual_arbitration_member_info
# 15304: __all_virtual_arbitration_service_status
# 15305: ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT
# [15306, 15375] for oracle inner_table index
################################################################################
@ -13814,7 +13811,7 @@ def_table_schema(
CAST(REMAINING_TIME AS SIGNED) AS TIME_REMAINING,
CAST(USEC_TO_TIME(LAST_UPDATE_TIME) AS DATE) AS LAST_UPDATE_TIME,
CAST(MESSAGE AS CHAR(512)) AS MESSAGE
FROM oceanbase.__all_virtual_long_ops_status
FROM oceanbase.__all_virtual_virtual_long_ops_status_mysql_sys_agent
""".replace("\n", " ")
)
@ -48532,8 +48529,53 @@ def_table_schema(
# 28182: DBA_OB_DATA_DICTIONARY_IN_LOG
# 28183: GV$OB_OPT_STAT_GATHER_MONITOR
# 28184: V$OB_OPT_STAT_GATHER_MONITOR
# 28185: GV$SESSION_LONGOPS_ORA
# 28186: V$SESSION_LONGOPS_ORA
def_table_schema(
owner = 'zhenjiang.xzj',
table_name = 'GV$SESSION_LONGOPS',
name_postfix = '_ORA',
database_id = 'OB_ORA_SYS_DATABASE_ID',
table_id = '28185',
table_type = 'SYSTEM_VIEW',
rowkey_columns = [],
normal_columns = [],
gm_columns = [],
in_tenant_space = True,
view_definition = """
SELECT CAST(sid AS NUMBER) AS SID,
CAST(trace_id AS VARCHAR2(64)) AS TRACE_ID,
CAST(op_name AS VARCHAR2(64)) AS OPNAME,
CAST(TARGET AS VARCHAR2(64)) AS TARGET,
CAST(SVR_IP AS VARCHAR2(46)) AS SVR_IP,
CAST(SVR_PORT AS NUMBER) AS SVR_PORT,
TO_CHAR(TO_DATE('19700101','YYYYMMDD') + START_TIME / 86400 / 1000000
+ TO_NUMBER(SUBSTR(TZ_OFFSET(SESSIONTIMEZONE), 1, 3)) / 24) AS START_TIME,
CAST(ELAPSED_TIME/1000000 AS NUMBER) AS ELAPSED_SECONDS,
CAST(REMAINING_TIME AS NUMBER) AS TIME_REMAINING,
TO_CHAR(TO_DATE('19700101','YYYYMMDD') + LAST_UPDATE_TIME / 86400 / 1000000
+ TO_NUMBER(SUBSTR(TZ_OFFSET(SESSIONTIMEZONE), 1, 3)) / 24) AS LAST_UPDATE_TIME,
CAST(MESSAGE AS VARCHAR2(512)) AS MESSAGE
FROM SYS.ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()
""".replace("\n", " ")
)
def_table_schema(
owner = 'zhenjiang.xzj',
table_name = 'V$SESSION_LONGOPS',
name_postfix = '_ORA',
database_id = 'OB_ORA_SYS_DATABASE_ID',
table_id = '28186',
table_type = 'SYSTEM_VIEW',
rowkey_columns = [],
normal_columns = [],
gm_columns = [],
in_tenant_space = True,
view_definition = """
SELECT * FROM SYS.GV$SESSION_LONGOPS
WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT()
""".replace("\n", " ")
)
# 28187: GV$OB_THREAD
# 28188: V$OB_THREAD
# 28189: GV$OB_ARBITRATION_MEMBER_INFO
@ -48541,6 +48583,7 @@ def_table_schema(
# 28191: GV$OB_ARBITRATION_SERVICE_STATUS
# 28192: V$OB_ARBITRATION_SERVICE_STATUS
################################################################################
# Lob Table (50000, 70000)
################################################################################

View File

@ -13,6 +13,7 @@
#ifdef AGENT_VIRTUAL_TABLE_LOCATION_SWITCH
case OB_ALL_VIRTUAL_COLL_TYPE_SYS_AGENT_TID:
case OB_ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT_TID:
case OB_ALL_VIRTUAL_PACKAGE_SYS_AGENT_TID:
case OB_ALL_VIRTUAL_ROUTINE_PARAM_SYS_AGENT_TID:
case OB_ALL_VIRTUAL_ROUTINE_SYS_AGENT_TID:
@ -29,6 +30,7 @@ case OB_TENANT_VIRTUAL_CONCURRENT_LIMIT_SQL_AGENT_TID:
case OB_TENANT_VIRTUAL_OUTLINE_AGENT_TID:
case OB_TENANT_VIRTUAL_TABLE_INDEX_AGENT_TID:
case OB_ALL_VIRTUAL_TENANT_MYSQL_SYS_AGENT_TID:
case OB_ALL_VIRTUAL_VIRTUAL_LONG_OPS_STATUS_MYSQL_SYS_AGENT_TID:
#endif
@ -54,6 +56,24 @@ case OB_ALL_VIRTUAL_TENANT_MYSQL_SYS_AGENT_TID:
break;
}
case OB_ALL_VIRTUAL_LONG_OPS_STATUS_SYS_AGENT_TID: {
ObAgentVirtualTable *agent_iter = NULL;
const uint64_t base_tid = OB_ALL_VIRTUAL_LONG_OPS_STATUS_TID;
const bool sys_tenant_base_table = true;
const bool only_sys_data = true;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObAgentVirtualTable, agent_iter))) {
SERVER_LOG(WARN, "create virtual table iterator failed", K(ret));
} else if (OB_FAIL(agent_iter->init(base_tid, sys_tenant_base_table, index_schema, params, only_sys_data))) {
SERVER_LOG(WARN, "virtual table iter init failed", K(ret));
agent_iter->~ObAgentVirtualTable();
allocator.free(agent_iter);
agent_iter = NULL;
} else {
vt_iter = agent_iter;
}
break;
}
case OB_ALL_VIRTUAL_PACKAGE_SYS_AGENT_TID: {
ObAgentVirtualTable *agent_iter = NULL;
const uint64_t base_tid = OB_ALL_PACKAGE_TID;
@ -341,6 +361,24 @@ case OB_ALL_VIRTUAL_TENANT_MYSQL_SYS_AGENT_TID:
}
break;
}
case OB_ALL_VIRTUAL_VIRTUAL_LONG_OPS_STATUS_MYSQL_SYS_AGENT_TID: {
ObAgentVirtualTable *agent_iter = NULL;
const uint64_t base_tid = OB_ALL_VIRTUAL_LONG_OPS_STATUS_TID;
const bool sys_tenant_base_table = true;
const bool only_sys_data = false;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObAgentVirtualTable, agent_iter))) {
SERVER_LOG(WARN, "create virtual table iterator failed", K(ret));
} else if (OB_FAIL(agent_iter->init(base_tid, sys_tenant_base_table, index_schema, params, only_sys_data, Worker::CompatMode::MYSQL))) {
SERVER_LOG(WARN, "virtual table iter init failed", K(ret));
agent_iter->~ObAgentVirtualTable();
allocator.free(agent_iter);
agent_iter = NULL;
} else {
vt_iter = agent_iter;
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
#endif // AGENT_VIRTUAL_TABLE_CREATE_ITER

View File

@ -85,4 +85,4 @@ void ObLongopsValue::reset()
memset(op_name_, 0, sizeof(op_name_));
memset(target_, 0, sizeof(target_));
memset(message_, 0, sizeof(message_));
}
}

View File

@ -221,19 +221,19 @@ int ObLongopsIterator::init(ObLongopsMgr *longops_mgr)
return ret;
}
int ObLongopsIterator::get_next(ObLongopsValue &value)
int ObLongopsIterator::get_next(const uint64_t tenant_id, ObLongopsValue &value)
{
int ret = OB_SUCCESS;
if (OB_UNLIKELY(!is_inited_)) {
ret = OB_NOT_INIT;
LOG_WARN("ObLongopsIterator has not been inited", K(ret));
} else if (OB_UNLIKELY(key_cursor_ >= key_snapshot_.count())) {
ret = OB_ITER_END;
} else {
bool need_retry = true;
while (OB_SUCC(ret) && need_retry && key_cursor_ < key_snapshot_.count()) {
const ObILongopsKey &key = key_snapshot_.at(key_cursor_);
if (OB_FAIL(longops_mgr_->get_longops(key, value))) {
if (!is_sys_tenant(tenant_id) && key.tenant_id_ != tenant_id) {
// Normal user tenants can only check their own longops tasks.
} else if (OB_FAIL(longops_mgr_->get_longops(key, value))) {
if (OB_UNLIKELY(OB_ENTRY_NOT_EXIST != ret)) {
LOG_WARN("fail to get parition stat", K(ret), K(key));
} else {
@ -245,6 +245,11 @@ int ObLongopsIterator::get_next(ObLongopsValue &value)
}
++key_cursor_;
}
if (OB_SUCC(ret)) {
// reach the end, but get no longops record.
ret = need_retry && key_cursor_ >= key_snapshot_.count() ? OB_ITER_END : ret;
}
}
return ret;
}

View File

@ -36,6 +36,7 @@ public:
int begin_iter(ObLongopsIterator &iter);
template <typename Callback>
int foreach(Callback &callback);
TO_STRING_KV(K_(is_inited), K(map_.size()));
private:
ObLongopsMgr();
~ObLongopsMgr() { destroy(); }
@ -81,7 +82,7 @@ public:
~ObLongopsIterator();
void reset();
int init(ObLongopsMgr *longops_mgr);
int get_next(ObLongopsValue &value);
int get_next(const uint64_t tenant_id, ObLongopsValue &value);
inline bool is_inited() const { return is_inited_; }
private:
bool is_inited_;

View File

@ -584,6 +584,7 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
12365 __all_virtual_ls_arb_replica_task_history 2 201001 1
12366 __all_virtual_archive_dest_status 2 201001 1
12369 __all_virtual_io_scheduler 2 201001 1
12393 __all_virtual_virtual_long_ops_status_mysql_sys_agent 2 201001 1
20001 GV$OB_PLAN_CACHE_STAT 1 201001 1
20002 GV$OB_PLAN_CACHE_PLAN_STAT 1 201001 1
20003 SCHEMATA 1 201002 1