テーブルレベル復元タスクが終了した後、ビューを通じてテーブルレベル復元の結果を確認できます。
ステップ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:対象テーブルの復元に成功し、対象テーブルに関連付けられたSchemaもすべて正常に復元された場合
*************************** 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:対象テーブルの復元に成功したものの、対象テーブルに関連付けられたSchemaの一部が復元に失敗した場合
一般的に、テーブルに関連付けられたSchema(インデックステーブル、制約、外部キーなど)の復元失敗は、主テーブルのタスクの復元には影響しません。例えば、以下の戻り結果で、
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