diff --git a/src/share/inner_table/ob_inner_table_schema.12251_12300.cpp b/src/share/inner_table/ob_inner_table_schema.12251_12300.cpp index 85ebc4197a..9dc568acd3 100644 --- a/src/share/inner_table/ob_inner_table_schema.12251_12300.cpp +++ b/src/share/inner_table/ob_inner_table_schema.12251_12300.cpp @@ -1451,6 +1451,25 @@ int ObInnerTableSchema::all_virtual_tenant_info_schema(ObTableSchema &table_sche max_ls_id_default, max_ls_id_default); //default_value } + + if (OB_SUCC(ret)) { + ObObj restore_data_mode_default; + restore_data_mode_default.set_varchar(ObString::make_string("NORMAL")); + ADD_COLUMN_SCHEMA_T("restore_data_mode", //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 + 128, //column_length + -1, //column_precision + -1, //column_scale + false, //is_nullable + false, //is_autoincrement + restore_data_mode_default, + restore_data_mode_default); //default_value + } 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); diff --git a/src/share/inner_table/ob_inner_table_schema.15251_15300.cpp b/src/share/inner_table/ob_inner_table_schema.15251_15300.cpp index a47c83af7e..b053ec26d9 100644 --- a/src/share/inner_table/ob_inner_table_schema.15251_15300.cpp +++ b/src/share/inner_table/ob_inner_table_schema.15251_15300.cpp @@ -4987,6 +4987,21 @@ int ObInnerTableSchema::all_virtual_tenant_info_ora_schema(ObTableSchema &table_ false, //is_nullable false); //is_autoincrement } + + if (OB_SUCC(ret)) { + ADD_COLUMN_SCHEMA("RESTORE_DATA_MODE", //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 + 128, //column_length + 2, //column_precision + -1, //column_scale + false, //is_nullable + false); //is_autoincrement + } 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); diff --git a/src/share/inner_table/ob_inner_table_schema.21101_21150.cpp b/src/share/inner_table/ob_inner_table_schema.21101_21150.cpp index 7cc6dd9641..4f6c2deca6 100644 --- a/src/share/inner_table/ob_inner_table_schema.21101_21150.cpp +++ b/src/share/inner_table/ob_inner_table_schema.21101_21150.cpp @@ -160,7 +160,7 @@ int ObInnerTableSchema::cdb_ob_restore_progress_schema(ObTableSchema &table_sche 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 P.TENANT_ID AS TENANT_ID, P.JOB_ID AS JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_OPTION, RESTORE_SCN, CASE WHEN RESTORE_SCN IS NULL THEN NULL WHEN RESTORE_SCN=0 THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, CASE WHEN STATUS = 'RESTORE_PRE' THEN 'RESTORING' WHEN STATUS = 'RESTORE_CREATE_INIT_LS' THEN 'RESTORING' WHEN STATUS = 'PHYSICAL_RESTORE_WAIT_RESTORE_TO_CONSISTENT_SCN' THEN 'RESTORING' WHEN STATUS = 'RESTORE_WAIT_LS' THEN 'RESTORING' WHEN STATUS = 'POST_CHECK' THEN 'RESTORING' ELSE STATUS END AS STATUS, CASE WHEN START_TIMESTAMP IS NULL THEN NULL WHEN START_TIMESTAMP='' THEN NULL WHEN START_TIMESTAMP='0' THEN NULL ELSE USEC_TO_TIME(START_TIMESTAMP) END AS START_TIMESTAMP, BACKUP_SET_LIST, BACKUP_PIECE_LIST, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION FROM ( SELECT TENANT_ID, JOB_ID, MAX(CASE NAME WHEN 'tenant_name' THEN VALUE ELSE '' END) AS RESTORE_TENANT_NAME, MAX(CASE NAME WHEN 'tenant_id' THEN VALUE ELSE '' END) AS RESTORE_TENANT_ID, MAX(CASE NAME WHEN 'backup_tenant_name' THEN VALUE ELSE '' END) AS BACKUP_TENANT_NAME, MAX(CASE NAME WHEN 'backup_tenant_id' THEN VALUE ELSE '' END) AS BACKUP_TENANT_ID, MAX(CASE NAME WHEN 'backup_cluster_name' THEN VALUE ELSE '' END) AS BACKUP_CLUSTER_NAME, MAX(CASE NAME WHEN 'target_tenant_role' THEN VALUE ELSE '' END) AS TENANT_ROLE, MAX(CASE NAME WHEN 'backup_dest' THEN VALUE ELSE '' END) AS BACKUP_DEST, MAX(CASE NAME WHEN 'restore_option' THEN VALUE ELSE '' END) AS RESTORE_OPTION, MAX(CASE NAME WHEN 'status' THEN VALUE ELSE '' END) AS STATUS, MAX(CASE NAME WHEN 'restore_scn' THEN VALUE ELSE '' END) AS RESTORE_SCN, MAX(CASE NAME WHEN 'restore_start_ts' THEN VALUE ELSE '' END) AS START_TIMESTAMP, MAX(CASE NAME WHEN 'backup_set_list' THEN VALUE ELSE '' END) AS BACKUP_SET_LIST, MAX(CASE NAME WHEN 'backup_piece_list' THEN VALUE ELSE '' END) AS BACKUP_PIECE_LIST, MAX(CASE NAME WHEN 'description' THEN VALUE ELSE '' END) AS DESCRIPTION FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB GROUP BY TENANT_ID, JOB_ID ) P LEFT JOIN ( SELECT TENANT_ID, JOB_ID, TOTAL_BYTES, FINISH_BYTES FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_PROGRESS ) J ON P.TENANT_ID=J.TENANT_ID AND P.JOB_ID=J.JOB_ID )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT P.TENANT_ID AS TENANT_ID, P.JOB_ID AS JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_OPTION, RESTORE_TYPE, RESTORE_SCN, CASE WHEN RESTORE_SCN IS NULL THEN NULL WHEN RESTORE_SCN=0 THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, CASE WHEN STATUS = 'RESTORE_PRE' THEN 'RESTORING' WHEN STATUS = 'RESTORE_CREATE_INIT_LS' THEN 'RESTORING' WHEN STATUS = 'PHYSICAL_RESTORE_WAIT_RESTORE_TO_CONSISTENT_SCN' THEN 'RESTORING' WHEN STATUS = 'RESTORE_WAIT_LS' THEN 'RESTORING' WHEN STATUS = 'POST_CHECK' THEN 'RESTORING' ELSE STATUS END AS STATUS, CASE WHEN START_TIMESTAMP IS NULL THEN NULL WHEN START_TIMESTAMP='' THEN NULL WHEN START_TIMESTAMP='0' THEN NULL ELSE USEC_TO_TIME(START_TIMESTAMP) END AS START_TIMESTAMP, BACKUP_SET_LIST, BACKUP_PIECE_LIST, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION FROM ( SELECT TENANT_ID, JOB_ID, MAX(CASE NAME WHEN 'tenant_name' THEN VALUE ELSE '' END) AS RESTORE_TENANT_NAME, MAX(CASE NAME WHEN 'tenant_id' THEN VALUE ELSE '' END) AS RESTORE_TENANT_ID, MAX(CASE NAME WHEN 'backup_tenant_name' THEN VALUE ELSE '' END) AS BACKUP_TENANT_NAME, MAX(CASE NAME WHEN 'backup_tenant_id' THEN VALUE ELSE '' END) AS BACKUP_TENANT_ID, MAX(CASE NAME WHEN 'backup_cluster_name' THEN VALUE ELSE '' END) AS BACKUP_CLUSTER_NAME, MAX(CASE NAME WHEN 'target_tenant_role' THEN VALUE ELSE '' END) AS TENANT_ROLE, MAX(CASE NAME WHEN 'backup_dest' THEN VALUE ELSE '' END) AS BACKUP_DEST, MAX(CASE NAME WHEN 'restore_option' THEN VALUE ELSE '' END) AS RESTORE_OPTION, MAX(CASE NAME WHEN 'status' THEN VALUE ELSE '' END) AS STATUS, MAX(CASE NAME WHEN 'restore_scn' THEN VALUE ELSE '' END) AS RESTORE_SCN, MAX(CASE NAME WHEN 'restore_start_ts' THEN VALUE ELSE '' END) AS START_TIMESTAMP, MAX(CASE NAME WHEN 'backup_set_list' THEN VALUE ELSE '' END) AS BACKUP_SET_LIST, MAX(CASE NAME WHEN 'backup_piece_list' THEN VALUE ELSE '' END) AS BACKUP_PIECE_LIST, MAX(CASE NAME WHEN 'description' THEN VALUE ELSE '' END) AS DESCRIPTION, MAX(CASE NAME WHEN 'restore_type' THEN VALUE ELSE '' END) AS RESTORE_TYPE FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB GROUP BY TENANT_ID, JOB_ID ) P LEFT JOIN ( SELECT TENANT_ID, JOB_ID, TOTAL_BYTES, FINISH_BYTES FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_PROGRESS ) J ON P.TENANT_ID=J.TENANT_ID AND P.JOB_ID=J.JOB_ID )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } @@ -210,7 +210,7 @@ int ObInnerTableSchema::cdb_ob_restore_history_schema(ObTableSchema &table_schem 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 TENANT_ID, JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_SCN, CASE WHEN RESTORE_SCN = 0 THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, RESTORE_OPTION, START_TIME AS START_TIMESTAMP, FINISH_TIME AS FINISH_TIMESTAMP, STATUS, BACKUP_PIECE_LIST, BACKUP_SET_LIST, BACKUP_CLUSTER_VERSION, LS_COUNT, FINISH_LS_COUNT, TABLET_COUNT, FINISH_TABLET_COUNT, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION, COMMENT FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB_HISTORY )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_SCN, CASE WHEN RESTORE_SCN = 0 THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, RESTORE_OPTION, RESTORE_TYPE, START_TIME AS START_TIMESTAMP, FINISH_TIME AS FINISH_TIMESTAMP, STATUS, BACKUP_PIECE_LIST, BACKUP_SET_LIST, BACKUP_CLUSTER_VERSION, LS_COUNT, FINISH_LS_COUNT, TABLET_COUNT, FINISH_TABLET_COUNT, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION, COMMENT FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB_HISTORY )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.21151_21200.cpp b/src/share/inner_table/ob_inner_table_schema.21151_21200.cpp index facd91959b..80255dbc31 100644 --- a/src/share/inner_table/ob_inner_table_schema.21151_21200.cpp +++ b/src/share/inner_table/ob_inner_table_schema.21151_21200.cpp @@ -410,7 +410,7 @@ int ObInnerTableSchema::dba_ob_tenants_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 A.TENANT_ID, TENANT_NAME, (CASE WHEN A.TENANT_ID = 1 THEN 'SYS' WHEN (A.TENANT_ID & 0x1) = 1 THEN 'META' ELSE 'USER' END) AS TENANT_TYPE, A.gmt_create AS CREATE_TIME, A.gmt_modified AS MODIFY_TIME, PRIMARY_ZONE, LOCALITY, CASE previous_locality WHEN "" THEN NULL ELSE previous_locality END AS PREVIOUS_LOCALITY, CASE compatibility_mode WHEN 0 THEN 'MYSQL' WHEN 1 THEN 'ORACLE' ELSE NULL END AS COMPATIBILITY_MODE, STATUS, CASE in_recyclebin WHEN 0 THEN 'NO' ELSE 'YES' END AS IN_RECYCLEBIN, CASE locked WHEN 0 THEN 'NO' ELSE 'YES' END AS LOCKED, (CASE WHEN A.TENANT_ID = 1 THEN 'PRIMARY' WHEN (A.TENANT_ID & 0x1) = 1 THEN 'PRIMARY' ELSE TENANT_ROLE END) AS TENANT_ROLE, (CASE WHEN A.TENANT_ID = 1 THEN 'NORMAL' WHEN (A.TENANT_ID & 0x1) = 1 THEN 'NORMAL' ELSE SWITCHOVER_STATUS END) AS SWITCHOVER_STATUS, (CASE WHEN A.TENANT_ID = 1 THEN 0 WHEN (A.TENANT_ID & 0x1) = 1 THEN 0 ELSE SWITCHOVER_EPOCH END) AS SWITCHOVER_EPOCH, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (A.TENANT_ID & 0x1) = 1 THEN NULL ELSE SYNC_SCN END) AS SYNC_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (A.TENANT_ID & 0x1) = 1 THEN NULL ELSE REPLAYABLE_SCN END) AS REPLAYABLE_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (A.TENANT_ID & 0x1) = 1 THEN NULL ELSE READABLE_SCN END) AS READABLE_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (A.TENANT_ID & 0x1) = 1 THEN NULL ELSE RECOVERY_UNTIL_SCN END) AS RECOVERY_UNTIL_SCN, (CASE WHEN A.TENANT_ID = 1 THEN 'NOARCHIVELOG' WHEN (A.TENANT_ID & 0x1) = 1 THEN 'NOARCHIVELOG' ELSE LOG_MODE END) AS LOG_MODE, ARBITRATION_SERVICE_STATUS, UNIT_NUM, COMPATIBLE, (CASE WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 1 ELSE B.MAX_LS_ID END) AS MAX_LS_ID FROM OCEANBASE.__ALL_VIRTUAL_TENANT_MYSQL_SYS_AGENT AS A LEFT JOIN OCEANBASE.__ALL_VIRTUAL_TENANT_INFO AS B ON A.TENANT_ID = B.TENANT_ID LEFT JOIN (SELECT TENANT_ID, (CASE WHEN TENANT_ID < 1 THEN NULL WHEN TENANT_ID != 1 THEN TENANT_ID - 1 ELSE NULL END) AS META_TENANT_ID, MIN(UNIT_COUNT) AS UNIT_NUM FROM OCEANBASE.__ALL_VIRTUAL_RESOURCE_POOL_MYSQL_SYS_AGENT GROUP BY TENANT_ID) AS C ON A.TENANT_ID = C.TENANT_ID OR A.TENANT_ID = C.META_TENANT_ID LEFT JOIN (SELECT TENANT_ID, MIN(VALUE) AS COMPATIBLE FROM OCEANBASE.__ALL_VIRTUAL_TENANT_PARAMETER WHERE NAME = 'compatible' GROUP BY TENANT_ID) AS D ON A.TENANT_ID = D.TENANT_ID )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT A.TENANT_ID, TENANT_NAME, (CASE WHEN A.TENANT_ID = 1 THEN 'SYS' WHEN (A.TENANT_ID & 0x1) = 1 THEN 'META' ELSE 'USER' END) AS TENANT_TYPE, A.gmt_create AS CREATE_TIME, A.gmt_modified AS MODIFY_TIME, PRIMARY_ZONE, LOCALITY, CASE previous_locality WHEN "" THEN NULL ELSE previous_locality END AS PREVIOUS_LOCALITY, CASE compatibility_mode WHEN 0 THEN 'MYSQL' WHEN 1 THEN 'ORACLE' ELSE NULL END AS COMPATIBILITY_MODE, STATUS, CASE in_recyclebin WHEN 0 THEN 'NO' ELSE 'YES' END AS IN_RECYCLEBIN, CASE locked WHEN 0 THEN 'NO' ELSE 'YES' END AS LOCKED, (CASE WHEN A.TENANT_ID = 1 THEN 'PRIMARY' WHEN (A.TENANT_ID & 0x1) = 1 THEN 'PRIMARY' ELSE TENANT_ROLE END) AS TENANT_ROLE, (CASE WHEN A.TENANT_ID = 1 THEN 'NORMAL' WHEN (A.TENANT_ID & 0x1) = 1 THEN 'NORMAL' ELSE SWITCHOVER_STATUS END) AS SWITCHOVER_STATUS, (CASE WHEN A.TENANT_ID = 1 THEN 0 WHEN (A.TENANT_ID & 0x1) = 1 THEN 0 ELSE SWITCHOVER_EPOCH END) AS SWITCHOVER_EPOCH, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (A.TENANT_ID & 0x1) = 1 THEN NULL ELSE SYNC_SCN END) AS SYNC_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (A.TENANT_ID & 0x1) = 1 THEN NULL ELSE REPLAYABLE_SCN END) AS REPLAYABLE_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (A.TENANT_ID & 0x1) = 1 THEN NULL ELSE READABLE_SCN END) AS READABLE_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (A.TENANT_ID & 0x1) = 1 THEN NULL ELSE RECOVERY_UNTIL_SCN END) AS RECOVERY_UNTIL_SCN, (CASE WHEN A.TENANT_ID = 1 THEN 'NOARCHIVELOG' WHEN (A.TENANT_ID & 0x1) = 1 THEN 'NOARCHIVELOG' ELSE LOG_MODE END) AS LOG_MODE, ARBITRATION_SERVICE_STATUS, UNIT_NUM, COMPATIBLE, (CASE WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 1 ELSE B.MAX_LS_ID END) AS MAX_LS_ID, RESTORE_DATA_MODE FROM OCEANBASE.__ALL_VIRTUAL_TENANT_MYSQL_SYS_AGENT AS A LEFT JOIN OCEANBASE.__ALL_VIRTUAL_TENANT_INFO AS B ON A.TENANT_ID = B.TENANT_ID LEFT JOIN (SELECT TENANT_ID, (CASE WHEN TENANT_ID < 1 THEN NULL WHEN TENANT_ID != 1 THEN TENANT_ID - 1 ELSE NULL END) AS META_TENANT_ID, MIN(UNIT_COUNT) AS UNIT_NUM FROM OCEANBASE.__ALL_VIRTUAL_RESOURCE_POOL_MYSQL_SYS_AGENT GROUP BY TENANT_ID) AS C ON A.TENANT_ID = C.TENANT_ID OR A.TENANT_ID = C.META_TENANT_ID LEFT JOIN (SELECT TENANT_ID, MIN(VALUE) AS COMPATIBLE FROM OCEANBASE.__ALL_VIRTUAL_TENANT_PARAMETER WHERE NAME = 'compatible' GROUP BY TENANT_ID) AS D ON A.TENANT_ID = D.TENANT_ID )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.21251_21300.cpp b/src/share/inner_table/ob_inner_table_schema.21251_21300.cpp index 13980b1971..61d8177faf 100644 --- a/src/share/inner_table/ob_inner_table_schema.21251_21300.cpp +++ b/src/share/inner_table/ob_inner_table_schema.21251_21300.cpp @@ -1760,7 +1760,7 @@ int ObInnerTableSchema::dba_ob_restore_progress_schema(ObTableSchema &table_sche 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 P.JOB_ID AS JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_OPTION, RESTORE_SCN, CASE WHEN RESTORE_SCN IS NULL THEN NULL WHEN RESTORE_SCN=0 THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, CASE WHEN STATUS = 'RESTORE_PRE' THEN 'RESTORING' WHEN STATUS = 'RESTORE_CREATE_INIT_LS' THEN 'RESTORING' WHEN STATUS = 'RESTORE_WAIT_LS' THEN 'RESTORING' WHEN STATUS = 'POST_CHECK' THEN 'RESTORING' ELSE STATUS END AS STATUS, CASE WHEN START_TIMESTAMP IS NULL THEN NULL WHEN START_TIMESTAMP='' THEN NULL WHEN START_TIMESTAMP='0' THEN NULL ELSE USEC_TO_TIME(START_TIMESTAMP) END AS START_TIMESTAMP, BACKUP_SET_LIST, BACKUP_PIECE_LIST, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION FROM ( SELECT TENANT_ID, JOB_ID, MAX(CASE NAME WHEN 'tenant_name' THEN VALUE ELSE '' END) AS RESTORE_TENANT_NAME, MAX(CASE NAME WHEN 'tenant_id' THEN VALUE ELSE '' END) AS RESTORE_TENANT_ID, MAX(CASE NAME WHEN 'backup_tenant_name' THEN VALUE ELSE '' END) AS BACKUP_TENANT_NAME, MAX(CASE NAME WHEN 'backup_tenant_id' THEN VALUE ELSE '' END) AS BACKUP_TENANT_ID, MAX(CASE NAME WHEN 'backup_cluster_name' THEN VALUE ELSE '' END) AS BACKUP_CLUSTER_NAME, MAX(CASE NAME WHEN 'target_tenant_role' THEN VALUE ELSE '' END) AS TENANT_ROLE, MAX(CASE NAME WHEN 'backup_dest' THEN VALUE ELSE '' END) AS BACKUP_DEST, MAX(CASE NAME WHEN 'restore_option' THEN VALUE ELSE '' END) AS RESTORE_OPTION, MAX(CASE NAME WHEN 'status' THEN VALUE ELSE '' END) AS STATUS, MAX(CASE NAME WHEN 'restore_scn' THEN VALUE ELSE '' END) AS RESTORE_SCN, MAX(CASE NAME WHEN 'restore_start_ts' THEN VALUE ELSE '' END) AS START_TIMESTAMP, MAX(CASE NAME WHEN 'backup_set_list' THEN VALUE ELSE '' END) AS BACKUP_SET_LIST, MAX(CASE NAME WHEN 'backup_piece_list' THEN VALUE ELSE '' END) AS BACKUP_PIECE_LIST, MAX(CASE NAME WHEN 'description' THEN VALUE ELSE '' END) AS DESCRIPTION FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB GROUP BY TENANT_ID, JOB_ID ) P LEFT JOIN ( SELECT TENANT_ID, JOB_ID, TOTAL_BYTES, FINISH_BYTES FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_PROGRESS ) J ON P.TENANT_ID=J.TENANT_ID AND P.JOB_ID=J.JOB_ID WHERE P.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT P.JOB_ID AS JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_OPTION, RESTORE_TYPE, RESTORE_SCN, CASE WHEN RESTORE_SCN IS NULL THEN NULL WHEN RESTORE_SCN=0 THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, CASE WHEN STATUS = 'RESTORE_PRE' THEN 'RESTORING' WHEN STATUS = 'RESTORE_CREATE_INIT_LS' THEN 'RESTORING' WHEN STATUS = 'RESTORE_WAIT_LS' THEN 'RESTORING' WHEN STATUS = 'POST_CHECK' THEN 'RESTORING' ELSE STATUS END AS STATUS, CASE WHEN START_TIMESTAMP IS NULL THEN NULL WHEN START_TIMESTAMP='' THEN NULL WHEN START_TIMESTAMP='0' THEN NULL ELSE USEC_TO_TIME(START_TIMESTAMP) END AS START_TIMESTAMP, BACKUP_SET_LIST, BACKUP_PIECE_LIST, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION FROM ( SELECT TENANT_ID, JOB_ID, MAX(CASE NAME WHEN 'tenant_name' THEN VALUE ELSE '' END) AS RESTORE_TENANT_NAME, MAX(CASE NAME WHEN 'tenant_id' THEN VALUE ELSE '' END) AS RESTORE_TENANT_ID, MAX(CASE NAME WHEN 'backup_tenant_name' THEN VALUE ELSE '' END) AS BACKUP_TENANT_NAME, MAX(CASE NAME WHEN 'backup_tenant_id' THEN VALUE ELSE '' END) AS BACKUP_TENANT_ID, MAX(CASE NAME WHEN 'backup_cluster_name' THEN VALUE ELSE '' END) AS BACKUP_CLUSTER_NAME, MAX(CASE NAME WHEN 'target_tenant_role' THEN VALUE ELSE '' END) AS TENANT_ROLE, MAX(CASE NAME WHEN 'backup_dest' THEN VALUE ELSE '' END) AS BACKUP_DEST, MAX(CASE NAME WHEN 'restore_option' THEN VALUE ELSE '' END) AS RESTORE_OPTION, MAX(CASE NAME WHEN 'status' THEN VALUE ELSE '' END) AS STATUS, MAX(CASE NAME WHEN 'restore_scn' THEN VALUE ELSE '' END) AS RESTORE_SCN, MAX(CASE NAME WHEN 'restore_start_ts' THEN VALUE ELSE '' END) AS START_TIMESTAMP, MAX(CASE NAME WHEN 'backup_set_list' THEN VALUE ELSE '' END) AS BACKUP_SET_LIST, MAX(CASE NAME WHEN 'backup_piece_list' THEN VALUE ELSE '' END) AS BACKUP_PIECE_LIST, MAX(CASE NAME WHEN 'description' THEN VALUE ELSE '' END) AS DESCRIPTION, MAX(CASE NAME WHEN 'restore_type' THEN VALUE ELSE '' END) AS RESTORE_TYPE FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB GROUP BY TENANT_ID, JOB_ID ) P LEFT JOIN ( SELECT TENANT_ID, JOB_ID, TOTAL_BYTES, FINISH_BYTES FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_PROGRESS ) J ON P.TENANT_ID=J.TENANT_ID AND P.JOB_ID=J.JOB_ID WHERE P.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } @@ -1810,7 +1810,7 @@ int ObInnerTableSchema::dba_ob_restore_history_schema(ObTableSchema &table_schem 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 JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_SCN, CASE WHEN RESTORE_SCN = 0 THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, RESTORE_OPTION, START_TIME AS START_TIMESTAMP, FINISH_TIME AS FINISH_TIMESTAMP, STATUS, BACKUP_PIECE_LIST, BACKUP_SET_LIST, BACKUP_CLUSTER_VERSION, LS_COUNT, FINISH_LS_COUNT, TABLET_COUNT, FINISH_TABLET_COUNT, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION, COMMENT FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB_HISTORY WHERE TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_SCN, CASE WHEN RESTORE_SCN = 0 THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, RESTORE_OPTION, RESTORE_TYPE, START_TIME AS START_TIMESTAMP, FINISH_TIME AS FINISH_TIMESTAMP, STATUS, BACKUP_PIECE_LIST, BACKUP_SET_LIST, BACKUP_CLUSTER_VERSION, LS_COUNT, FINISH_LS_COUNT, TABLET_COUNT, FINISH_TABLET_COUNT, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION, COMMENT FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB_HISTORY WHERE TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.25151_25200.cpp b/src/share/inner_table/ob_inner_table_schema.25151_25200.cpp index d6cbe711fa..72b1095cce 100644 --- a/src/share/inner_table/ob_inner_table_schema.25151_25200.cpp +++ b/src/share/inner_table/ob_inner_table_schema.25151_25200.cpp @@ -2110,7 +2110,7 @@ int ObInnerTableSchema::dba_ob_restore_progress_ora_schema(ObTableSchema &table_ 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 P.JOB_ID AS JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_OPTION, RESTORE_SCN, CASE WHEN RESTORE_SCN IS NULL THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, CASE WHEN STATUS = 'RESTORE_PRE' THEN 'RESTORING' WHEN STATUS = 'RESTORE_CREATE_INIT_LS' THEN 'RESTORING' WHEN STATUS = 'RESTORE_WAIT_LS' THEN 'RESTORING' WHEN STATUS = 'POST_CHECK' THEN 'RESTORING' ELSE STATUS END AS STATUS, CASE WHEN START_TIMESTAMP IS NULL THEN NULL WHEN START_TIMESTAMP='' THEN NULL WHEN START_TIMESTAMP='0' THEN NULL ELSE TO_CHAR(TO_NUMBER(START_TIMESTAMP) / (1000 * 60 * 60 * 24 * 1000) + TO_DATE('1970-01-01 08:00:00', 'yyyy-mm-dd hh:mi:ss'), 'yyyy-mm-dd hh24:mi:ss') END AS START_TIMESTAMP, BACKUP_SET_LIST, BACKUP_PIECE_LIST, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION FROM ( SELECT TENANT_ID, JOB_ID, MAX(CASE NAME WHEN 'tenant_name' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_TENANT_NAME, MAX(CASE NAME WHEN 'tenant_id' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_TENANT_ID, MAX(CASE NAME WHEN 'backup_tenant_name' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_TENANT_NAME, MAX(CASE NAME WHEN 'backup_tenant_id' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_TENANT_ID, MAX(CASE NAME WHEN 'backup_cluster_name' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_CLUSTER_NAME, MAX(CASE NAME WHEN 'target_tenant_role' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS TENANT_ROLE, MAX(CASE NAME WHEN 'backup_dest' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_DEST, MAX(CASE NAME WHEN 'restore_option' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_OPTION, MAX(CASE NAME WHEN 'status' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS STATUS, MAX(CASE NAME WHEN 'restore_scn' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_SCN, MAX(CASE NAME WHEN 'restore_start_ts' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS START_TIMESTAMP, MAX(CASE NAME WHEN 'backup_set_list' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_SET_LIST, MAX(CASE NAME WHEN 'backup_piece_list' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_PIECE_LIST, MAX(CASE NAME WHEN 'description' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS DESCRIPTION FROM SYS.ALL_VIRTUAL_RESTORE_JOB GROUP BY TENANT_ID, JOB_ID ) P LEFT JOIN ( SELECT TENANT_ID, JOB_ID, TOTAL_BYTES, FINISH_BYTES FROM SYS.ALL_VIRTUAL_RESTORE_PROGRESS ) J ON P.TENANT_ID=J.TENANT_ID AND P.JOB_ID=J.JOB_ID WHERE P.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT P.JOB_ID AS JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_OPTION, RESTORE_TYPE, RESTORE_SCN, CASE WHEN RESTORE_SCN IS NULL THEN NULL ELSE SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, CASE WHEN STATUS = 'RESTORE_PRE' THEN 'RESTORING' WHEN STATUS = 'RESTORE_CREATE_INIT_LS' THEN 'RESTORING' WHEN STATUS = 'RESTORE_WAIT_LS' THEN 'RESTORING' WHEN STATUS = 'POST_CHECK' THEN 'RESTORING' ELSE STATUS END AS STATUS, CASE WHEN START_TIMESTAMP IS NULL THEN NULL WHEN START_TIMESTAMP='' THEN NULL WHEN START_TIMESTAMP='0' THEN NULL ELSE TO_CHAR(TO_NUMBER(START_TIMESTAMP) / (1000 * 60 * 60 * 24 * 1000) + TO_DATE('1970-01-01 08:00:00', 'yyyy-mm-dd hh:mi:ss'), 'yyyy-mm-dd hh24:mi:ss') END AS START_TIMESTAMP, BACKUP_SET_LIST, BACKUP_PIECE_LIST, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION FROM ( SELECT TENANT_ID, JOB_ID, MAX(CASE NAME WHEN 'tenant_name' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_TENANT_NAME, MAX(CASE NAME WHEN 'tenant_id' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_TENANT_ID, MAX(CASE NAME WHEN 'backup_tenant_name' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_TENANT_NAME, MAX(CASE NAME WHEN 'backup_tenant_id' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_TENANT_ID, MAX(CASE NAME WHEN 'backup_cluster_name' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_CLUSTER_NAME, MAX(CASE NAME WHEN 'target_tenant_role' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS TENANT_ROLE, MAX(CASE NAME WHEN 'backup_dest' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_DEST, MAX(CASE NAME WHEN 'restore_option' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_OPTION, MAX(CASE NAME WHEN 'status' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS STATUS, MAX(CASE NAME WHEN 'restore_scn' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_SCN, MAX(CASE NAME WHEN 'restore_start_ts' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS START_TIMESTAMP, MAX(CASE NAME WHEN 'backup_set_list' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_SET_LIST, MAX(CASE NAME WHEN 'backup_piece_list' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_PIECE_LIST, MAX(CASE NAME WHEN 'description' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS DESCRIPTION, MAX(CASE NAME WHEN 'restore_type' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_TYPE FROM SYS.ALL_VIRTUAL_RESTORE_JOB GROUP BY TENANT_ID, JOB_ID ) P LEFT JOIN ( SELECT TENANT_ID, JOB_ID, TOTAL_BYTES, FINISH_BYTES FROM SYS.ALL_VIRTUAL_RESTORE_PROGRESS ) J ON P.TENANT_ID=J.TENANT_ID AND P.JOB_ID=J.JOB_ID WHERE P.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } @@ -2160,7 +2160,7 @@ int ObInnerTableSchema::dba_ob_restore_history_ora_schema(ObTableSchema &table_s 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 JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_SCN, SCN_TO_TIMESTAMP(RESTORE_SCN) AS RESTORE_SCN_DISPLAY, RESTORE_OPTION, START_TIME AS START_TIMESTAMP, FINISH_TIME AS FINISH_TIMESTAMP, STATUS, BACKUP_PIECE_LIST, BACKUP_SET_LIST, BACKUP_CLUSTER_VERSION, LS_COUNT, FINISH_LS_COUNT, TABLET_COUNT, FINISH_TABLET_COUNT, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION, "COMMENT" FROM SYS.ALL_VIRTUAL_RESTORE_JOB_HISTORY WHERE TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, RESTORE_TENANT_NAME, RESTORE_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_TENANT_ID, BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_SCN, SCN_TO_TIMESTAMP(RESTORE_SCN) AS RESTORE_SCN_DISPLAY, RESTORE_OPTION, RESTORE_TYPE, START_TIME AS START_TIMESTAMP, FINISH_TIME AS FINISH_TIMESTAMP, STATUS, BACKUP_PIECE_LIST, BACKUP_SET_LIST, BACKUP_CLUSTER_VERSION, LS_COUNT, FINISH_LS_COUNT, TABLET_COUNT, FINISH_TABLET_COUNT, TOTAL_BYTES, CASE WHEN TOTAL_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN TOTAL_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024/1024,2), 'TB') WHEN TOTAL_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(TOTAL_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(TOTAL_BYTES/1024/1024,2), 'MB') END AS TOTAL_BYTES_DISPLAY, FINISH_BYTES, CASE WHEN FINISH_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN FINISH_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024/1024,2), 'TB') WHEN FINISH_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(FINISH_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(FINISH_BYTES/1024/1024,2), 'MB') END AS FINISH_BYTES_DISPLAY, DESCRIPTION, "COMMENT" FROM SYS.ALL_VIRTUAL_RESTORE_JOB_HISTORY WHERE TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.25201_25250.cpp b/src/share/inner_table/ob_inner_table_schema.25201_25250.cpp index 8bef62131b..47d237bcca 100644 --- a/src/share/inner_table/ob_inner_table_schema.25201_25250.cpp +++ b/src/share/inner_table/ob_inner_table_schema.25201_25250.cpp @@ -360,7 +360,7 @@ int ObInnerTableSchema::dba_ob_tenants_ora_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 A.TENANT_ID, TENANT_NAME, (CASE WHEN A.TENANT_ID = 1 THEN 'SYS' WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 'META' ELSE 'USER' END) AS TENANT_TYPE, A.gmt_create AS CREATE_TIME, A.gmt_modified AS MODIFY_TIME, PRIMARY_ZONE, LOCALITY, CASE previous_locality WHEN '' THEN NULL ELSE previous_locality END AS PREVIOUS_LOCALITY, CASE compatibility_mode WHEN 0 THEN 'MYSQL' WHEN 1 THEN 'ORACLE' ELSE NULL END AS COMPATIBILITY_MODE, STATUS, CASE in_recyclebin WHEN 0 THEN 'NO' ELSE 'YES' END AS IN_RECYCLEBIN, CASE locked WHEN 0 THEN 'NO' ELSE 'YES' END AS LOCKED, (CASE WHEN A.TENANT_ID = 1 THEN 'PRIMARY' WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 'PRIMARY' ELSE TENANT_ROLE END) AS TENANT_ROLE, (CASE WHEN A.TENANT_ID = 1 THEN 'NORMAL' WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 'NORMAL' ELSE SWITCHOVER_STATUS END) AS SWITCHOVER_STATUS, (CASE WHEN A.TENANT_ID = 1 THEN 0 WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 0 ELSE SWITCHOVER_EPOCH END) AS SWITCHOVER_EPOCH, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN NULL ELSE SYNC_SCN END) AS SYNC_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN NULL ELSE REPLAYABLE_SCN END) AS REPLAYABLE_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN NULL ELSE READABLE_SCN END) AS READABLE_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN NULL ELSE RECOVERY_UNTIL_SCN END) AS RECOVERY_UNTIL_SCN, (CASE WHEN A.TENANT_ID = 1 THEN 'NOARCHIVELOG' WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 'NOARCHIVELOG' ELSE LOG_MODE END) AS LOG_MODE, ARBITRATION_SERVICE_STATUS, UNIT_NUM, COMPATIBLE, (CASE WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 1 ELSE B.MAX_LS_ID END) AS MAX_LS_ID FROM SYS.ALL_VIRTUAL_TENANT_SYS_AGENT A LEFT JOIN SYS.ALL_VIRTUAL_TENANT_INFO B ON A.TENANT_ID = B.TENANT_ID LEFT JOIN (SELECT TENANT_ID, (CASE WHEN TENANT_ID < 1 THEN NULL WHEN TENANT_ID != 1 THEN TENANT_ID - 1 ELSE NULL END) AS META_TENANT_ID, MIN(UNIT_COUNT) AS UNIT_NUM FROM SYS.ALL_VIRTUAL_RESOURCE_POOL_SYS_AGENT GROUP BY TENANT_ID) C ON A.TENANT_ID = C.TENANT_ID OR A.TENANT_ID = C.META_TENANT_ID LEFT JOIN (SELECT TENANT_ID, MIN(VALUE) AS COMPATIBLE FROM SYS.ALL_VIRTUAL_TENANT_PARAMETER WHERE NAME = 'compatible' GROUP BY TENANT_ID) D ON A.TENANT_ID = D.TENANT_ID WHERE A.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT A.TENANT_ID, TENANT_NAME, (CASE WHEN A.TENANT_ID = 1 THEN 'SYS' WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 'META' ELSE 'USER' END) AS TENANT_TYPE, A.gmt_create AS CREATE_TIME, A.gmt_modified AS MODIFY_TIME, PRIMARY_ZONE, LOCALITY, CASE previous_locality WHEN '' THEN NULL ELSE previous_locality END AS PREVIOUS_LOCALITY, CASE compatibility_mode WHEN 0 THEN 'MYSQL' WHEN 1 THEN 'ORACLE' ELSE NULL END AS COMPATIBILITY_MODE, STATUS, CASE in_recyclebin WHEN 0 THEN 'NO' ELSE 'YES' END AS IN_RECYCLEBIN, CASE locked WHEN 0 THEN 'NO' ELSE 'YES' END AS LOCKED, (CASE WHEN A.TENANT_ID = 1 THEN 'PRIMARY' WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 'PRIMARY' ELSE TENANT_ROLE END) AS TENANT_ROLE, (CASE WHEN A.TENANT_ID = 1 THEN 'NORMAL' WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 'NORMAL' ELSE SWITCHOVER_STATUS END) AS SWITCHOVER_STATUS, (CASE WHEN A.TENANT_ID = 1 THEN 0 WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 0 ELSE SWITCHOVER_EPOCH END) AS SWITCHOVER_EPOCH, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN NULL ELSE SYNC_SCN END) AS SYNC_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN NULL ELSE REPLAYABLE_SCN END) AS REPLAYABLE_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN NULL ELSE READABLE_SCN END) AS READABLE_SCN, (CASE WHEN A.TENANT_ID = 1 THEN NULL WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN NULL ELSE RECOVERY_UNTIL_SCN END) AS RECOVERY_UNTIL_SCN, (CASE WHEN A.TENANT_ID = 1 THEN 'NOARCHIVELOG' WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 'NOARCHIVELOG' ELSE LOG_MODE END) AS LOG_MODE, ARBITRATION_SERVICE_STATUS, UNIT_NUM, COMPATIBLE, (CASE WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 1 ELSE B.MAX_LS_ID END) AS MAX_LS_ID, RESTORE_DATA_MODE FROM SYS.ALL_VIRTUAL_TENANT_SYS_AGENT A LEFT JOIN SYS.ALL_VIRTUAL_TENANT_INFO B ON A.TENANT_ID = B.TENANT_ID LEFT JOIN (SELECT TENANT_ID, (CASE WHEN TENANT_ID < 1 THEN NULL WHEN TENANT_ID != 1 THEN TENANT_ID - 1 ELSE NULL END) AS META_TENANT_ID, MIN(UNIT_COUNT) AS UNIT_NUM FROM SYS.ALL_VIRTUAL_RESOURCE_POOL_SYS_AGENT GROUP BY TENANT_ID) C ON A.TENANT_ID = C.TENANT_ID OR A.TENANT_ID = C.META_TENANT_ID LEFT JOIN (SELECT TENANT_ID, MIN(VALUE) AS COMPATIBLE FROM SYS.ALL_VIRTUAL_TENANT_PARAMETER WHERE NAME = 'compatible' GROUP BY TENANT_ID) D ON A.TENANT_ID = D.TENANT_ID WHERE A.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.351_400.cpp b/src/share/inner_table/ob_inner_table_schema.351_400.cpp index fd884710a4..d95cd7f255 100644 --- a/src/share/inner_table/ob_inner_table_schema.351_400.cpp +++ b/src/share/inner_table/ob_inner_table_schema.351_400.cpp @@ -6090,6 +6090,25 @@ int ObInnerTableSchema::all_tenant_info_schema(ObTableSchema &table_schema) max_ls_id_default, max_ls_id_default); //default_value } + + if (OB_SUCC(ret)) { + ObObj restore_data_mode_default; + restore_data_mode_default.set_varchar(ObString::make_string("NORMAL")); + ADD_COLUMN_SCHEMA_T("restore_data_mode", //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 + 128, //column_length + -1, //column_precision + -1, //column_scale + false, //is_nullable + false, //is_autoincrement + restore_data_mode_default, + restore_data_mode_default); //default_value + } 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); diff --git a/src/share/inner_table/ob_inner_table_schema_def.py b/src/share/inner_table/ob_inner_table_schema_def.py index a97f5ae6d9..b3c1c79918 100644 --- a/src/share/inner_table/ob_inner_table_schema_def.py +++ b/src/share/inner_table/ob_inner_table_schema_def.py @@ -4157,6 +4157,7 @@ def_table_schema( ('recovery_until_scn', 'uint', 'false', 'OB_MAX_SCN_TS_NS'), ('log_mode', 'varchar:100', 'false', 'NOARCHIVELOG'), ('max_ls_id', 'int', 'false', '0'), + ('restore_data_mode', 'varchar:128', 'false', 'NORMAL'), ], ) @@ -18045,6 +18046,7 @@ def_table_schema( BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_OPTION, + RESTORE_TYPE, RESTORE_SCN, CASE WHEN RESTORE_SCN IS NULL @@ -18120,7 +18122,8 @@ def_table_schema( MAX(CASE NAME WHEN 'restore_start_ts' THEN VALUE ELSE '' END) AS START_TIMESTAMP, MAX(CASE NAME WHEN 'backup_set_list' THEN VALUE ELSE '' END) AS BACKUP_SET_LIST, MAX(CASE NAME WHEN 'backup_piece_list' THEN VALUE ELSE '' END) AS BACKUP_PIECE_LIST, - MAX(CASE NAME WHEN 'description' THEN VALUE ELSE '' END) AS DESCRIPTION + MAX(CASE NAME WHEN 'description' THEN VALUE ELSE '' END) AS DESCRIPTION, + MAX(CASE NAME WHEN 'restore_type' THEN VALUE ELSE '' END) AS RESTORE_TYPE FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB GROUP BY TENANT_ID, JOB_ID ) P LEFT JOIN ( @@ -18161,6 +18164,7 @@ def_table_schema( SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, RESTORE_OPTION, + RESTORE_TYPE, START_TIME AS START_TIMESTAMP, FINISH_TIME AS FINISH_TIMESTAMP, STATUS, @@ -19141,7 +19145,8 @@ SELECT A.TENANT_ID, COMPATIBLE, (CASE WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 1 - ELSE B.MAX_LS_ID END) AS MAX_LS_ID + ELSE B.MAX_LS_ID END) AS MAX_LS_ID, + RESTORE_DATA_MODE FROM OCEANBASE.__ALL_VIRTUAL_TENANT_MYSQL_SYS_AGENT AS A LEFT JOIN OCEANBASE.__ALL_VIRTUAL_TENANT_INFO AS B ON A.TENANT_ID = B.TENANT_ID @@ -26272,6 +26277,7 @@ def_table_schema( BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_OPTION, + RESTORE_TYPE, RESTORE_SCN, CASE WHEN RESTORE_SCN IS NULL @@ -26345,7 +26351,8 @@ def_table_schema( MAX(CASE NAME WHEN 'restore_start_ts' THEN VALUE ELSE '' END) AS START_TIMESTAMP, MAX(CASE NAME WHEN 'backup_set_list' THEN VALUE ELSE '' END) AS BACKUP_SET_LIST, MAX(CASE NAME WHEN 'backup_piece_list' THEN VALUE ELSE '' END) AS BACKUP_PIECE_LIST, - MAX(CASE NAME WHEN 'description' THEN VALUE ELSE '' END) AS DESCRIPTION + MAX(CASE NAME WHEN 'description' THEN VALUE ELSE '' END) AS DESCRIPTION, + MAX(CASE NAME WHEN 'restore_type' THEN VALUE ELSE '' END) AS RESTORE_TYPE FROM OCEANBASE.__ALL_VIRTUAL_RESTORE_JOB GROUP BY TENANT_ID, JOB_ID ) P LEFT JOIN ( @@ -26387,6 +26394,7 @@ def_table_schema( SCN_TO_TIMESTAMP(RESTORE_SCN) END AS RESTORE_SCN_DISPLAY, RESTORE_OPTION, + RESTORE_TYPE, START_TIME AS START_TIMESTAMP, FINISH_TIME AS FINISH_TIMESTAMP, STATUS, @@ -50605,6 +50613,7 @@ def_table_schema( BACKUP_CLUSTER_NAME, BACKUP_DEST, RESTORE_OPTION, + RESTORE_TYPE, RESTORE_SCN, CASE WHEN RESTORE_SCN IS NULL @@ -50676,7 +50685,8 @@ def_table_schema( MAX(CASE NAME WHEN 'restore_start_ts' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS START_TIMESTAMP, MAX(CASE NAME WHEN 'backup_set_list' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_SET_LIST, MAX(CASE NAME WHEN 'backup_piece_list' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS BACKUP_PIECE_LIST, - MAX(CASE NAME WHEN 'description' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS DESCRIPTION + MAX(CASE NAME WHEN 'description' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS DESCRIPTION, + MAX(CASE NAME WHEN 'restore_type' THEN CAST(VALUE AS VARCHAR2(4096)) ELSE '' END) AS RESTORE_TYPE FROM SYS.ALL_VIRTUAL_RESTORE_JOB GROUP BY TENANT_ID, JOB_ID ) P LEFT JOIN ( @@ -50715,6 +50725,7 @@ def_table_schema( RESTORE_SCN, SCN_TO_TIMESTAMP(RESTORE_SCN) AS RESTORE_SCN_DISPLAY, RESTORE_OPTION, + RESTORE_TYPE, START_TIME AS START_TIMESTAMP, FINISH_TIME AS FINISH_TIMESTAMP, STATUS, @@ -51387,7 +51398,8 @@ SELECT A.TENANT_ID, COMPATIBLE, (CASE WHEN (MOD(A.TENANT_ID, 2)) = 1 THEN 1 - ELSE B.MAX_LS_ID END) AS MAX_LS_ID + ELSE B.MAX_LS_ID END) AS MAX_LS_ID, + RESTORE_DATA_MODE FROM SYS.ALL_VIRTUAL_TENANT_SYS_AGENT A LEFT JOIN SYS.ALL_VIRTUAL_TENANT_INFO B ON A.TENANT_ID = B.TENANT_ID diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_mysql.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_mysql.result index 3a095e2014..0a30215909 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_mysql.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_mysql.result @@ -2013,6 +2013,7 @@ ARBITRATION_SERVICE_STATUS varchar(64) NO UNIT_NUM bigint(20) NO COMPATIBLE varchar(65536) NO MAX_LS_ID bigint(20) NO +RESTORE_DATA_MODE varchar(128) NO select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.DBA_OB_TENANTS limit 1); cnt 1 @@ -3820,6 +3821,7 @@ BACKUP_TENANT_ID longtext NO BACKUP_CLUSTER_NAME longtext NO BACKUP_DEST longtext NO RESTORE_OPTION longtext NO +RESTORE_TYPE longtext NO RESTORE_SCN longtext NO RESTORE_SCN_DISPLAY datetime(6) NO STATUS longtext NO @@ -3846,6 +3848,7 @@ BACKUP_DEST longtext NO NULL RESTORE_SCN bigint(20) unsigned NO NULL RESTORE_SCN_DISPLAY datetime(6) NO RESTORE_OPTION varchar(4096) NO NULL +RESTORE_TYPE varchar(4096) NO START_TIMESTAMP timestamp(6) YES NULL FINISH_TIMESTAMP timestamp(6) YES NULL STATUS varchar(64) NO diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_sys.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_sys.result index d8e51c435e..ceaaa407b1 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_sys.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_sys.result @@ -1772,6 +1772,7 @@ BACKUP_TENANT_ID longtext NO BACKUP_CLUSTER_NAME longtext NO BACKUP_DEST longtext NO RESTORE_OPTION longtext NO +RESTORE_TYPE longtext NO RESTORE_SCN longtext NO RESTORE_SCN_DISPLAY datetime(6) NO STATUS longtext NO @@ -1799,6 +1800,7 @@ BACKUP_DEST longtext NO NULL RESTORE_SCN bigint(20) unsigned NO NULL RESTORE_SCN_DISPLAY datetime(6) NO RESTORE_OPTION varchar(4096) NO NULL +RESTORE_TYPE varchar(4096) NO START_TIMESTAMP timestamp(6) YES NULL FINISH_TIMESTAMP timestamp(6) YES NULL STATUS varchar(64) NO @@ -2264,6 +2266,7 @@ ARBITRATION_SERVICE_STATUS varchar(64) NO UNIT_NUM bigint(20) NO COMPATIBLE varchar(65536) NO MAX_LS_ID bigint(20) NO +RESTORE_DATA_MODE varchar(128) NO select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.DBA_OB_TENANTS limit 1); cnt 1 @@ -5258,6 +5261,7 @@ BACKUP_TENANT_ID longtext NO BACKUP_CLUSTER_NAME longtext NO BACKUP_DEST longtext NO RESTORE_OPTION longtext NO +RESTORE_TYPE longtext NO RESTORE_SCN longtext NO RESTORE_SCN_DISPLAY datetime(6) NO STATUS longtext NO @@ -5284,6 +5288,7 @@ BACKUP_DEST longtext NO NULL RESTORE_SCN bigint(20) unsigned NO NULL RESTORE_SCN_DISPLAY datetime(6) NO RESTORE_OPTION varchar(4096) NO NULL +RESTORE_TYPE varchar(4096) NO START_TIMESTAMP timestamp(6) YES NULL FINISH_TIMESTAMP timestamp(6) YES NULL STATUS varchar(64) NO diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result index cad9b99eff..697e4de933 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result @@ -2569,6 +2569,7 @@ readable_scn bigint(20) unsigned NO NULL recovery_until_scn bigint(20) unsigned NO 4611686018427387903 log_mode varchar(100) NO NOARCHIVELOG max_ls_id bigint(20) NO 0 +restore_data_mode varchar(128) NO NORMAL select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_tenant_info; IF(count(*) >= 0, 1, 0) 1 diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result index 72b1914b20..8a595ab607 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result @@ -5858,6 +5858,7 @@ readable_scn bigint(20) unsigned NO NULL recovery_until_scn bigint(20) unsigned NO 4611686018427387903 log_mode varchar(100) NO NOARCHIVELOG max_ls_id bigint(20) NO 0 +restore_data_mode varchar(128) NO NORMAL select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_tenant_info; IF(count(*) >= 0, 1, 0) 1 diff --git a/tools/deploy/mysql_test/test_suite/view/r/mysql/dba_ob_tenants.result b/tools/deploy/mysql_test/test_suite/view/r/mysql/dba_ob_tenants.result index 4940a76c4b..09699b36cd 100644 --- a/tools/deploy/mysql_test/test_suite/view/r/mysql/dba_ob_tenants.result +++ b/tools/deploy/mysql_test/test_suite/view/r/mysql/dba_ob_tenants.result @@ -24,6 +24,7 @@ ARBITRATION_SERVICE_STATUS varchar(64) NO UNIT_NUM bigint(20) NO COMPATIBLE varchar(65536) NO MAX_LS_ID bigint(20) NO +RESTORE_DATA_MODE varchar(128) NO SELECT count(distinct(tenant_id)) >= 1 FROM DBA_OB_TENANTS; count(distinct(tenant_id)) >= 1 1 @@ -75,6 +76,7 @@ ARBITRATION_SERVICE_STATUS varchar(64) NO UNIT_NUM bigint(20) NO COMPATIBLE varchar(65536) NO MAX_LS_ID bigint(20) NO +RESTORE_DATA_MODE varchar(128) NO SELECT TENANT_NAME, count(*) = 1 FROM oceanbase.DBA_OB_TENANTS group by TENANT_ID; TENANT_NAME count(*) = 1 mysql 1