説明
ALTER SYSTEM RESTORE ステートメントは、テナントのバックアップデータを復元するために使用します。
使用上の制限と注意事項
OceanBaseデータベースの物理復元は、同一クラスタ内での復元だけでなく、異なるクラスタ間での復元もサポートしています。
ALTER SYSTEM RESTOREステートメントを使用して物理復元を実行する前に、復元対象のバックアップデータのバージョンを必ず確認してください。復元可能なバージョンの制限については、復元前の準備を参照してください。ALTER SYSTEM RESTOREステートメントを使用して物理復元を実行する前に、復元対象のテナントに必要なリソースが作成されていることを確認してください。復元対象のテナントに必要なリソースを作成する具体的な操作については、復元前の準備を参照してください。ALTER SYSTEM RESTOREステートメントで復元されたテナントはデフォルトでスタンバイテナントとなります。プライマリテナントとしてサービスを提供するには、ALTER SYSTEM ACTIVATE STANDBYステートメントを再度実行する必要があります。ALTER SYSTEM ACTIVATE STANDBYステートメントの詳細については、ACTIVATE STANDBYを参照してください。
権限要件
ALTER SYSTEM RESTORE ステートメントを実行できるのは、sys テナントの root ユーザー(root@sys)のみです。
構文
ALTER SYSTEM
RESTORE dest_tenant_name
FROM uri
[ UNTIL {TIME='timestamp' | SCN=scn} ]
WITH 'restore_option'
[WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password']
[DESCRIPTION [=] 'description'];
restore_option:
pool_list=pool_name[&locality=locality][&primary_zone=zone_name][&concurrency=int_num][&kms_encrypt={true | false}][&method={full | quick}]
パラメータの説明
パラメータ |
説明 |
|---|---|
| dest_tenant_name | 復元するテナント名を指定します。 |
| uri | バックアップ時に設定したデータバックアップパス backup_data_dest とログアーカイブパス log_archive_dest を指定します。この値には少なくとも1つのデータバックアップパスと1つのログアーカイブパスが含まれ、パスは半角カンマ(,)で区切ります。現在、OceanBaseデータベースでサポートされているアーカイブ宛先メディアは、NFS、Alibaba Cloud OSS、Azure Blob、AWS S3、およびS3プロトコルに対応するオブジェクトストレージ(例:Huawei OBS、Google GCS、Tencent Cloud COS)です。uri パスの例については、SET LOG_ARCHIVE_DESTまたはSET DATA_BACKUP_DESTを参照してください。 |
| TIME='timestamp' | SCN=scn | 復元の終点を指定し、そのポイントまで復元します。TIME または SCN に指定する場合は、= で指定した値を結合する必要があります。UNTIL 句を指定しない場合、デフォルトでは最新のポイントまで復元されます。timestampは YYYY-MM-DD HH24:MI:SS.FF の形式のみをサポートし、ナノ秒単位での精度が必要です。復元時に timestamp と scn の値をどのように選択するかの詳細については、物理復元関連パラメータ紹介を参照してください。 |
| restore_option | pool_list、locality、primary_zone、concurrency、kms_encrypt、method パラメータをサポートしています。異なるパラメータは & で区切ります。locality と primary_zone を指定する場合は、可能な限りソーステナントと同型に保つことを推奨します。異型の場合、テナントの復元後にプライマリテナントとしてアクティブ化する際にロードバランシング操作が発生し、パフォーマンスに影響を与える可能性があります。
|
| WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password' | 暗号化テナントの秘密鍵バックアップ情報を指定します。復元時に秘密鍵バックアップ関連情報を指定する必要があるのは、ソーステナントに透過的データ暗号化が設定されている場合のみです。具体的には:
|
| description | ユーザーが指定する説明情報です。オプションです。 |
例
- NFSデータバックアップパスとNFSログアーカイブパスから、テナント
mysqlを指定時刻2022-06-01 00:00:00まで復元します。リソースプールはrestore_pool、レプリカローカリティはF@z1,F@z2,F@z3に指定し、primary_zoneをz1に設定して、フル復元モードで復元を実行します。
obclient [oceanbase]> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' UNTIL TIME='2022-06-01 00:00:00' WITH 'pool_list=restore_pool&locality=F@z1,F@z2,F@z3&primary_zone=z1';
- NFSデータバックアップパスとNFSログアーカイブパスから、テナント
mysqlを最新のアーカイブポイントまで復元します。リソースプールはrestore_poolに指定し、データ復元の並列度concurrencyを50に設定して、フル復元モードで復元を実行します。
obclient [oceanbase]> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' WITH 'pool_list=restore_pool&concurrency=50';
- NFSデータバックアップパスとNFSログアーカイブパスから、テナント
mysqlを指定されたSCNまで復元します。リソースプールはrestore_poolに指定し、クイック復元モードで復元を実行します。
obclient [oceanbase]> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' UNTIL SCN=1658285759724047000 WITH 'pool_list=restore_pool&method=quick';
- OSSバックアップパスとOSSログアーカイブパスから、テナント
mysqlを指定時刻2022-06-01 00:00:00まで復元します。リソースプールはrestore_poolに指定し、フル復元モードで復元を実行します。
obclient [oceanbase]> ALTER SYSTEM RESTORE mysql FROM 'oss://oceanbase-test-bucket/backup/data/?host=***.aliyun-inc.com&access_id=***&access_key=***,oss://oceanbase-test-bucket/backup/archive/?host=***.aliyun-inc.com&access_id=***&access_key=***' UNTIL TIME='2022-06-01 00:00:00' WITH 'pool_list=restore_pool';
- S3バックアップパスとS3ログアーカイブパスから、テナント
mysqlを指定時刻2024-01-15 00:00:00まで復元します。リソースプールはrestore_poolに指定します。
obclient [oceanbase]> ALTER SYSTEM RESTORE mysql FROM 's3://oceanbase-test-bucket/backup/data?host=s3.<region>.amazonaws.com&access_id=***&access_key=***&s3_region=***, s3://oceanbase-test-bucket/backup/archive?host=s3.<region>.amazonaws.com&access_id=***&access_key=***&s3_region=***' UNTIL TIME='2024-01-15 00:00:00' WITH 'pool_list=restore_pool';
s3_regionは、S3のバケットが配置されているリージョンを表します。
- OBSバックアップパスとログアーカイブパスから、テナント
mysqlを指定時刻2023-06-01 00:00:00まで復元します。リソースプールはrestore_poolに指定し、フル復元モードで復元を実行します。
obclient> ALTER SYSTEM RESTORE mysql FROM 's3://oceanbase-test-bucket/backup/data/?host=obs.***.myhuaweicloud.com&access_id=***&access_key=***,s3://oceanbase-test-bucket/backup/archive/?host=obs.***.myhuaweicloud.com&access_id=***&access_key=***' UNTIL TIME='2023-06-01 00:00:00' WITH 'pool_list=restore_pool';
- GCSバックアップパスとログアーカイブパスから、テナント
mysqlを指定時刻2023-06-01 00:00:00まで復元します。リソースプールはrestore_poolに指定し、フル復元モードで復元を実行します。
obclient> ALTER SYSTEM RESTORE mysql FROM 's3://oceanbase-test-bucket/backup/data/?host=https://storage.googleapis.com&access_id=***&access_key=***,s3://oceanbase-test-bucket/backup/archive/?host=https://storage.googleapis.com&access_id=***&access_key=***' UNTIL TIME='2023-06-01 00:00:00' WITH 'pool_list=restore_pool';
- COSバックアップパスとログアーカイブパスから、テナント
mysqlを指定時刻2023-06-01 00:00:00まで復元します。リソースプールはrestore_poolに指定し、フル復元モードで復元を実行します。
obclient> ALTER SYSTEM RESTORE mysql FROM 's3://oceanbase-test/backup/data?host=cos.ap-***x.myqcloud.com&access_id=***&access_key=***,s3://oceanbase-test/backup/archive?host=cos.ap-***x.myqcloud.com&access_id=***&access_key=***' UNTIL TIME='2023-06-01 00:00:00' WITH 'pool_list=restore_pool';