テーブルレベルの復元タスクが終了した後、ビューを使用してテーブルレベルの復元結果を確認できます。
ステップ1:テーブルレベル復元タスク全体の実行結果を確認する
rootユーザーで、復元対象のテーブルがあるターゲットテナントが配置されているクラスタのsysテナントにログインします。以下のコマンドを実行して、テーブルレベル復元タスク全体の結果と補助テナントの復元結果を確認します。
テーブルレベル復元タスク全体の結果を確認します。
obclient> SELECT * FROM oceanbase.CDB_OB_RECOVER_TABLE_JOB_HISTORY WHERE TENANT_ID = tenant_id\GCDB_OB_RECOVER_TABLE_JOB_HISTORYビューの各フィールドは、基本的にCDB_OB_RECOVER_TABLE_JOBSと対応しています。その中で、フィールドCOMMENTはタスクが失敗した場合の関連エラー情報を記録するために使用されます。ビューCDB_OB_RECOVER_TABLE_JOB_HISTORYのフィールドに関する詳細な説明については、物理復元関連ビューの紹介を参照してください。tenant_idは実際のテナントIDに置き換える必要があります。クエリ結果の例は以下のとおりです:例1:すべての対象テーブルが正常に復元されました
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 2 INITIATOR_TENANT_ID: 1 INITIATOR_JOB_ID: 2 START_TIMESTAMP: 2025-09-11 11:42:19.274226 FINISH_TIMESTAMP: 2025-09-11 11:43:35.495161 STATUS: COMPLETED AUX_TENANT_NAME: AUX_RECOVER$1692106995896258 TARGET_TENANT_NAME: backup_tenant IMPORT_ALL: 0 DB_LIST: `DB` TABLE_LIST: `TEST`.`T1`,`TEST`.`T2`,`TEST`.`T3` RESTORE_SCN: 1692104831498747191 RESTORE_SCN_DISPLAY: 2025-09-11 11:40:15.000000 RESTORE_OPTION: pool_list=small_pool_0&primary_zone=z1 BACKUP_DEST: file:///data2/nfs/ob_backup_oracle_tenant/archive,file:///data2/nfs/ob_backup_oracle_tenant/data BACKUP_SET_LIST: file:///data2/nfs/ob_backup_oracle_tenant/data/backup_set_1_full BACKUP_PIECE_LIST: file:///data2/nfs/ob_backup_oracle_tenant/archive/piece_d1001r1p1 BACKUP_PASSWD: NULL EXTERNAL_KMS_INFO: NULL REMAP_DB_LIST: REMAP_TABLE_LIST: `TEST`.`T1`:`RECOVER_TEST`.`T1`,`TEST`.`T2`:`RECOVER_TEST`.`T2`,`TEST`.`T3`:`RECOVER_TEST`.`T3` REMAP_TABLEGROUP_LIST: REMAP_TABLESPACE_LIST: RESULT: SUCCESS COMMENT: import succeed table count: 3, failed table count: 0 DESCRIPTION: NULL 1 row in set例2:一部の対象テーブルが正常に復元され、一部のテーブルが失敗しました
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 2 INITIATOR_TENANT_ID: 1 INITIATOR_JOB_ID: 2 START_TIMESTAMP: 2025-09-11 11:42:19.274226 FINISH_TIMESTAMP: 2025-09-11 11:43:35.495161 STATUS: COMPLETED AUX_TENANT_NAME: AUX_RECOVER$1692106995896258 TARGET_TENANT_NAME: backup_tenant IMPORT_ALL: 0 DB_LIST: `DB` TABLE_LIST: `TEST`.`T1`,`TEST`.`T2`,`TEST`.`T3` RESTORE_SCN: 1692104831498747191 RESTORE_SCN_DISPLAY: 2025-09-11 11:40:15.000000 RESTORE_OPTION: pool_list=small_pool_0&primary_zone=z1 BACKUP_DEST: file:///data2/nfs/ob_backup_oracle_tenant/archive,file:///data2/nfs/ob_backup_oracle_tenant/data BACKUP_SET_LIST: file:///data2/nfs/ob_backup_oracle_tenant/data/backup_set_1_full BACKUP_PIECE_LIST: file:///data2/nfs/ob_backup_oracle_tenant/archive/piece_d1001r1p1 BACKUP_PASSWD: NULL EXTERNAL_KMS_INFO: NULL REMAP_DB_LIST: REMAP_TABLE_LIST: `TEST`.`T1`:`RECOVER_TEST`.`T1`,`TEST`.`T2`:`RECOVER_TEST`.`T2`,`TEST`.`T3`:`RECOVER_TEST`.`T3` REMAP_TABLEGROUP_LIST: REMAP_TABLESPACE_LIST: RESULT: PARTIAL_SUCCESS COMMENT: import succeed table count: 2, failed table count: 1 DESCRIPTION: NULL 1 row in set例3:ユーザーが途中でテーブルレベル復元タスクをキャンセルしたため、一部の対象テーブルが正常に復元されました
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 2 INITIATOR_TENANT_ID: 1 INITIATOR_JOB_ID: 2 START_TIMESTAMP: 2025-09-11 11:42:19.274226 FINISH_TIMESTAMP: 2025-09-11 11:43:35.495161 STATUS: COMPLETED AUX_TENANT_NAME: AUX_RECOVER$1692106995896258 TARGET_TENANT_NAME: backup_tenant IMPORT_ALL: 0 DB_LIST: `DB` TABLE_LIST: `TEST`.`T1`,`TEST`.`T2`,`TEST`.`T3` RESTORE_SCN: 1692104831498747191 RESTORE_SCN_DISPLAY: 2025-09-11 11:40:15.000000 RESTORE_OPTION: pool_list=small_pool_0&primary_zone=z1 BACKUP_DEST: file:///data2/nfs/ob_backup_oracle_tenant/archive,file:///data2/nfs/ob_backup_oracle_tenant/data BACKUP_SET_LIST: file:///data2/nfs/ob_backup_oracle_tenant/data/backup_set_1_full BACKUP_PIECE_LIST: file:///data2/nfs/ob_backup_oracle_tenant/archive/piece_d1001r1p1 BACKUP_PASSWD: NULL EXTERNAL_KMS_INFO: NULL REMAP_DB_LIST: REMAP_TABLE_LIST: `TEST`.`T1`:`RECOVER_TEST`.`T1`,`TEST`.`T2`:`RECOVER_TEST`.`T2`,`TEST`.`T3`:`RECOVER_TEST`.`T3` REMAP_TABLEGROUP_LIST: REMAP_TABLESPACE_LIST: RESULT: PARTIAL_SUCCESS COMMENT: comment: OB_CANCEL(-4072), addr:11.xxx.xxx.xxx:18000, trace_id:Y4********-**********-0-0 DESCRIPTION: NULL 1 row in set例4:すべての対象テーブルが失敗しました
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 2 INITIATOR_TENANT_ID: 1 INITIATOR_JOB_ID: 2 START_TIMESTAMP: 2025-09-11 11:42:19.274226 FINISH_TIMESTAMP: 2025-09-11 11:43:35.495161 STATUS: COMPLETED AUX_TENANT_NAME: AUX_RECOVER$1692106995896258 TARGET_TENANT_NAME: backup_tenant IMPORT_ALL: 0 DB_LIST: `DB` TABLE_LIST: `TEST`.`T1`,`TEST`.`T2`,`TEST`.`T3` RESTORE_SCN: 1692104831498747191 RESTORE_SCN_DISPLAY: 2025-09-11 11:40:15.000000 RESTORE_OPTION: pool_list=small_pool_0&primary_zone=z1 BACKUP_DEST: file:///data2/nfs/ob_backup_oracle_tenant/archive,file:///data2/nfs/ob_backup_oracle_tenant/data BACKUP_SET_LIST: file:///data2/nfs/ob_backup_oracle_tenant/data/backup_set_1_full BACKUP_PIECE_LIST: file:///data2/nfs/ob_backup_oracle_tenant/archive/piece_d1001r1p1 BACKUP_PASSWD: NULL EXTERNAL_KMS_INFO: NULL REMAP_DB_LIST: REMAP_TABLE_LIST: `TEST`.`T1`:`RECOVER_TEST`.`T1`,`TEST`.`T2`:`RECOVER_TEST`.`T2`,`TEST`.`T3`:`RECOVER_TEST`.`T3` REMAP_TABLEGROUP_LIST: REMAP_TABLESPACE_LIST: RESULT: FAILED COMMENT: import succeed table count: 0, failed table count: 3 DESCRIPTION: NULL 1 row in set
補助テナントの復元タスクの結果を確認します。
obclient> SELECT * FROM oceanbase.CDB_OB_RESTORE_HISTORY\G補助テナントの復元は、テナントレベルの物理復元プロセスと同じです。物理復元結果の詳細については、物理復元結果を確認するを参照してください。
ステップ2:テナント間データ導入タスク全体の実行結果を確認する
テーブルレベルの復元タスク全体の実行状況に基づき、テナント間データ導入タスク全体の実行結果を詳しく確認できます。
rootユーザーで、復元対象のテーブルが存在するテナントが属するクラスタのsysテナントにログインします。以下のコマンドを実行して、対象テナントのテナント間インポートタスクの結果を確認します。
obclient> SELECT * FROM oceanbase.CDB_OB_IMPORT_TABLE_JOB_HISTORY WHERE TENANT_ID = tenant_id AND INITIATOR_JOB_ID = recover_table_job_id\Gここで、
tenant_idは実際のテナントIDに、recover_table_job_idは手順1:テーブルレベルの復元タスク全体の実行結果を確認するで照会したテーブルレベルの復元タスクのJOB_IDに置き換える必要があります。CDB_OB_IMPORT_TABLE_JOB_HISTORYビューの各フィールドは、基本的にCDB_OB_IMPORT_TABLE_JOBSと対応しています。その中で、COMMENTフィールドはタスク失敗時の関連エラー情報を記録するために使用されます。ビューCDB_OB_IMPORT_TABLE_JOB_HISTORYのフィールドに関する詳細な説明については、物理復元関連ビューの紹介を参照してください。クエリ結果の例は以下のとおりです:
例1:すべての対象テーブルが正常に復元されました
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 3 INITIATOR_TENANT_ID: 1002 INITIATOR_JOB_ID: 2 START_TIMESTAMP: 2025-09-11 11:43:15.204649 FINISH_TIMESTAMP: 2025-09-11 11:43:25.453894 SRC_TENANT_NAME: AUX_RECOVER$1692179849034890 SRC_TENANT_ID: 1004 STATUS: IMPORT_FINISH IMPORT_ALL: 0 DB_LIST: TABLE_LIST: `TEST`.`T1`,`TEST`.`T2`,`TEST`.`T3` REMAP_DB_LIST: REMAP_TABLE_LIST: `TEST`.`T1`:`RECOVER_TEST`.`T1`,`TEST`.`T2`:`RECOVER_TEST`.`T2`,`TEST`.`T3`:`RECOVER_TEST`.`T3` REMAP_TABLEGROUP_LIST: REMAP_TABLESPACE_LIST: TOTAL_TABLE_COUNT: 3 FINISHED_TABLE_COUNT: 3 FAILED_TABLE_COUNT: 0 RESULT: SUCCESS COMMENT: import succeed table count: 3, failed table count: 0 1 row in set例2:一部の対象テーブルが正常に復元されました。つまり、一部のテーブルは正常に復元され、一部のテーブルは復元に失敗しました。
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 3 INITIATOR_TENANT_ID: 1002 INITIATOR_JOB_ID: 2 START_TIMESTAMP: 2025-09-11 11:43:15.204649 FINISH_TIMESTAMP: 2025-09-11 11:43:25.453894 SRC_TENANT_NAME: AUX_RECOVER$1692179849034890 SRC_TENANT_ID: 1004 STATUS: IMPORT_FINISH IMPORT_ALL: 0 DB_LIST: TABLE_LIST: `TEST`.`T1`,`TEST`.`T2`,`TEST`.`T3` REMAP_DB_LIST: REMAP_TABLE_LIST: `TEST`.`T1`:`RECOVER_TEST`.`T1`,`TEST`.`T2`:`RECOVER_TEST`.`T2`,`TEST`.`T3`:`RECOVER_TEST`.`T3` REMAP_TABLEGROUP_LIST: REMAP_TABLESPACE_LIST: TOTAL_TABLE_COUNT: 3 FINISHED_TABLE_COUNT: 2 FAILED_TABLE_COUNT: 1 RESULT: PARTIAL_SUCCESS COMMENT: import succeed table count: 2, failed table count: 1 1 row in set例3:ユーザーが途中でテーブルレベルの復元タスクをキャンセルしたため、一部の対象テーブルが正常に復元されました。
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 3 INITIATOR_TENANT_ID: 1002 INITIATOR_JOB_ID: 2 START_TIMESTAMP: 2025-09-11 11:43:15.204649 FINISH_TIMESTAMP: 2025-09-11 11:43:25.453894 SRC_TENANT_NAME: AUX_RECOVER$1692179849034890 SRC_TENANT_ID: 1004 STATUS: IMPORT_FINISH IMPORT_ALL: 0 DB_LIST: TABLE_LIST: `TEST`.`T1`,`TEST`.`T2`,`TEST`.`T3` REMAP_DB_LIST: REMAP_TABLE_LIST: `TEST`.`T1`:`RECOVER_TEST`.`T1`,`TEST`.`T2`:`RECOVER_TEST`.`T2`,`TEST`.`T3`:`RECOVER_TEST`.`T3` REMAP_TABLEGROUP_LIST: REMAP_TABLESPACE_LIST: TOTAL_TABLE_COUNT: 3 FINISHED_TABLE_COUNT: 2 FAILED_TABLE_COUNT: 1 RESULT: PARTIAL_SUCCESS COMMENT: comment: OB_CANCEL(-4072), addr:11.xxx.xxx.xxx:18000, trace_id:Y4********-**********-0-0 1 row in set例4:すべての対象テーブルが復元に失敗しました。
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 3 INITIATOR_TENANT_ID: 1002 INITIATOR_JOB_ID: 2 START_TIMESTAMP: 2025-09-11 11:43:15.204649 FINISH_TIMESTAMP: 2025-09-11 11:43:25.453894 SRC_TENANT_NAME: AUX_RECOVER$1692179849034890 SRC_TENANT_ID: 1004 STATUS: IMPORT_FINISH IMPORT_ALL: 0 DB_LIST: TABLE_LIST: `TEST`.`T1`,`TEST`.`T2`,`TEST`.`T3` REMAP_DB_LIST: REMAP_TABLE_LIST: `TEST`.`T1`:`RECOVER_TEST`.`T1`,`TEST`.`T2`:`RECOVER_TEST`.`T2`,`TEST`.`T3`:`RECOVER_TEST`.`T3` REMAP_TABLEGROUP_LIST: REMAP_TABLESPACE_LIST: TOTAL_TABLE_COUNT: 3 FINISHED_TABLE_COUNT: 0 FAILED_TABLE_COUNT: 3 RESULT: FAILED COMMENT: import succeed table count: 0, failed table count: 3 1 row in set
手順3:各テーブルの実行結果を確認する
テナント間データ導入タスクの実行状況に基づき、インポートに失敗したテーブルがある場合は、各テーブルの実行結果を詳しく確認できます。
rootユーザーで、復元対象のテーブルが存在するテナントが属するクラスタのsysテナントにログインします。以下のコマンドを実行して、各テーブルのインポート結果を確認します。
obclient> SELECT * FROM oceanbase.CDB_OB_IMPORT_TABLE_TASK_HISTORY WHERE TENANT_ID = tenant_id AND JOB_ID = import_table_job_id\Gここで、
tenant_idは実際のテナントIDに、import_table_job_idは手順2:テナント間データ導入タスク全体の実行結果を確認するで照会したテナント間データ導入タスクのJOB_IDに置き換える必要があります。CDB_OB_IMPORT_TABLE_TASK_HISTORYビューの各フィールドは、基本的にCDB_OB_IMPORT_TABLE_TASKSと対応しています。その中で、COMMENTフィールドはタスク失敗時の関連エラー情報を記録するために使用されます。ビューCDB_OB_IMPORT_TABLE_TASK_HISTORYのフィールドに関する詳細な説明については、物理復元関連ビューの紹介を参照してください。クエリ結果の例は以下のとおりです:
例1:対象テーブルが正常に復元され、対象テーブルに関連付けられたスキーマもすべて正常に復元されました。
*************************** 1. row *************************** TENANT_ID: 1002 TASK_ID: 1047 JOB_ID: 3 SRC_TENANT_ID: 1004 SRC_TABLESPACE: NULL SRC_TABLEGROUP: NULL SRC_DATABASE: TEST SRC_TABLE: T1 SRC_PARTITION: NULL TARGET_TABLESPACE: NULL TARGET_TABLEGROUP: NULL TARGET_DATABASE: RECOVER_TEST TARGET_TABLE: T1 TABLE_COLUMN: 7 STATUS: FINISH START_TIMESTAMP: 2025-09-11 11:43:15.270078 COMPLETION_TIMESTAMP: 2025-09-11 11:43:25.422834 CUMULATIVE_TS: -1 TOTAL_INDEX_COUNT: 2 IMPORTED_INDEX_COUNT: 2 FAILED_INDEX_COUNT: 0 TOTAL_CONSTRAINT_COUNT: 1 IMPORTED_CONSTRAINT_COUNT: 1 FAILED_CONSTRAINT_COUNT: 0 TOTAL_REF_CONSTRAINT_COUNT: 0 IMPORTED_REF_CONSTRAINT_COUNT: 0 FAILED_REF_CONSTRAINT_COUNT: 0 RESULT: SUCCEESS COMMENT: 1 row in set例2:ターゲットテーブルの復元は成功しましたが、復元中にユーザーが復元済みのターゲットテーブルを削除しました。
*************************** 1. row *************************** TENANT_ID: 1002 TASK_ID: 1047 JOB_ID: 3 SRC_TENANT_ID: 1004 SRC_TABLESPACE: NULL SRC_TABLEGROUP: NULL SRC_DATABASE: TEST SRC_TABLE: T1 SRC_PARTITION: NULL TARGET_TABLESPACE: NULL TARGET_TABLEGROUP: NULL TARGET_DATABASE: RECOVER_TEST TARGET_TABLE: T1 TABLE_COLUMN: 7 STATUS: FINISH START_TIMESTAMP: 2025-09-11 11:43:15.270078 COMPLETION_TIMESTAMP: 2025-09-11 11:43:25.422834 CUMULATIVE_TS: -1 TOTAL_INDEX_COUNT: 2 IMPORTED_INDEX_COUNT: 2 FAILED_INDEX_COUNT: 0 TOTAL_CONSTRAINT_COUNT: 1 IMPORTED_CONSTRAINT_COUNT: 1 FAILED_CONSTRAINT_COUNT: 0 TOTAL_REF_CONSTRAINT_COUNT: 0 IMPORTED_REF_CONSTRAINT_COUNT: 0 FAILED_REF_CONSTRAINT_COUNT: 0 RESULT: SUCCEESS COMMENT: table type_tbl has been deleted by user 1 row in set例3:ターゲットテーブルの復元は成功しましたが、ターゲットテーブルに関連付けられたスキーマの一部の復元に失敗しました。
一般的に、テーブルに関連付けられたスキーマ(インデックステーブル、制約、外部キーなど)の復元に失敗しても、メインテーブルタスクの復元には影響しません。例えば、以下の実行結果で、
FAILED_INDEX_COUNTが1である場合、ターゲットテーブルに関連付けられたインデックスのうち1つの復元に失敗したことを意味しますが、メインテーブルの復元タスクは依然として成功しています。***************************** 1. row *************************** TENANT_ID: 1002 TASK_ID: 1047 JOB_ID: 3 SRC_TENANT_ID: 1004 SRC_TABLESPACE: NULL SRC_TABLEGROUP: NULL SRC_DATABASE: TEST SRC_TABLE: T1 SRC_PARTITION: NULL TARGET_TABLESPACE: NULL TARGET_TABLEGROUP: NULL TARGET_DATABASE: TEST TARGET_TABLE: T1 TABLE_COLUMN: 2 STATUS: FINISH START_TIMESTAMP: 2025-09-11 11:43:15.270078 COMPLETION_TIMESTAMP: 2025-09-11 11:43:25.422834 CUMULATIVE_TS: -1 TOTAL_INDEX_COUNT: 2 IMPORTED_INDEX_COUNT: 1 FAILED_INDEX_COUNT: 1 TOTAL_CONSTRAINT_COUNT: 2 IMPORTED_CONSTRAINT_COUNT: 2 FAILED_CONSTRAINT_COUNT: 0 TOTAL_REF_CONSTRAINT_COUNT: 0 IMPORTED_REF_CONSTRAINT_COUNT: 0 FAILED_REF_CONSTRAINT_COUNT: 0 RESULT: SUCCEESS COMMENT: 1 row in set特に、Oracleモードでは、テーブルの制約名はユーザー内で一意である必要があります。テーブル名の主キー制約が制約名の競合により復元に失敗した場合、メインテーブルの復元に影響を及ぼし、結果としてテーブル全体の復元タスクが失敗します。例えば、以下の実行結果では、主キー制約の復元に失敗したため、メインテーブルの復元タスクが失敗しています。
***************************** 1. row *************************** TENANT_ID: 1002 TASK_ID: 1047 JOB_ID: 3 SRC_TENANT_ID: 1004 SRC_TABLESPACE: NULL SRC_TABLEGROUP: NULL SRC_DATABASE: TEST SRC_TABLE: T1 SRC_PARTITION: NULL TARGET_TABLESPACE: NULL TARGET_TABLEGROUP: NULL TARGET_DATABASE: TEST TARGET_TABLE: T1 TABLE_COLUMN: 2 STATUS: FINISH START_TIMESTAMP: 2025-09-11 11:43:15.270078 COMPLETION_TIMESTAMP: 2025-09-11 11:43:25.422834 CUMULATIVE_TS: -1 TOTAL_INDEX_COUNT: 0 IMPORTED_INDEX_COUNT: 0 FAILED_INDEX_COUNT: 0 TOTAL_CONSTRAINT_COUNT: 2 IMPORTED_CONSTRAINT_COUNT: 0 FAILED_CONSTRAINT_COUNT: 2 TOTAL_REF_CONSTRAINT_COUNT: 0 IMPORTED_REF_CONSTRAINT_COUNT: 0 FAILED_REF_CONSTRAINT_COUNT: 0 RESULT: FAILED COMMENT: OBE-02264: name already used by an existing constraint 1 row in set