クラスタ構成パラメータを変更することで、OceanBaseデータベースの動作をビジネス要件に合わせることができます。OceanBaseデータベースのクラスタ構成パラメータはクラスタパラメータとも呼ばれ、パラメータには動的に反映されるものと再起動後に反映されるものの2種類があります。クラスタ構成パラメータの設定により、クラスタのロードバランシング、マージ時間、マージ方式、リソース割り当て、モジュールのオン/オフなどの機能を制御できます。
注意
システムテナント(sysテナント)は、クラスタレベルの構成パラメータを確認および設定できます。ユーザーテナントはクラスタレベルの構成パラメータを確認することはできますが、設定はできません。
構成パラメータの詳細については、パラメータとシステム変数の概要を参照してください。
手順
システムテナントまたはユーザーテナントでクラスタにログインします。
接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -utest@mysql#obdemo -p***** -Aデータベース接続の詳細な操作手順については、データベース接続の概要(MySQLモード)およびデータベース接続の概要(Oracleモード)を参照してください。
以下のコマンドを実行し、クラスタパラメータの値を確認します。
例:
obclient [(none)]> SHOW PARAMETERS LIKE '%syslog_level%';クエリ結果は次のとおりです:
+-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | default_value | isdefault | +-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ | zone1 | observer | 172.xx.xxx.xxx | 2882 | syslog_level | STRING | WDIAG | specifies the current level of logging. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | WDIAG | 1 | +-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ 1 row in setクラスタパラメータの確認方法の詳細については、クラスタパラメータの確認を参照してください。
以下のコマンドを実行し、クラスタパラメータの値を変更します。
ステートメントは次のとおりです:
ALTER SYSTEM [SET] parameter_name = expression [SCOPE = {SPFILE | BOTH}] [SERVER [=] 'svr_ip:svr_port' | ZONE [=] 'zone' | TENANT [=] {all | all_user | all_meta | tenant_name}];関連パラメータの説明は以下のとおりです:
expressionは、変更後のパラメータ値を指定するために使用されます。SCOPEは、このパラメータ変更の有効範囲を指定するために使用されます。デフォルト値はBOTHです。具体的には:SPFILE:構成テーブル内のパラメータ値のみを変更します。変更はOBServerノードの再起動後に有効になります。BOTH:構成テーブルとメモリ値の両方を変更します。変更は即時に有効になり、OBServerノードが再起動した後も設定値は有効です。
TENANT:システムテナントがすべてのユーザーテナント、すべてのMetaテナント、または指定されたテナントのテナントレベルのパラメータを変更するために使用されます。allとall_user:すべてのユーザーテナント。説明
OceanBaseデータベースはV4.2.1バージョンから、
TENANT = all_userとTENANT = allの意味が同じになりました。有効範囲をすべてのユーザーテナントにする必要がある場合は、TENANT = all_userの使用を推奨します。TENANT = allは今後廃止され、使用されなくなります。all_meta:すべてのMetaテナント。tenant_name:指定テナントのテナント名。
SERVERは、変更するクラスタ内のOBServerサーバーを指定します。ZONEは、変更するクラスタ内のZoneを指定します。ALTER SYSTEMステートメントでは、ZoneとServerを同時に指定することはできません。Zoneを指定する場合は、1つのZoneのみを指定できます。Serverを指定する場合も、1つのServerのみを指定できます。クラスタレベルのパラメータを変更する際に、ZoneもServerも指定しない場合、その変更はクラスタ全体で有効になります。
クラスタパラメータを変更する際、クラスタレベルのパラメータはユーザーテナントで設定することも、システムテナント(すなわち
sysテナント)からユーザーテナントの設定として指定することもできません。例えば、
ALTER SYSTEM SET memory_limit='100G' TENANT='test_tenant'ステートメントを実行するとエラーが発生します。これは、memory_limitがクラスタレベルのパラメータだからです。パラメータがクラスタレベルかテナントレベルかを確認するには、SHOW PARAMETERS LIKE 'parameter_name';ステートメントの実行結果におけるscope列の値を確認することができます:scopeの値がCLUSTERの場合、それはクラスタレベルのパラメータです。scopeの値がTENANTの場合、それはテナントレベルのパラメータです。
システムテナントがクラスタレベルのパラメータを変更する例は以下のとおりです:
obclient [(none)]> ALTER SYSTEM SET syslog_level='ERROR' SCOPE = SPFILE;obclient [(none)]> ALTER SYSTEM SET log_disk_utilization_threshold = 20 TENANT = all_user;obclient [(none)]> ALTER SYSTEM SET system_memory = '50G' ZONE = 'zone1';obclient [(none)]> ALTER SYSTEM SET syslog_io_bandwidth_limit = '5M';obclient [(none)]> ALTER SYSTEM SET memory_limit = '250G' SERVER='xx.xx.xx.238:2882';変更が成功した後、実際の状況(OBServerを再起動するかどうか)に応じて、
SHOW PARAMETERSステートメントを実行して、パラメータの値が正常に変更されたかどうかを検証できます。obclient [(none)]> SHOW PARAMETERS LIKE '%syslog_level%';クエリ結果は次のとおりです:
+-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | default_value | isdefault | +-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ | zone1 | observer | 172.xx.xxx.xxx | 2882 | syslog_level | STRING | ERROR | specifies the current level of logging. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | WDIAG | 0 | +-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ 1 row in set
関連ドキュメント
クラスタパラメータの詳細については、以下を参照してください:
各パラメータの詳細については、パラメータとシステム変数の概要を参照してください。