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