OceanBaseデータベースでは、指定されたバックアップセットまたはログアーカイブピースの検証をサポートしています。ユーザーは業務ニーズに応じて、現在のバックアップパス配下の指定されたバックアップセットのみを検証するか、現在のアーカイブパス配下のログアーカイブピースのみを検証するかを選択できます。
使用上の制限と注意事項
このドキュメントは、クラスタ内のテナントにおける
DATA_BACKUP_DESTおよびLOG_ARCHIVE_DESTで現在指定されているパス配下のバックアップセットまたはログアーカイブピースを検証する場合にのみ適用されます。現在のバックアップおよびアーカイブパス配下のすべてのバックアップセットとアーカイブピースを検証する必要がある場合は、バックアップパスとアーカイブパス全体の検証 を参照してください。また、バックアップ宛先またはアーカイブ宛先を変更したシナリオにおいて、元のバックアップパスまたはアーカイブパス配下のデータを検証する必要がある場合は、指定パス配下のバックアップセットまたはログアーカイブピースの検証 を参照してください。
検証タスクは、バックアップメディアに頻繁にアクセスしてデータを読み取るため、バックアップタスクのネットワークリソースを占有します。そのため、ユーザーテナントがバックアップタスクを実行しておらず、負荷が低い時に検証タスクを実行することを推奨します。
バックアップ検証の検証レベルを指定する際:
V4.4.2バージョンでは、V4.4.2 BP2バージョン(V4.4.2 BP2バージョンを除く)以前のバックアップセットおよびログアーカイブピースについては、Basic検証、すなわちファイルの整合性検証はサポートされていません。
V4.3.4バージョン(V4.3.4バージョンを除く)以前のバックアップセットについては、Physical検証、すなわち物理データの正確性および論理的一貫性検証はサポートされていません。
検証対象のバックアップセットに増分バックアップセットが含まれている場合、Physical検証レベルでは、現在のパス配下にその増分バックアップセットが依存するフルバックアップセットが含まれている必要があります。そうでない場合、検証は失敗します。
指定バックアップセットの検証
システムテナントからユーザーテナントの指定バックアップセットへのバックアップ検証の開始
rootユーザーでクラスタのsysテナントにログインします。接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A(オプション)検証対象のユーザーテナントのバックアップセットの
backup_set_idを取得します。obclient(root@sys)[(none)]> SELECT a.TENANT_ID, b.TENANT_NAME, a.BACKUP_SET_ID, a.BACKUP_TYPE, a.STATUS, a.FILE_STATUS, a.PATH FROM oceanbase.CDB_OB_BACKUP_SET_FILES a, oceanbase.DBA_OB_TENANTS b WHERE a.TENANT_ID = b.TENANT_ID AND b.TENANT_NAME = 'mysqltenant';クエリ結果は次のとおりです:
+-----------+-------------+---------------+-------------+---------+-------------+------------------------------------------+ | TENANT_ID | TENANT_NAME | BACKUP_SET_ID | BACKUP_TYPE | STATUS | FILE_STATUS | PATH | +-----------+-------------+---------------+-------------+---------+-------------+------------------------------------------+ | 1002 | mysqltenant | 1 | FULL | SUCCESS | AVAILABLE | file:///data/nfs/backup/data | | 1002 | mysqltenant | 2 | FULL | SUCCESS | AVAILABLE | file:///data/nfs/backup/data | +-----------+-------------+---------------+-------------+---------+-------------+------------------------------------------+ 2 rows in set以下のコマンドを実行し、ユーザーテナントの指定バックアップセットに対する検証を開始します。
ステートメントは次のとおりです:
ALTER SYSTEM VALIDATE BACKUPSET [= 'backup_set_id[,backup_set_id,...]'] [LEVEL = { 'basic' | 'physical' }] [TENANT = tenant_name];ステートメント内の関連パラメータの説明は以下のとおりです:
BACKUPSET:検証対象のバックアップセットを指定します。テナントの現在のバックアップパス配下のすべてのバックアップセット、または指定されたバックアップセットのリストを検証することをサポートします。バックアップセットのリストを指定する場合、複数のバックアップセットのbackup_set_idは半角カンマで区切ります。バックアップセットのbackup_set_idを指定しない場合、デフォルトでテナントの現在のバックアップパス配下のすべてのバックアップセットが検証されます。注意
backup_set_idを指定しない場合、システムは現在設定されているバックアップパス配下のすべてのバックアップセットを取得して検証するため、多数の検証タスクが生成され、時間がかかります。すべてのバックアップセットを検証する必要がない場合は、検証コマンドでbackup_set_idを指定することを推奨します。LEVEL:オプションパラメータで、検証レベルを表します。指定しない場合、デフォルト値はphysicalです。詳細は以下のとおりです:basic検証:ファイルリストの整合性のみをチェックします。physical検証:物理データの正確性と論理的一致性をチェックします。
TENANT:検証タスクを実行するユーザーテナントを指定します。指定しない場合、クラスタ内のすべてのユーザーテナントの指定されたバックアップセットを検証します。
例:
システムテナントは、すべてのユーザーテナントの現在のバックアップパスにあるすべてのバックアップセットに対してBasic検証を開始します。
obclient(root@sys)[(none)]> ALTER SYSTEM VALIDATE BACKUPSET LEVEL = 'basic';システムテナントは、ユーザーテナント
mysqltenantの現在のバックアップパスにあるすべてのバックアップセットに対してBasic検証を開始します。obclient(root@sys)[(none)]> ALTER SYSTEM VALIDATE BACKUPSET LEVEL = 'basic' TENANT = mysqltenant;システムテナントは、ユーザーテナント
mysqltenantの現在のバックアップパスにあるbackup_set_idが1および2のバックアップセットに対してPhysical検証を開始します。obclient(root@sys)[(none)]> ALTER SYSTEM VALIDATE BACKUPSET = '1,2' LEVEL = 'physical' TENANT = mysqltenant;システムテナントは、すべてのユーザーテナントの現在のバックアップパスにある
backup_set_idが1および2のバックアップセットに対してPhysical検証を開始します。obclient(root@sys)[(none)]> ALTER SYSTEM VALIDATE BACKUPSET = '1,2' LEVEL = 'physical';
ステートメントの実行が成功した後、
CDB_OB_BACKUP_VALIDATE_JOBS、CDB_OB_BACKUP_VALIDATE_TASKS、CDB_OB_BACKUP_VALIDATE_JOB_HISTORY、およびCDB_OB_BACKUP_VALIDATE_TASK_HISTORYビューを使用して、検証タスクの状態、進捗状況、および実行結果を確認できます。バックアップ検証の進捗状況を確認する詳細な操作と説明については、バックアップ検証の進捗状況を確認するを参照してください。
バックアップ検証結果を確認する詳細な操作と説明については、バックアップ検証結果を確認するを参照してください。
ユーザーテナントが自身の指定バックアップセットに対してバックアップ検証を開始する
ユーザーテナントのテナント管理者がデータベースにログインします。
説明
MySQLテナントの管理者ユーザーは
rootユーザー、Oracleテナントの管理者ユーザーはSYSユーザーです。接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@mysql001#obdemo -p***** -A(オプション)検証対象のバックアップセットの
backup_set_idを取得します。MySQLモードOracleモードMySQLモードでのクエリステートメントは以下のとおりです:
obclient(root@mysqltenant)[(none)]> SELECT BACKUP_SET_ID, BACKUP_TYPE, STATUS, FILE_STATUS, PATH FROM oceanbase.DBA_OB_BACKUP_SET_FILES;Oracleモードでのクエリステートメントは以下のとおりです:
obclient(SYS@oracletenant)[SYS]> SELECT BACKUP_SET_ID, BACKUP_TYPE, STATUS, FILE_STATUS, PATH FROM SYS.DBA_OB_BACKUP_SET_FILES;以下のコマンドを実行して、指定したバックアップセットの検証を開始します。
ステートメントは以下のとおりです:
ALTER SYSTEM VALIDATE BACKUPSET [= 'backup_set_id[,backup_set_id,...]'] [LEVEL = { 'basic' | 'physical' }];
ステートメント内の関連パラメータの説明は以下のとおりです:
BACKUPSET:検証するバックアップセットを指定します。テナントの現在のバックアップパス配下のすべてのバックアップセット、または指定されたバックアップセットのリストを検証できます。バックアップセットのリストを指定する場合、複数のバックアップセットbackup_set_idの間は半角カンマで区切ります。バックアップセットのbackup_set_idを指定しない場合、デフォルトでテナントの現在のバックアップパス配下のすべてのバックアップセットが検証されます。注意
backup_set_idを指定しない場合、システムは現在設定されているバックアップパス配下のすべてのバックアップセットを取得して検証するため、多数の検証タスクが生成され、時間がかかります。すべてのバックアップセットを検証する必要がない場合は、検証コマンドでbackup_set_idを指定することを推奨します。LEVEL:オプションパラメータで、検証レベルを表します。指定しない場合、デフォルト値はphysicalです。詳細は以下のとおりです:basic検証:ファイルリストの整合性のみをチェックします。physical検証:物理データの正確性と論理的一致性をチェックします。
例:
ユーザーテナントが自身の現在のバックアップパス配下のすべてのバックアップセットに対してBasic検証を開始します。
obclient> ALTER SYSTEM VALIDATE BACKUPSET LEVEL = 'basic';ユーザーテナントが自身の現在のバックアップパス配下で
backup_set_idが1および2のバックアップセットに対してPhysical検証を開始します。obclient> ALTER SYSTEM VALIDATE BACKUPSET = '1,2' LEVEL = 'physical';
- ステートメントの実行が成功すると、
DBA_OB_BACKUP_VALIDATE_JOBS、DBA_OB_BACKUP_VALIDATE_TASKS、DBA_OB_BACKUP_VALIDATE_JOB_HISTORY、およびDBA_OB_BACKUP_VALIDATE_TASK_HISTORYビューを使用して、検証タスクの状態、進捗状況、および実行結果をそれぞれ確認できます。
バックアップ検証の進捗状況を確認する詳細な操作と紹介については、バックアップ検証の進捗状況を確認するを参照してください。
バックアップ検証結果を確認する詳細な操作と紹介については、バックアップ検証結果を確認するを参照してください。
指定されたログアーカイブピースの検証
システムテナントがユーザーテナントの指定ログアーカイブピースに対してバックアップ検証を開始する
rootユーザーでクラスタのsysテナントにログインします。接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A(オプション)検証対象のユーザーテナントのログアーカイブピースの
piece_idを取得します。obclient(root@sys)[(none)]> SELECT a.TENANT_ID, b.TENANT_NAME, a.ROUND_ID, a.PIECE_ID, a.STATUS, a.FILE_STATUS, a.PATH FROM oceanbase.CDB_OB_ARCHIVELOG_PIECE_FILES a, oceanbase.DBA_OB_TENANTS b WHERE a.TENANT_ID = b.TENANT_ID AND b.TENANT_NAME = 'mysqltenant';クエリ結果は次のとおりです:
+-----------+-------------+----------+----------+--------+-------------+---------------------------------------------+ | TENANT_ID | TENANT_NAME | ROUND_ID | PIECE_ID | STATUS | FILE_STATUS | PATH | +-----------+-------------+----------+----------+--------+-------------+---------------------------------------------+ | 1002 | mysqltenant | 1 | 1 | ACTIVE | AVAILABLE | file:///data/nfs/backup/archive | | 1002 | mysqltenant | 1 | 2 | ACTIVE | AVAILABLE | file:///data/nfs/backup/archive | +-----------+-------------+----------+----------+--------+-------------+---------------------------------------------+ 2 row in set以下のコマンドを実行し、ユーザーテナントに対して指定ログアーカイブピースの検証を開始します。
ステートメントは以下のとおりです:
ALTER SYSTEM VALIDATE ARCHIVELOG_PIECE [= 'piece_id[,piece_id,...]'] [LEVEL = { 'basic' | 'physical' }] [TENANT = tenant_name];ステートメント内の関連パラメータの説明は以下のとおりです:
ARCHIVELOG_PIECE:検証対象のログアーカイブピースを指定します。テナントの現在のアーカイブパス下のすべてのアーカイブピース、または指定されたアーカイブピースリストを検証できます。アーカイブピースリストを指定する場合、複数のpiece_idは半角カンマで区切ります。piece_idを指定しない場合、デフォルトでテナントの現在のアーカイブパス下のすべてのログアーカイブピースが検証されます。注意
piece_idを指定しない場合、システムは現在設定されているアーカイブパス下のすべてのアーカイブピースを取得して検証するため、多数の検証タスクが生成され、時間がかかります。すべてのアーカイブピースを検証する必要がない場合は、検証コマンドでpiece_idを指定することを推奨します。LEVEL:オプションパラメータで、検証レベルを示します。指定しない場合、デフォルト値はphysicalです。詳細は以下のとおりです:basic検証:ファイルリストの整合性のみをチェックします。physical検証:物理データの正確性と論理的一致性をチェックします。
TENANT:オプションパラメータで、検証タスクを実行するユーザーテナントを指定するために使用します。指定しない場合、クラスタ内のすべてのユーザーテナントの指定アーカイブピースが検証されます。
例:
システムテナントが、すべてのユーザーテナントの現在のアーカイブパス下のすべてのアーカイブピースに対して Basic 検証を開始します。
obclient(root@sys)[(none)]> ALTER SYSTEM VALIDATE ARCHIVELOG_PIECE LEVEL = 'basic';システムテナントが、ユーザーテナント
mysqltenantの現在のアーカイブパス下のすべてのアーカイブピースに対して Basic 検証を開始します。obclient(root@sys)[(none)]> ALTER SYSTEM VALIDATE ARCHIVELOG_PIECE LEVEL = 'basic' TENANT = mysqltenant;システムテナントは、ユーザーテナント
mysqltenantの現在のアーカイブパスにあるpiece_idが1および2のログアーカイブピースに対して物理検証を開始します。obclient(root@sys)[(none)]> ALTER SYSTEM VALIDATE ARCHIVELOG_PIECE = '1,2' LEVEL = 'physical' TENANT = mysqltenant;システムテナントは、すべてのユーザーテナントの現在のアーカイブパスにある
piece_idが1および2のログアーカイブピースに対して物理検証を開始します。obclient(root@sys)[(none)]> ALTER SYSTEM VALIDATE ARCHIVELOG_PIECE = '1,2' LEVEL = 'physical';
ステートメントの実行が成功した後、
CDB_OB_BACKUP_VALIDATE_JOBS、CDB_OB_BACKUP_VALIDATE_TASKS、CDB_OB_BACKUP_VALIDATE_JOB_HISTORY、およびCDB_OB_BACKUP_VALIDATE_TASK_HISTORYビューを使用して、検証タスクの状態、進捗状況、および実行結果を確認できます。バックアップ検証の進捗状況を確認する詳細な操作と説明については、バックアップ検証の進捗状況を確認するを参照してください。
バックアップ検証結果を確認する詳細な操作と説明については、バックアップ検証結果を確認するを参照してください。
ユーザーテナントが自身のテナントに対する指定されたログアーカイブピースのバックアップ検証を開始する
ユーザーテナントのテナント管理者がデータベースにログインします。
説明
MySQLテナントの管理者ユーザーは
rootユーザー、Oracleテナントの管理者ユーザーはSYSユーザーです。接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@mysql001#obdemo -p***** -A(オプション)検証対象のログアーカイブピースの
piece_idを取得します。MySQLモードOracleモードMySQLモードのクエリステートメントは以下のとおりです:
obclient(root@mysqltenant)[(none)]> SELECT ROUND_ID, PIECE_ID, STATUS, FILE_STATUS, PATH FROM oceanbase.DBA_OB_ARCHIVELOG_PIECE_FILES;Oracleモードのクエリステートメントは以下のとおりです:
obclient(SYS@oracletenant)[SYS]> SELECT ROUND_ID, PIECE_ID, STATUS, FILE_STATUS, PATH FROM SYS.DBA_OB_ARCHIVELOG_PIECE_FILES;以下のコマンドを実行し、指定されたログアーカイブピースの検証を開始します。
ステートメントは以下のとおりです:
ALTER SYSTEM VALIDATE ARCHIVELOG_PIECE [= 'piece_id[,piece_id,...]'] [LEVEL = { 'basic' | 'physical' }];ステートメント内の関連パラメータの説明は以下のとおりです:
ARCHIVELOG_PIECE:検証対象のログアーカイブピースを指定します。テナントの現在のアーカイブパス配下のすべてのアーカイブピース、または指定されたアーカイブピースリストを検証できます。アーカイブピースリストを指定する場合、複数のpiece_idを半角カンマで区切ります。piece_idを指定しない場合、デフォルトでテナントの現在のアーカイブパス配下のすべてのログアーカイブピースが検証されます。注意
piece_idを指定しない場合、システムは現在設定されているアーカイブパス配下のすべてのアーカイブピースを取得して検証するため、多数の検証タスクが生成され、時間がかかります。すべてのアーカイブピースを検証する必要がない場合は、検証コマンドにpiece_idを指定することを推奨します。LEVEL:オプションのパラメータで、検証レベルを示します。指定しない場合、デフォルト値はphysicalです。詳細は以下のとおりです:basic検証:ファイルリストの整合性のみをチェックします。physical検証:物理データの正確性と論理的一致性をチェックします。
例:
ユーザーテナントは、現在のアーカイブパス配下にある自身のテナントのすべてのアーカイブピースに対して Basic 検証を開始します。
obclient> ALTER SYSTEM VALIDATE ARCHIVELOG_PIECE LEVEL = 'basic';ユーザーテナントは、現在のアーカイブパス配下で
piece_idが1および2のログアーカイブピースに対して Physical 検証を開始します。obclient> ALTER SYSTEM VALIDATE ARCHIVELOG_PIECE = '1,2' LEVEL = 'physical';
ステートメントの実行が成功した後、
DBA_OB_BACKUP_VALIDATE_JOBS、DBA_OB_BACKUP_VALIDATE_TASKS、DBA_OB_BACKUP_VALIDATE_JOB_HISTORY、およびDBA_OB_BACKUP_VALIDATE_TASK_HISTORYビューを使用して、検証タスクの状態、進捗状況、および実行結果をそれぞれ確認できます。バックアップ検証の進捗状況を確認する詳細な操作と紹介については、バックアップ検証の進捗状況を確認するを参照してください。
バックアップ検証結果を確認する詳細な操作と紹介については、バックアップ検証結果を確認するを参照してください。