このドキュメントは、OceanBaseデータベースの物理バックアップとリカバリを初めて使用するユーザー向けに、テナントレベルのバックアップとリカバリの非常にシンプルな例を通じて、最小限必要な操作手順を提供することを目的としています。主な手順は以下の3つです:
- ログアーカイブを開始します。
- データバックアップを開始します。
- 物理リカバリを開始します。
注意事項
- 本記事は、1つのテナントをバックアップする例を挙げて説明します。複数のテナントをバックアップする場合は、バックアップ宛先およびアーカイブ宛先を設定する際に、各テナントのバックアップパスとアーカイブパスを独立した空ディレクトリとして設定する必要があります。異なるテナント間で同一のパスを設定することはできません。
- OceanBaseデータベースは、同一クラスタ内での復旧だけでなく、異なるクラスタ間での復旧もサポートしています。
前提条件
この例では、バックアップメディアとしてNFSを使用します。物理バックアップ・リカバリの体験を始める前に、NFSのデプロイが完了していることを確認してください。NFSのデプロイに関する操作については、NFSのデプロイを参照してください。
背景
本記事では、暗号化されていないテナントoracle_testを例に、物理バックアップ機能を使用してこのテナントをバックアップし、その後バックアップデータを使用して新しいテナントoracle_backupを復元する方法について説明します。
この例の重要なポイントは以下のとおりです:
ソーステナントのログアーカイブパスは
/data/nfs/backup/archiveです。アーカイブはデフォルトのビジネス優先モード(Optional)を選択し、2日ごとに1つのログピースを分割します。
ソーステナントのデータバックアップパスは
/data/nfs/backup/dataです。復元対象のターゲットテナント
oracle_backupのリソースプールはrestore_pool、レプリカLocalityはF@z1であり、テナントを最新のポイントに復元します。テナントがマルチレプリカクラスタに属している場合は、データの復元の手順に従って復元を実行してください。
操作手順
ステップ1:ログアーカイブの開始
oracle_testテナントのテナント管理者でデータベースにログインします。以下のコマンドを実行して、アーカイブ先を設定します。
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive';ログアーカイブモードを有効にします。
obclient> ALTER SYSTEM ARCHIVELOG;ログアーカイブのステータスが
DOINGであることを確認します。ログアーカイブのステータスがDOINGの場合にのみ、データバックアップを開始できます。obclient> SELECT * FROM DBA_OB_ARCHIVELOG\Gクエリ結果は次のとおりです:
*************************** 1. row *************************** DEST_ID: 1001 ROUND_ID: 1 INCARNATION: 1 DEST_NO: 0 STATUS: DOING START_SCN: 1706670992366131000 START_SCN_DISPLAY: 2024-01-31 11:16:32.366131 CHECKPOINT_SCN: 1706670992366131001 CHECKPOINT_SCN_DISPLAY: 2024-01-31 11:16:32.366131 COMPATIBLE: 1 BASE_PIECE_ID: 1 USED_PIECE_ID: 1 PIECE_SWITCH_INTERVAL: 86400000000 UNIT_SIZE: 1 COMPRESSION: none INPUT_BYTES: 54533925 INPUT_BYTES_DISPLAY: 52.01MB OUTPUT_BYTES: 54533925 OUTPUT_BYTES_DISPLAY: 52.01MB COMPRESSION_RATIO: 1.00 DELETED_INPUT_BYTES: 0 DELETED_INPUT_BYTES_DISPLAY: 0.00MB DELETED_OUTPUT_BYTES: 0 DELETED_OUTPUT_BYTES_DISPLAY: 0.00MB COMMENT: PATH: file:///data/nfs/backup/archive 1 row in setクエリ結果から、ログアーカイブのステータス
STATUSがDOINGであることがわかります。
ログアーカイブの詳細な操作と説明については、ログアーカイブセクションを参照してください。
ステップ2:データバックアップの開始
ログアーカイブ状態がDOINGになっていることを確認したら、データバックアップを開始できます。
oracle_testテナントのテナント管理者でデータベースにログインします。以下のコマンドを実行して、バックアップ先を設定します。
obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='file:///data/nfs/backup/data';フルデータバックアップを開始します。
obclient> ALTER SYSTEM BACKUP DATABASE;データバックアップの終了を待ちます。
ビュー
DBA_OB_BACKUP_TASKSを照会することができます。照会結果のタスクリストが空であれば、データバックアップは完了しています。obclient> SELECT * FROM DBA_OB_BACKUP_TASKS;データバックアップの結果を確認します。
obclient> SELECT * FROM DBA_OB_BACKUP_JOB_HISTORY;クエリ結果は次のとおりです:
*************************** 1. row *************************** JOB_ID: 1 INCARNATION: 1 BACKUP_SET_ID: 1 INITIATOR_TENANT_ID: 1002 INITIATOR_JOB_ID: 0 EXECUTOR_TENANT_ID: 1002 PLUS_ARCHIVELOG: OFF BACKUP_TYPE: FULL JOB_LEVEL: USER_TENANT ENCRYPTION_MODE: NONE PASSWD: START_TIMESTAMP: 2024-01-31 11:20:59.804836 END_TIMESTAMP: 2024-01-31 11:23:08.773566 STATUS: COMPLETED RESULT: 0 COMMENT: DESCRIPTION: PATH: file:///data/nfs/backup/data 1 row in set
詳細なデータバックアップの操作と説明については、データバックアップセクションを参照してください。
ステップ3:物理復旧の実行
rootユーザーで、ターゲットテナントが存在するクラスタのsysテナントにログインします。ターゲットテナントに必要なリソースを作成します。
リソースユニット
unit_backupを作成します。obclient> CREATE RESOURCE UNIT unit_backup MAX_CPU 8, MEMORY_SIZE = '16G', MAX_IOPS 10240, MIN_IOPS=10240;ターゲットテナントが使用するリソースプールを作成します。ソーステナントと同じ構成を維持することを推奨します。つまり、リソースプール内の
UNIT_NUMの数はソーステナントと同じにします。obclient> CREATE RESOURCE POOL restore_pool UNIT = 'unit_backup', UNIT_NUM = 1, ZONE_LIST = ('z1');
物理復旧を実行し、新しいテナント
oracle_backupを復旧します。obclient> ALTER SYSTEM RESTORE oracle_backup FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' WITH 'pool_list=restore_pool&locality=F@z1';
詳細な物理復旧の操作と説明については、データの復旧セクションを参照してください。