説明
ALTER SYSTEM SET LOG_ARCHIVE_DEST ステートメントは、ユーザーテナントにアーカイブ宛先を設定するために使用されます。アーカイブ宛先の設定には、主に LOCATION、BINDING、および PIECE_SWITCH_INTERVAL などのプロパティが含まれます。
制限事項と注意点
システムテナントおよびMetaテナントはバックアップ・リカバリをサポートしていないため、アーカイブ宛先の設定は不要です。
現在、OceanBaseデータベースがサポートするバックアップメディアはNFS、Alibaba Cloud OSS、Azure Blob(V4.3.5以降のV4.3.5 BP3バージョンからサポート)、AWS S3、およびS3プロトコルに互換性のあるオブジェクトストレージです。例えば、Huawei OBS、Google GCS、Tencent Cloud COSなどです。一部のバックアップメディアは使用する前に一定の要件を満たす必要があります。各バックアップメディアの具体的な要件については、物理バックアップとリカバリの概要のバックアップメディア要件を参照してください。
LOCATION、BINDING、PIECE_SWITCH_INTERVALなどのパラメータを設定する際は、各パラメータ間をスペースで区切ります。また、各パラメータ値の等号(=)の前後にスペースを入れないでください。アーカイブ宛先の設定が完了した後、増分設定はサポートされません。そのため、
ALTER SYSTEM SET LOG_ARCHIVE_DESTステートメントを実行するたびにすべてのパラメータ値を指定する必要があります。指定されていないパラメータはデフォルト値が使用されます。
権限要件
sysテナントのrootユーザー(root@sys)または各テナントの管理者ユーザーによって実行する必要があります。その中で:
- MySQLモードのデフォルト管理者ユーザーは
rootユーザーです。 - Oracleモードのデフォルト管理者ユーザーは
SYSユーザーです。
構文
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=archive_path [BINDING=archive_mode] [PIECE_SWITCH_INTERVAL=piece_switch_interval]' [TENANT = tenant_name];
パラメータの説明
| パラメータ | 説明 |
|---|---|
| archive_path | アーカイブパスを指定します。このパラメータの詳細については、以下のarchive_pathを参照してください。 |
| archive_mode | アーカイブと業務の優先モードを設定します。オプションです。現在、OptionalモードとMandatoryモードがサポートされています。設定しない場合、デフォルトはOptionalモードです。
|
| piece_switch_interval | Pieceの切り替え周期を設定します。オプションで、値の範囲は [1d, 7d] です。設定しない場合、デフォルトは1dです。Pieceの詳細については、ログアーカイブの概要を参照してください。 |
| tenant_name | システムテナントが設定するアーカイブ宛先テナント名。
注意このコマンドを実行する際は、システムテナントのみが |
archive_path
アーカイブパスを指定するために使用されます。以下では、異なる種類のメディアに対する archive_path の形式について説明します。
NFS
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file://your-nfs-server-path/your-archive-path';
ここで、file://your-nfs-server-path/your-archive-pathはNFSサーバーのパスとアーカイブのパスを指定するために使用されます。
オブジェクトストレージ
# Alibaba Cloud OSS
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://your-bucket-name/your-archive-path?host=oss-your-region.aliyuncs.com&access_id=your-access-id&access_key=your-access-key[&delete_mode={delete | tagging}][&checksum_type={md5 | no_checksum}][&enable_worm={true | false}]';
# AWS S3
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://your-bucket-name/your-archive-path?host=s3.your-region.amazonaws.com&access_id=your-access-id&access_key=your-access-key&s3_region=your-s3-region[&delete_mode={delete | tagging}][&checksum_type={md5 | crc32}]';
# S3プロトコル互換のオブジェクトストレージ
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://your-bucket-name/your-archive-path?host=host=your-service.com&access_id=your-access-id&access_key=your-access-key[&addressing_model={virtual_hosted_style | path_style}][&checksum_type=md5]';
# Azure Blob
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=azblob:////your-bucket-name/your-archive-path?host=host=your-service.com&access_id=your-access-id&access_key=your-access-key[&delete_mode={delete | tagging}][&checksum_type=md5]';
関連パラメータの説明は以下のとおりです:
注意
オブジェクトストレージをアーカイブメディアとして使用する場合、オブジェクトストレージパスの各パラメータは & 記号で区切られます。入力するパラメータ値には、大文字と小文字、数字、/-_$+= およびワイルドカードのみを含めてください。上記以外の文字を入力した場合、設定が失敗する可能性があります。
host:オブジェクトストレージサービスへのアクセスドメイン名。Azure Blobオブジェクトストレージの場合、その
hostパラメータの値は、コンテナプロパティまたはストレージアカウントの接続文字列を連結して取得でき、hostパラメータのプレフィックスはhttp://またはhttps://を指定する必要があります。同時に、Azure Blobはデフォルトで安全な転送が有効になっているため、デフォルトではhttps://からアクセスされます。http://からアクセスする必要がある場合は、Azure Blobの安全な転送オプションを無効にする必要があります。Azure Blobの安全な転送オプションを無効にする詳細な手順については、Azure Blob公式ドキュメントを参照してください。access_id:オブジェクトストレージのアクセスキーID。access_key:オブジェクトストレージのアクセスキー。delete_mode:アーカイブファイルのクリーンアップモードを設定します。OSS、AWS S3、COS(S3プロトコル経由)、Azure Blobで利用可能なオプションパラメータであり、他のパラメータとは&記号で結合されます。このパラメータは現在、以下の2つの値をサポートしています:delete:クリーンアップモードが、クリーンアップ要件を満たすアーカイブファイルを直接削除することを示します。このモードに設定すると、自動的にアーカイブファイルをクリーンアップする際、クリーンアップ要件を満たすアーカイブファイルはシステムによって直接削除されます。
tagging:クリーンアップモードが、クリーンアップ要件を満たすアーカイブファイルにTagを設定し、アーカイブファイルは保持されることを示します。このモードに設定すると、自動的にアーカイブファイルをクリーンアップする際、クリーンアップ要件を満たすアーカイブファイルに対して、システムはこれらのファイルにタグを設定します。タグの
keyは"delete_mode"、valueは"tagging"であり、後続のユーザーが設定したタグを使用してオブジェクトストレージ上でこれらのファイルのライフサイクルを管理できるようになります。
checksum_type:アーカイブファイルの検証アルゴリズムを指定し、アーカイブファイルの整合性を検証するために使用されます。明示的に指定されない場合、すべてのオブジェクトストレージはデフォルトでMD5検証アルゴリズムを使用します。異なるオブジェクトストレージによって、このパラメータがサポートする値は以下のとおりです:md5:MD5アルゴリズムを使用してアーカイブファイルの整合性を検証します。注意
MD5検証は
GetObjectインターフェースには適用されません。no_checksum:アーカイブファイルの整合性を検証しません。この値は、OSSとAzure Blobのみがサポートしています。S3プロトコル経由でアクセスされるオブジェクトストレージ、AWS S3、OBS、GCS、COSなどは、S3 SDKの制限により、この値をサポートしていません。crc32:CRC32アルゴリズムを使用してアーカイブファイルの整合性を検証します。この値は、AWS S3のみがサポートしています。
enable_worm:オプションパラメータであり、アーカイブ先がAlibaba Cloud OSSであり、かつ宛先Bucketにコンプライアンス保持ポリシー(WORM)が設定されている場合、このパラメータをTrueに設定する必要があります。OSSの保持ポリシーにはWORM(Write Once Read Many)特性があり、ユーザーがデータを削除や改ざん不可能な方法で保存および使用できるようにします。ユーザーがBucketに保持ポリシーを設定し、ポリシーをロックすると、保持ポリシーで指定されたObjectの保持期間が満了するまで、そのBucket内でのみObjectのアップロードと読み取りがサポートされます。Objectの保持期間が満了した後にのみ、そのObjectを変更または削除できます。
注意
- V4.3.5バージョンでは、V4.3.5 BP2バージョンから
enable_wormパラメータの指定がサポートされました。 - OceanBaseデータベースは現在、コンプライアンス保持ポリシーの設定を代替するものではないため、バックアップパスを設定する前に、OSS Bucketに保持ポリシー(WORMポリシー)が正しく設定され、ロックされていることを確認してください。
- 設定対象のパスに対応するBucketにWORMポリシーが設定され、ロックされている場合、アーカイブ宛先を設定する際に
enable_worm=trueが指定されていないと、ステートメント実行後にシステムはエラーを報告し、enable_worm=trueを設定する必要があることを示します。 enable_wormパラメータは一度設定すると、その後変更することはできません。- アーカイブパスを設定した後、ユーザーがそのパスに対応するBucketにWORMポリシーを設定し、ロックした場合、アーカイブはターゲットパスへの追加書き込みができないため
-9140のエラーが発生し、the object is locked by wormというメッセージが表示される可能性があります。WORMポリシーによりアーカイブタスクの実行が失敗したことが判明した場合、ユーザーは新しいアーカイブパスを再設定し、enable_worm=trueを指定する必要があります。 - WORMポリシーが設定されたBucketをアーカイブパスとして使用する場合、アーカイブのクリーンアップモードとして
taggingモードを使用することを推奨します。
enable_wormパラメータがサポートする値は以下のとおりです:true:はい。OceanBaseデータベースがWORMの仕様に従ってそのパスに対する書き込みおよび削除操作を実行することを示します。値をtrueに設定する場合、同時にchecksum_type=md5を明示的に設定する必要があります。false:いいえ。このパラメータが明示的に指定されていない場合、デフォルト値はfalseです。
- V4.3.5バージョンでは、V4.3.5 BP2バージョンから
s3_region:Amazon S3バケットが存在するリージョン。アーカイブメディアがAWS S3の場合、必須のパラメータです。addressing_model:オブジェクトストレージへのアクセスURL形式を設定します。S3互換プロトコル経由でアクセスされるオブジェクトストレージ(OBS、GCS、COSなど)のオプションパラメータであり、他のパラメータとは&記号で結合されます。このパラメータは現在、以下の2つの値をサポートしています:virtual_hosted_style:デフォルト値であり、Virtual-hosted-styleでオブジェクトストレージにアクセスすることを示します。path_style:Path-styleでオブジェクトストレージにアクセスすることを示します。
例えば、ユーザーテナントが本テナントでOBSをアーカイブメディアとして使用し、Virtual-hosted-styleでOBSにアクセスするよう設定する場合、サンプルステートメントは以下のとおりです:
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=obs.****.myhuaweicloud.com&access_id=****&access_key=****&addressing_model=virtual_hosted_style';
例
システムテナント
システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはNFSで、ユーザー業務優先モードを採用し、2日ごとに1つのピースを分割します。obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional PIECE_SWITCH_INTERVAL=1d' TENANT = mysql_tenant;システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはOSSで、アーカイブファイルのクリーンアップモードはdeleteで、MD5アルゴリズムを使用してアーカイブファイルの整合性を検証します。obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=delete&checksum_type=md5' TENANT = mysql_tenant;システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはOSSで、アーカイブファイルのクリーンアップモードはdeleteで、アーカイブファイルの整合性は検証されません。obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=delete&checksum_type=no_checksum' TENANT = mysql_tenant;システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはOSSで、アーカイブファイルのクリーンアップモードはtaggingで、MD5アルゴリズムを使用してアーカイブファイルの整合性を検証します。このパスにenable_worm=trueが設定されている場合、システムはWORMの仕様に従ってこのパスへの書き込みおよび削除操作を実行します。注意
OceanBaseデータベースは現在、コンプライアンス保持ポリシーの設定を代行することはありません。アーカイブパスを設定する前に、OSSバケットに保持ポリシー(WORMポリシー)が正しく設定され、ロックされていることを確認してください。
obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=tagging&checksum_type=md5&enable_worm=true' TENANT = mysql_tenant;システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはAWS S3で、アーカイブファイルのクリーンアップモードはdeleteで、ユーザー業務優先モードを採用し、2日ごとに1つのピースを分割します。obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=s3.<region>.amazonaws.com&access_id=******&access_key=******&s3_region=******&delete_mode=delete BINDING=Optional PIECE_SWITCH_INTERVAL=1d' TENANT = mysql_tenant;システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはAWS S3で、アーカイブファイルのクリーンアップモードはtaggingで、CRC32アルゴリズムを使用してアーカイブファイルの整合性を検証します。obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=s3.<region>.amazonaws.com&access_id=***&access_key=***&s3_region=***&delete_mode=tagging&checksum_type=crc32' TENANT = mysql_tenant;システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはOBSで、S3プロトコルを介してアクセスします。obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=obs.****.myhuaweicloud.com&access_id=****&access_key=****' TENANT = mysql_tenant;システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはGCSで、S3プロトコルを介してアクセスします。obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=https://storage.googleapis.com&access_id=****&access_key=****' TENANT = mysql_tenant;システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはCOSで、アーカイブファイルのクリーンアップモードはdeleteで、S3プロトコルを介してアクセスします。注意
COSをアーカイブメディアとして使用する場合、まずクラスタレベルの構成パラメータob_storage_s3_url_encode_typeを設定する必要があります。詳細な操作については、ログアーカイブの準備作業を参照してください。
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test/backup/archive?host=cos.ap-***.myqcloud.com&access_id=***&access_key=***&delete_mode=delete' TENANT = mysql_tenant;システムテナントは、テナント
mysql_tenantにアーカイブパスを設定します。アーカイブメディアはAzure Blobで、クリーンアップモードはdeleteで、検証アルゴリズムはmd5で、ユーザー業務優先モードを採用し、2日ごとに1つのピースを分割します。obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=azblob://oceanbase-test-bucket/backup/archive?host=http://****.blob.core.windows.net&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5 BINDING=Optional PIECE_SWITCH_INTERVAL=1d' TENANT = mysql_tenant;
ユーザーテナント
テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはNFSで、ユーザー業務優先モードを採用し、2日ごとに1つのピースを分割します。obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional PIECE_SWITCH_INTERVAL=1d';テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはOSSで、アーカイブファイルのクリーンアップモードはtaggingで、MD5アルゴリズムを使用してアーカイブファイルの整合性を検証します。obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=tagging&checksum_type=md5';テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはOSSで、アーカイブファイルのクリーンアップモードはtaggingで、アーカイブファイルの整合性は検証されません。obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=tagging&checksum_type=no_checksum';テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはOSSで、アーカイブファイルのクリーンアップモードはtaggingで、MD5アルゴリズムを使用してアーカイブファイルの整合性を検証します。このパスにenable_worm=trueが設定されている場合、システムはWORMの仕様に従ってこのパスへの書き込みおよび削除操作を実行します。注意
OceanBaseデータベースは現在、コンプライアンス保持ポリシーの設定を代行することはありません。アーカイブパスを設定する前に、OSSバケットに保持ポリシー(WORMポリシー)が正しく設定され、ロックされていることを確認してください。
obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=tagging&checksum_type=md5&enable_worm=true';テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはAWS S3で、アーカイブファイルのクリーンアップモードはdeleteで、ユーザー業務優先モードを採用し、2日ごとに1つのピースを分割します。obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=s3.<region>.amazonaws.com&access_id=******&access_key=******&s3_region=******&delete_mode=delete BINDING=Optional PIECE_SWITCH_INTERVAL=1d';テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはAWS S3で、アーカイブファイルのクリーンアップモードはtaggingで、CRC32アルゴリズムを使用してアーカイブファイルの整合性を検証します。obclient [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=s3.<region>.amazonaws.com&access_id=***&access_key=***&s3_region=***&delete_mode=tagging&checksum_type=crc32';テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはOBSで、S3プロトコルを介してアクセスします。obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=obs.****.myhuaweicloud.com&access_id=****&access_key=****';テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはGCSで、S3プロトコルを介してアクセスします。obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=https://storage.googleapis.com&access_id=****&access_key=****';テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはCOSで、アーカイブファイルのクリーンアップモードはdeleteで、S3プロトコルを介してアクセスします。注意
COSをアーカイブメディアとして使用する場合、まずクラスタレベルの構成パラメータob_storage_s3_url_encode_typeを設定する必要があります。詳細な操作については、ログアーカイブの準備作業を参照してください。
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test/backup/archive?host=cos.ap-***.myqcloud.com&access_id=***&access_key=***&delete_mode=delete';テナント
mysql_tenantは、このテナントにアーカイブパスを設定します。アーカイブメディアはAzure Blobで、クリーンアップモードはdeleteで、検証アルゴリズムはmd5で、ユーザー業務優先モードを採用し、2日ごとに1つのピースを分割します。obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=azblob://oceanbase-test-bucket/backup/archive?host=http://****.blob.core.windows.net&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5 BINDING=Optional PIECE_SWITCH_INTERVAL=1d';