クラスタパラメータを変更することで、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
関連ドキュメント
クラスタ構成パラメータの詳細については、以下を参照してください:
各構成パラメータの詳細については、パラメータとシステム変数の概要を参照してください。