このセクションでは、ログアーカイブを開始する前に行う準備作業について説明します。
アーカイブの並列度の設定(オプション)
アーカイブモードを有効にする前に、ログアーカイブの並列度を設定することで、テナントのログアーカイブ速度を向上させることができます。
sysテナントまたはユーザーテナントのテナント管理者としてデータベースにログインします。適切なステートメントを選択し、パラメータ
log_archive_concurrencyを設定します。テナントレベルの構成パラメータ
log_archive_concurrencyは、ログアーカイブのワーカースレッドの総数を設定します。この構成パラメータは動的に反映され、OBServerノードの再起動は不要です。値の範囲は [0, 100] で、デフォルト値は0です。これは、OceanBaseデータベースの適応型ログアーカイブ並列度を使用することを意味します。デフォルト値の使用を推奨します。注意
小規模なテナント(CPUが4コア以下のテナント)では、デフォルト値を使用し、この構成パラメータの値を調整しないことを推奨します。
設定方法は以下のとおりです:
sysテナントが指定したテナントのログアーカイブ並列度を調整する場合ALTER SYSTEM SET log_archive_concurrency = 10 TENANT = mysql_tenant;sysテナントがすべてのテナントのログアーカイブ並列度を調整する場合ALTER SYSTEM SET log_archive_concurrency = 10 TENANT = all_user;または
ALTER SYSTEM SET log_archive_concurrency = 10 TENANT = all;説明
OceanBaseデータベースはV4.2.1バージョンから、
TENANT = all_userとTENANT = allの意味が同じになりました。有効範囲をすべてのユーザーテナントにする必要がある場合は、TENANT = all_userの使用を推奨します。TENANT = allは今後廃止されます。ユーザーテナントが自身のテナントのログアーカイブ並列度を調整する場合
ALTER SYSTEM SET log_archive_concurrency = 10;
パラメータ
log_archive_concurrencyの詳細については、log_archive_concurrencyを参照してください。
アーカイブ宛先の設定
ログアーカイブタスクを開始する前に、ALTER SYSTEM コマンドを使用して LOG_ARCHIVE_DEST パラメータを設定する必要があります。システムテナントにはユーザーデータが含まれておらず、クラスタ管理用のテナントであるため、バックアップ・リストアはサポートされていません。そのため、sys テナントではアーカイブ宛先を設定する必要はありません。
アーカイブ宛先を設定する操作では、主に LOCATION、BINDING、PIECE_SWITCH_INTERVAL プロパティを設定します。
注意事項
アーカイブの出力先を設定する際、各テナントのアーカイブパスは独立した空ディレクトリに設定する必要があります。異なるテナント間で同じアーカイブパスを設定することはできません。
手順
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;ユーザーテナントが自身のテナントにアーカイブ宛先を設定する場合
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=archive_path [BINDING=archive_mode] [PIECE_SWITCH_INTERVAL=piece_switch_interval]';
注意
OceanBaseデータベースV4.0.xからV4.1.0へのバージョンアップグレードの場合、アーカイブパスを変更する必要があります。OceanBaseデータベースV4.1.xからV4.2.xへのバージョンアップグレードの場合、アーカイブパスを変更する必要はありません。また、OceanBaseデータベースV4.1.xからV4.2.xへのバージョンアップグレードでは、アップグレード中のログアーカイブがサポートされています。
詳細な設定方法は以下のとおりです:
LOCATIONの設定 (必須)LOCATIONプロパティはアーカイブパスを指定するために使用されます。現在、OceanBaseデータベースでサポートされているアーカイブメディアは、NFS、Alibaba Cloud OSS、Azure Blob、AWS S3、およびS3プロトコル互換のオブジェクトストレージです。例:Huawei OBS、Google GCS、Tencent Cloud COS。一部のアーカイブメディアは使用する前にいくつかの基本要件を満たす必要がある場合があります。各アーカイブメディアの具体的な要件については、物理バックアップとリストアの概要のバックアップメディア要件を参照してください。Alibaba Cloud OSSNFSAWS S3S3プロトコルに対応するオブジェクトストレージAzure BlobOSSをアーカイブメディアとして使用する場合、アーカイブパス、
host、access_key、access_idを設定するほかに、delete_modeパラメータを使用してアーカイブファイルのクリーンアップモードを設定できます。delete_modeパラメータは現在deleteモードとtaggingモードをサポートしています。delete_modeパラメータを明示的に設定しない場合、デフォルトでdeleteモードが使用されます。さらに、OSSは
checksum_typeパラメータを使用して検証アルゴリズムを指定し、アーカイブファイルの整合性を検証することもサポートしています。サポートされている値はmd5とno_checksumです。checksum_typeパラメータを明示的に設定しない場合、デフォルト値はmd5です。同時に、OceanBaseデータベースは、コンプライアンス保持ポリシーが設定されたAlibaba Cloud OSSバケットをアーカイブパスとして使用することもサポートしています。アーカイブパスを設定する際、
enable_wormパラメータを使用して、OceanBaseデータベースがバケットの保持ポリシー(WORMポリシー)に従ってそのパスに対する書き込みおよび削除操作を実行するかどうかを指定できます。このパラメータがサポートする値はtrueとfalseです。enable_wormパラメータを明示的に設定しない場合、デフォルトはfalseです。enable_worm=trueを設定する場合は、同時にchecksum_type=md5を明示的に設定する必要があります。このパラメータは一度設定すると変更できません。注意
OceanBaseデータベースは現在、コンプライアンス保持ポリシーの設定を代行することはありません。アーカイブパスを設定する前に、OSSバケットに保持ポリシー(WORMポリシー)が正しく設定され、ロックされていることを確認してください。
各パラメータの詳細については、SET LOG_ARCHIVE_DESTを参照してください。
注意
オブジェクトストレージをアーカイブメディアとして使用する場合、オブジェクトストレージパスの各パラメータは
&記号で区切られます。入力するパラメータ値には、英字の大文字と小文字、数字、/-_$+=およびワイルドカードのみ含まれていることを確認してください。上記以外の文字を入力した場合、設定が失敗する可能性があります。例:
OSSをアーカイブメディアとして使用する場合、システムテナントは指定されたテナント
mysql_tenantにアーカイブパスを設定し、クリーンアップモードをdeleteに、検証アルゴリズムをmd5に指定します。obclient> 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;アーカイブファイルの整合性検証を行いたくない場合は、
checksum_typeパラメータをno_checksumに設定できます。例:obclient> 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;OSSをアーカイブメディアとして使用する場合、システムテナントは指定テナント
mysql_tenantにアーカイブパスを設定し、クリーンアップモードをtaggingに構成します。また、WORMがサポートする方法でObjectの書き込みと削除を指定し、検証アルゴリズムをmd5に指定します。注意
- OceanBaseデータベースは、現在、コンプライアンス保持ポリシーの設定を代行するものではありません。アーカイブパスを設定する前に、OSSバケットで保持ポリシー(WORMポリシー)が正しく設定され、ロックされていることを確認してください。
- WORMポリシーが設定されたBucketをアーカイブパスとして使用する場合、クリーンアップモードとして
taggingモードの使用を推奨します。
obclient> 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;OSSをアーカイブ媒体として使用する場合、ユーザーテナントは自身のテナントにアーカイブパスを設定し、クリーンアップモードを
deleteに、検証アルゴリズムをmd5に指定します。obclient> 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';
例では、
oss://はアーカイブ媒体タイプとして OSS を使用することを示し、バケット名はoceanbase-test-bucket、バケット内のパスは/backup/archiveです。パスとパラメータは?で区切り、パラメータ間は&で区切ります。hostはバケットのホストアドレスを設定し、access_idとaccess_keyはOSSのアクセスキーを設定します。クリーンアップモードはdeleteに設定され、MD5 アルゴリズムを使用してアーカイブファイルの整合性を検証します。enable_worm=trueは、システムが WORM の仕様に従って書き込みおよび削除操作を実行することを意味します。なお、OceanBase データベースは現在、コンプライアンス保持ポリシーの設定を代行するものではありません。アーカイブパスを設定する前に、OSS バケットに対して保持ポリシー(WORM ポリシー)が正しく設定され、ロックされていることを確認してください。注意
NFSをアーカイブメディアとして使用する場合、次の点に注意してください:
LOCATIONの値に疑問符(?)を含む文字列を設定することはできません。LOCATIONの値は絶対パスに設定する必要があります。OBServerサーバーがLOCATIONに対する読み書き権限を持っていることを確認してください。- すべてのOBServerサーバーが同一サーバーのNFSをマウントしていることを確認する必要があります。また、アーカイブがスムーズに進行するためには、本記事で推奨されているパラメータを使用してNFSをマウントする必要があります。NFSの具体的なマウント操作については、NFSクライアントのデプロイを参照してください。
NFSをアーカイブメディアとして使用する場合、システムテナントが指定テナント
mysql_tenantにアーカイブパスを設定する例は以下のとおりです:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive' TENANT = mysql_tenant;NFSをアーカイブメディアとして使用する場合、ユーザーテナントが自身のテナントにアーカイブパスを設定する例は以下のとおりです:
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive';例では、
file://はNFSをアーカイブメディアタイプとして使用し、アーカイブパスが/data/nfs/backup/archiveであることを示しています。OSSと同様に、AWS S3も
delete_modeパラメータを使用してアーカイブファイルのクリーンアップモードを設定できます。設定方法はOSSと同じです。また、AWS S3はchecksum_typeパラメータを使用して検証アルゴリズムを指定し、アーカイブファイルの整合性を検証することもサポートしており、指定可能な値はmd5とcrc32です。checksum_typeパラメータを明示的に設定しない場合、デフォルト値はmd5となります。delete_modeパラメータとchecksum_typeパラメータの詳細については、SET LOG_ARCHIVE_DESTを参照してください。注意
オブジェクトストレージをアーカイブ媒体として使用する場合、オブジェクトストレージパスの各パラメータは
&記号で区切られます。入力するパラメータ値には、英字の大文字小文字、数字、/-_$+=およびワイルドカードのみ含まれていることを確認してください。上記以外の文字を入力した場合、設定が失敗する可能性があります。S3をアーカイブ媒体として使用する設定例は以下のとおりです:
S3をアーカイブ媒体として使用する場合、システムテナントが指定テナント
mysql_tenantにアーカイブパスを設定し、クリーンアップモードをdelete、検証アルゴリズムをcrc32に指定します。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&checksum_type=crc32' TENANT = mysql_tenant;S3をアーカイブ媒体として使用する場合、ユーザーテナントが自身のテナントにアーカイブパスを設定し、クリーンアップモードを
delete、検証アルゴリズムをcrc32に指定します。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&checksum_type=crc32';
上記の例では、
s3://はAWS S3をアーカイブ媒体タイプとして使用することを表し、バケット名はoceanbase-test-bucket、バケット内のパスは/backup/archiveです。また、?を使用してパスとパラメータを区切り、パラメータ間は&で区切ります。hostはAmazon S3サービスのドメイン名を設定するために使用され、access_idとaccess_keyはAWSサービスのアクセスキーを設定するために使用されます。s3_regionはS3をアーカイブ媒体として使用する場合に必須のパラメータで、S3のバケットが存在するリージョンを表します。クリーンアップモードはdelete、アーカイブファイルの整合性検証にはCRC32アルゴリズムを使用します。AWS S3パス形式の詳細については、付:AWS S3パス形式説明を参照してください。
ほとんどのオブジェクトストレージはS3プロトコルに対応しているため、S3プロトコルに対応し、かつOceanBaseデータベースの要件(オブジェクトストレージは、OceanBaseシステムコールを実装したいくつかのS3 APIの動作に対応している必要があります)を満たすオブジェクトストレージは、OceanBaseデータベースのアーカイブメディアとして使用できます。また、S3にアクセスすることで、対応するオブジェクトストレージにアクセスできます。例えば、OBS、GCS、COSなどはすべてS3プロトコルを介してアクセスされます。
S3プロトコルを介してアクセスするOBS、GCS、COSなどのオブジェクトストレージでは、
checksum_typeパラメータを使用して検証アルゴリズムを指定し、アーカイブファイルの整合性を検証することもサポートされています。サポートされている値はmd5のみです。checksum_typeパラメータを明示的に設定しない場合、デフォルト値はmd5です。checksum_typeパラメータの詳細については、SET LOG_ARCHIVE_DESTを参照してください。注意
- オブジェクトストレージをアーカイブメディアとして使用する場合、オブジェクトストレージパスの各パラメータは
&記号で区切られます。入力するパラメータ値には、英字の大文字と小文字、数字、/-_$+=、およびワイルドカードのみ含まれていることを確認してください。上記以外の文字を入力した場合、設定が失敗する可能性があります。 - S3プロトコルに対応する一部のオブジェクトストレージでは、AWS S3 SDKのデフォルトのURLエンコーディング方式をサポートしていない場合があります。
s3://プロトコルでアクセスする際に、9129、9026などのオブジェクトストレージ関連のエラーコードが発生した場合、クラスタレベル構成パラメータob_storage_s3_url_encode_typeを設定し、AWS S3がリクエストを送信する際のURLエンコーディング方式をRFC3986標準に準拠させることを推奨します。詳細な設定方法については、以下のCOSをアーカイブメディアとして使用する操作手順と例を参照してください。
OBSをアーカイブメディアとして使用する設定例:
OBSをアーカイブメディアとして使用する場合、システムテナントが指定テナント
mysql_tenantにアーカイブパスを設定します。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;OBSをアーカイブメディアとして使用する場合、ユーザーテナントが自身のテナントにアーカイブパスを設定します。
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=obs.****.myhuaweicloud.com&access_id=****&access_key=****';
上記の例では、
s3://はS3プロトコルを使用してアーカイブ宛先にアクセスすることを表し、バケット名はoceanbase-test-bucket、バケット内のパスは/backup/archiveです。同時に?を使用してパスとパラメータを区切り、パラメータ間は&で区切ります。hostはOBSサービスのドメイン名を設定するために使用され、access_idとaccess_keyはOBSサービスのアクセスキーを設定するために使用されます。GCSをアーカイブメディアとして使用する設定例:
GCSをアーカイブメディアとして使用する場合、システムテナントが指定テナント
mysql_tenantにアーカイブパスを設定します。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;GCSをアーカイブメディアとして使用する場合、ユーザーテナントが自身のテナントにアーカイブパスを設定します。
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=https://storage.googleapis.com&access_id=****&access_key=****';
上記の例では、
s3://はS3プロトコルを使用してアーカイブ宛先にアクセスすることを表し、バケット名はoceanbase-test-bucket、バケット内のパスは/backup/archiveです。同時に?を使用してパスとパラメータを区切り、パラメータ間は&で区切ります。hostはGCSサービスのドメイン名を設定するために使用され、access_idとaccess_keyはGCSサービスのアクセスキーを設定するために使用されます。COSをアーカイブメディアとして使用する操作手順と例:
クラスタレベル構成パラメータ
ob_storage_s3_url_encode_typeの値を確認します。obclient> SHOW PARAMETERS LIKE '%ob_storage_s3_url_encode_type%';結果は次のとおりです:
+-------+----------+----------------+----------+-------------------------------+-----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | +-------+----------+----------------+----------+-------------------------------+-----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ | zone1 | observer | 172.xx.xxx.xxx | 2882 | ob_storage_s3_url_encode_type | NULL | default | Determines the URL encoding method for S3 requests."default": Uses the S3 standard URL encoding method."compliantRfc3986Encoding": Uses URL encoding that adheres to the RFC 3986 standard. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | +-------+----------+----------------+----------+-------------------------------+-----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ 1 row in set値が
defaultの場合、compliantRfc3986Encodingに変更します。obclient> ALTER SYSTEM SET ob_storage_s3_url_encode_type='compliantRfc3986Encoding';この構成パラメータの詳細については、ob_storage_s3_url_encode_typeを参照してください。
アーカイブパスを設定し、
delete_modeパラメーターでアーカイブファイルのクリーンアップモードを構成します。COSをアーカイブ媒体として使用する場合、システムテナントが指定テナント
mysql_tenantにアーカイブパスを設定し、deleteクリーンアップモードを構成する例は以下のとおりです:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test/backup/archive?host=cos.ap-xxxx.myqcloud.com&access_id=***&access_key=***&delete_mode=delete' TENANT = mysql_tenant;COSをアーカイブ媒体として使用する場合、ユーザーテナントが自身のテナントにアーカイブパスを設定し、
deleteクリーンアップモードを構成する例は以下のとおりです:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test/backup/archive?host=cos.ap-xxxx.myqcloud.com&access_id=***&access_key=***&delete_mode=delete';例では、
s3://はS3プロトコルを使用してアーカイブ宛先にアクセスすることを表し、バケット名はoceanbase-test、バケット内のパスは/backup/archiveです。また、?を使用してパスとパラメーターを区切り、パラメーター間は&で区切ります。hostはCOSのホストアドレス、すなわちエンドポイント(バケット名なしのアドレス)を設定するために使用され、access_idとaccess_keyはCOSのアクセスキーを設定するために使用されます。クリーンアップモードはdeleteに設定されています。注意
アーカイブの実行中は、アーカイブで使用されるアクセスプロトコルの切り替えはサポートされません。例えば、S3からOSSへ、またはOSSからS3への切り替えはできません。
OSSと同様に、Azure Blobも
delete_modeパラメーターとchecksum_typeパラメーターをサポートしています。delete_modeパラメーターはアーカイブファイルのクリーンアップモードを構成するために使用され、明示的にdelete_modeパラメーターを設定しない場合、デフォルトでdeleteモードが使用されます。checksum_typeパラメーターは、アーカイブファイルの整合性を検証するためのチェックアルゴリズムを指定するために使用され、サポートされている値はmd5とno_checksumです。checksum_typeパラメーターを明示的に設定しない場合、デフォルト値はmd5です。その他のパラメーターの詳細については、SET LOG_ARCHIVE_DESTを参照してください。
例:
注意
- オブジェクトストレージをアーカイブ媒体として使用する場合、オブジェクトストレージパスの各パラメーターは
&記号で区切られます。入力するパラメーター値には、英字の大文字と小文字、数字、/-_$+=およびワイルドカードのみ含まれていることを確認してください。上記以外の文字を入力した場合、設定が失敗する可能性があります。 - Azure Blobをアーカイブ媒体として使用する場合、
hostパラメーターのプレフィックスはhttp://またはhttps://である必要があります。また、Azure Blobはデフォルトでセキュリティ転送が有効になっているため、デフォルトではhttps://でアクセスされます。http://でアクセスする必要がある場合は、Azure Blobのセキュリティ転送オプションを無効にする必要があります。Azure Blobのセキュリティ転送オプションを無効にする手順の詳細については、Azure Blob公式ドキュメントを参照してください。
Azure Blobをアーカイブ媒体として使用する場合、システムテナントが指定テナント
mysql_tenantにアーカイブパスを設定し、クリーンアップモードをdeleteに設定します。同時に、検証アルゴリズムをmd5に指定します。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' TENANT = mysql_tenant;Azure Blobをアーカイブ媒体として使用する場合、ユーザーテナントが自身のテナントにアーカイブパスを設定し、クリーンアップモードを
deleteに設定します。同時に、検証アルゴリズムをmd5に指定します。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';
例では、
azblob://はAzure Blobをアーカイブ媒体タイプとして使用することを表し、バケット名はoceanbase-test-bucket、バケット内のパスは/backup/archiveです。また、?を使用してパスとパラメーターを区切り、パラメーター間は&で区切ります。hostはバケットのホストアドレスで、コンテナのプロパティやストレージアカウントの接続文字列を組み合わせて取得できます。access_idはストレージアカウント名、access_keyはAzure Blobのアクセスキー、クリーンアップモードはdeleteで、MD5アルゴリズムを使用してアーカイブファイルの整合性を検証します。BINDINGプロパティの設定 (オプション)BINDINGプロパティは、アーカイブとビジネスの優先モードを設定するために使用されます。現在、OptionalモードとMandatoryモードをサポートしています。設定しない場合、デフォルトはOptionalモードです。Optionalモードは、ユーザービジネスを優先することを意味します。このモードでは、アーカイブ(ログアーカイブ)の速度がログ生成の速度に追いつかない場合、ログがアーカイブされる前に回収され、その結果、ストリームが途絶える可能性があります。Mandatoryモードは、アーカイブを優先することを意味します。このモードでは、アーカイブがユーザーデータの書き込みに追いつかない場合、ユーザーが書き込みできなくなる可能性があります。
NFSをアーカイブメディアとして使用する場合、システムテナントが指定テナント
mysql_tenantにアーカイブパスを設定しBINDING属性を設定する例は以下のとおりです:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional' TENANT = mysql_tenant;NFSをアーカイブメディアとして使用する場合、ユーザーテナントが自身のテナントにアーカイブパスを設定し
BINDING属性を設定する例は以下のとおりです:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional';PIECE_SWITCH_INTERVAL属性の設定 (オプション)PIECE_SWITCH_INTERVAL属性はpieceの切り替え間隔を設定します。値の範囲は[1d, 7d]です。設定しない場合、デフォルトは1dです。NFSをアーカイブメディアとして使用する場合、システムテナントが指定テナント
mysql_tenantにアーカイブパスを設定し、2日ごとにログpieceを分割する例は以下のとおりです:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional PIECE_SWITCH_INTERVAL=1d' TENANT = mysql_tenant;NFSをアーカイブメディアとして使用する場合、ユーザーテナントが自身のテナントにアーカイブパスを設定し、2日ごとにログ
pieceを分割する例は以下のとおりです:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional PIECE_SWITCH_INTERVAL=1d';
設定が完了したら、ビューを参照して詳細なパラメータ設定情報を確認できます。
sysテナントはCDB_OB_ARCHIVE_DESTビューを通じてパラメータ設定情報を確認できます。ユーザーテナントはDBA_OB_ARCHIVE_DESTビューを通じてパラメータ設定情報を確認できます。パラメータ設定の詳細な操作については、アーカイブパラメータの確認を参照してください。
設定後の注意事項と説明
パラメータ
LOG_ARCHIVE_DESTの設定が成功すると、システムはデフォルトで、設定されたアーカイブ先ディレクトリにformatファイルを作成します。このファイルは、バックアップのアーカイブ先の有効性情報を検証し、アーカイブ先データの整合性を確保するために使用されます。そのため、ログアーカイブのアーカイブ先を設定する際には、以下の点に注意してください:formatファイルが存在しない場合、設定対象のアーカイブ先ディレクトリは空である必要があります。そうでない場合、システムは-9080エラーを返し、formatファイルが存在しないことを示します。formatファイルが既に存在する場合、その内容の検証に合格している必要があります。そうでない場合、システムは-9081エラーを返し、formatファイルが一致しないことを示します。formatファイルの内容検証では、主にクラスタ、テナント、バックアップアーカイブ先のタイプなどが、現在実行中の操作のクラスタ、テナント、バックアップアーカイブ先のタイプと一致しているかどうかをチェックします。バックアップタスクを実行する際、
formatファイルが存在しない、またはformatファイルの検証に失敗した場合、タスクは開始失敗となります。
アーカイブ先の設定が成功した後は、増分設定はサポートされません。例えば、NFS下のアーカイブパス
/data/nfs/backup/archiveのBINDINGプロパティをMandatory、PIECE_SWITCH_INTERVALプロパティを1dに設定したとします。PIECE_SWITCH_INTERVALを2dに更新し、BINDINGプロパティの設定Mandatoryを維持するには、コマンドで他のプロパティの値も指定する必要があります。指定しなかったプロパティはデフォルト値が適用されます。変更するには、以下のステートメントを再度実行する必要があります。
システムテナントが指定テナントを変更する場合
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST = 'LOCATION=file:///data/nfs/backup/archive BINDING=Mandatory PIECE_SWITCH_INTERVAL=2d' TENANT = mysql_tenant;ユーザーテナントが自身のテナントを変更する場合
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST = 'LOCATION=file:///data/nfs/backup/archive BINDING=Mandatory PIECE_SWITCH_INTERVAL=2d';
アーカイブ先の設定が成功した後、ユーザーがセキュリティ上の理由やその他の理由でオブジェクトストレージのキー情報を変更した場合、設定済みのアーカイブパスの
access_idとaccess_key情報を更新する必要があります。具体的な操作については、オブジェクトストレージのキー情報の更新を参照してください。
(オプション)アーカイブの遅延時間を設定する
OceanBaseデータベースは、テナントレベルの構成パラメータ archive_lag_target を使用して、テナントのログアーカイブの遅延時間を制御します。この構成パラメータはミリ秒(ms)、秒(s)、分(m)、時間(h)単位をサポートしており、デフォルトは2分です。これは、前後のアーカイブI/Oの最大間隔時間を指定し、オンラインログがタイムリーにアーカイブされることを保証し、データ損失のリスクを低減します。
OceanBaseデータベースのアーカイブはログストリーム単位で行われます。現在のログストリームにログの書き込みがあり、かつそのログストリームの最終アーカイブ時刻から archive_lag_target パラメータで指定された時間間隔を超えた場合、そのログストリームはアーカイブ処理をトリガーし、未アーカイブのログをすべてアーカイブします。
例えば、パラメータを archive_lag_target='120s'(つまり2分)に設定した場合、各ログストリームは2分ごとにアーカイブ処理を試みます(ログアーカイブのキャッシュ集約Bufferがいっぱいになるなど、他の条件が満たされない限り)。これにより、そのログストリームの今回のアーカイブ処理が前回のアーカイブ時刻から2分以内になるようにします。なお、archive_lag_target パラメータの値を0に設定すると、リアルタイムアーカイブの効果が得られます。
archive_lag_target パラメータの詳細については、archive_lag_targetを参照してください。
前提条件
archive_lag_target パラメータの値を変更する際は、アーカイブ先の設定が完了していることを確認してください。アーカイブ先が設定されていない場合、archive_lag_target パラメータの値を変更すると、システムは log_archive_dest has not been set, set archive_lag_target is not allowed のメッセージを表示します。
注意事項
アーカイブメディアがOSS/NFSの場合、
archive_lag_targetパラメータの値は許容範囲内の任意の値に設定できます。アーカイブメディアがS3またはS3プロトコル互換の他のオブジェクトストレージの場合、archive_lag_targetパラメータの値は60sより小さくできません。60sより小さい場合、システムはエラーを返します。オブジェクトストレージを使用する場合、過度に頻繁なI/Oがシステム性能に影響を与えるのを避けるため、
archive_lag_targetパラメータを適切な値に設定することを推奨します。同時に、値が高すぎるとデータ復元の即時性を満たせない可能性があるため、具体的なビジネス要件とアーカイブメディアの性能に基づいてRPOをバランスさせる必要があります。
設定方法
sysテナントまたはユーザーテナントのテナント管理者としてデータベースにログインします。実際の状況に応じて、適切なステートメントを選択し、アーカイブの遅延時間を設定します。
設定方法は以下のとおりです:
sysテナントが特定のテナントのアーカイブ遅延時間を設定する場合obclient> ALTER SYSTEM SET archive_lag_target = '120s' TENANT = mysql_tenant;注意
archive_lag_targetパラメータを設定する際、sysテナントはTENANT = all_userを使用してすべてのユーザーテナントを指定することはできません。ユーザーテナントが自身のテナントのアーカイブ遅延時間を設定する場合
obclient> ALTER SYSTEM SET archive_lag_target = '120s';