OceanBaseデータベースは、バックアップパスまたはアーカイブパスのaccess_idやaccess_keyなどの情報を動的に更新することをサポートしています。ユーザーがバックアップパスやアーカイブパスを設定した後、セキュリティ上の理由やその他の理由でオブジェクトストレージのキー情報を変更した場合、バックアップやアーカイブの正常な実行を保証するために、この方法で既に設定されたバックアップパスまたはアーカイブパスのaccess_idとaccess_keyを変更できます。
使用上の制限
オブジェクトストレージのパスを変更する場合は、
access_idとaccess_keyの情報のみを変更できます。ユーザーテナントは自身のテナントにおけるバックアップパスまたはアーカイブパスのキー情報のみを変更できます。システムテナントが指定ユーザーテナントのバックアップパスまたはアーカイブパスのキー情報を変更することはサポートされていません。
注意事項
バックアップまたはアーカイブ中にオブジェクトストレージのパスに対応するキー情報を変更した後は、直ちにバックアップパスまたはアーカイブパスの
access_idとaccess_key情報を変更する必要があります。そうでない場合、バックアップタスクの実行失敗やアーカイブの進行不能などの問題が発生する可能性があります。ログアーカイブを利用した物理スタンバイデータベースのシナリオでは、オブジェクトストレージのパスに対応するキー情報を変更した後、速やかにスタンバイデータベース(スタンバイテナント)のログ復元パス内の
access_idとaccess_key情報を更新する必要があります。そうでない場合、ログ同期が進行不能になる可能性があります。スタンバイデータベース(スタンバイテナント)のログ復元パス内のaccess_idとaccess_key情報を更新する詳細な操作については、ログ復元ソースの設定を参照してください。
手順
ユーザーテナントのテナント管理者がクラスタのユーザーテナントにログインします。
説明
MySQLモードの管理者ユーザーは
rootユーザー、Oracleモードの管理者ユーザーはSYSユーザーです。接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A以下のステートメントを実行し、バックアップパスまたはアーカイブパスのキー情報を変更します。
SQLステートメントは以下のとおりです:
ALTER SYSTEM {ALTER|CHANGE|MODIFY} EXTERNAL_STORAGE_DEST PATH [=] 'path' SET ACCESS_INFO = 'access_id=new_access_id&access_key=new_access_key';関連パラメータの説明は以下のとおりです:
path:キー情報を変更するバックアップパスまたはアーカイブパスを指定します。パスは現在のテナントで設定済みのバックアップパスまたはアーカイブパスである必要があり、オブジェクトストレージのパスである必要があります。また、パスにはhost情報が含まれている必要があります。OSSを例にすると、このパスの形式は次のとおりです:
oss://oceanbase-test-bucket/backup/data?host=***。access_id=new_access_id&access_key=new_access_key:変更後の新しいaccess_idとaccess_key情報を指定します。access_idとaccess_keyは両方とも入力する必要があります。
バックアップまたはアーカイブ媒体がOSSの場合を例にすると、現在のユーザーテナントがバックアップ時に設定したバックアップパスが
oss://oceanbase-test-bucket/backup/data?host=cn-****.aliyuncs.com、アーカイブパスがoss://oceanbase-test-bucket/backup/archive?host=cn-****.aliyuncs.comだと仮定した場合、バックアップパスとアーカイブパスのキー情報をそれぞれ変更する例は以下のとおりです:バックアップパスのキー情報を変更する
obclient> ALTER SYSTEM CHANGE EXTERNAL_STORAGE_DEST PATH='oss://oceanbase-test-bucket/backup/data?host=cn-****.aliyuncs.com' SET ACCESS_INFO = 'access_id=******&access_key=******';アーカイブパスのキー情報を変更する
obclient> ALTER SYSTEM CHANGE ARCHIVELOG DESTINATION PATH='oss://oceanbase-test-bucket/backup/archive?host=cn-****.aliyuncs.com' SET ACCESS_INFO = 'access_id=******&access_key=******';
詳細な例については、ALTER/CHANGE/MODIFY EXTERNAL_STORAGE_DESTを参照してください。
変更が成功した後、ビュー
DBA_OB_BACKUP_STORAGE_INFOを確認することができます。MySQLモードOracleモードバックアップパスの
access_idとaccess_key情報を確認するobclient[oceanbase]> SELECT AUTHORIZATION FROM oceanbase.DBA_OB_BACKUP_STORAGE_INFO WHERE PATH='oss://oceanbase-test-bucket/backup/data' AND ENDPOINT = 'host=cn-****.aliyuncs.com';クエリ結果は次のとおりです:
+-------------------------------------+ | AUTHORIZATION | +-------------------------------------+ | access_id=******&encrypt_key=****** | +-------------------------------------+ 1 row in setアーカイブパスの
access_idとaccess_key情報を確認するobclient[oceanbase]> SELECT AUTHORIZATION FROM oceanbase.DBA_OB_BACKUP_STORAGE_INFO WHERE PATH='oss://oceanbase-test-bucket/backup/archive' AND ENDPOINT = 'host=cn-****.aliyuncs.com';クエリ結果は次のとおりです:
+-------------------------------------+ | AUTHORIZATION | +-------------------------------------+ | access_id=******&encrypt_key=****** | +-------------------------------------+ 1 row in set
バックアップパスの
access_idとaccess_key情報を確認するobclient[SYS]> SELECT AUTHORIZATION FROM SYS.DBA_OB_BACKUP_STORAGE_INFO WHERE PATH='oss://oceanbase-test-bucket/backup/data' AND ENDPOINT = 'host=cn-****.aliyuncs.com';クエリ結果は次のとおりです:
+-------------------------------------+ | AUTHORIZATION | +-------------------------------------+ | access_id=******&encrypt_key=****** | +-------------------------------------+ 1 row in setアーカイブパスの
access_idとaccess_key情報を確認するobclient[SYS]> SELECT AUTHORIZATION FROM SYS.DBA_OB_BACKUP_STORAGE_INFO WHERE PATH='oss://oceanbase-test-bucket/backup/archive' AND ENDPOINT = 'host=cn-****.aliyuncs.com';クエリ結果は次のとおりです:
+-------------------------------------+ | AUTHORIZATION | +-------------------------------------+ | access_id=******&encrypt_key=****** | +-------------------------------------+ 1 row in set