本記事では、SQL文を使用してクラスタ構成パラメータを確認したり、クラスタ構成パラメータを変更したりする操作について説明します。
構成パラメータの確認
クラスタパラメータのチェック項目
| パラメータ | パラメータの説明 | 推奨値 |
|---|---|---|
| memory_limit_percentage | システム全体の利用可能なメモリサイズが総メモリサイズに占める割合。値の範囲は [10, 90] です。 | 80 |
| server_permanent_offline_time | ノードのハートビート中断時間のしきい値。つまり、ノードのハートビートがどの程度中断したら永続的にオフラインとみなされるかを示します。永続的にオフラインとなったノード上のデータレプリカは自動的に補完する必要があります。値の範囲は [20s, +∞) です。 | 7200s |
| clog_sync_time_warn_threshold | トランザクションログ同期時間のアラートしきい値。同期時間がこの値を超えるとWARNログが生成されます。値の範囲は [1ms, 10000ms] です。 | 1s |
| large_query_threshold | クエリ実行時間のしきい値。時間を超えたリクエストは一時停止される可能性があり、一時停止後に自動的に大規模クエリと判断され、大規模クエリのスケジューリングポリシーが実行されます。値の範囲は [1ms, +∞) です。 | 5s |
| trace_log_slow_query_watermark | クエリの実行時間のしきい値。クエリの実行時間がこのしきい値を超えると、スロークエリとみなされ、スロークエリの追跡ログがシステムログに出力されます。値の範囲は [1ms, +∞) です。 | 1s |
| autoinc_cache_refresh_interval | 自動インクリメント列キャッシュのリフレッシュ間隔。値の範囲は [100ms, +∞) です。 | 4200s |
| default_compress_func | テーブルデータのデフォルト圧縮アルゴリズム。テーブル作成時に他の圧縮アルゴリズムを指定することもできます。値 (none、lz4-1.0、snappy-1.0、zlib-1.0、zstd-1.0、zstd-1.3.8)。 | zstd_1.0 |
| syslog_io_bandwidth_limit | システムログが占用できるディスクI/O帯域幅の上限。帯域幅上限を超えるシステムログは破棄されます。 | 5 MB |
| memstore_limit_percentage | テナントがMemStoreを使用するメモリが、その総利用可能メモリに占める割合。値の範囲は [1, 99] です。 | 50 |
| system_memory | システムがテナントID 500 のテナントに予約するメモリ容量を設定します。値の範囲は [0 MB, +∞) です。 |
50 GB |
| resource_hard_limit | ユニットの割り当てに使用されます。CPUやメモリなどのリソースを割り当てる際、リソースの総量は実際の数値にこのパーセンテージを乗じた値となります。最終的なサーバーリソースの割合は、resource-hard-limitを超えてはなりません。値の範囲は [100, 10000] です。 | 100 |
| syslog_level | システムログレベル。値は (DEBUG、TRACE、INFO、WARN、USER-ERR、ERROR) です。 | INFO |
| data_disk_usage_limit_percentage | データファイルに書き込むことができる最大の割合。このしきい値を超えた場合、データの移入を禁止します。値の範囲は [50, 100] です。 | 95 |
| enable_perf_event | パフォーマンスイベントの情報収集機能を有効にするかどうか。値はTrueまたはFalseです。 | True |
| enable_sql_audit | SQL監査機能を有効にするかどうか。値はTrueまたはFalseです。 | True |
ビューを使用して構成パラメータの値を確認する
システムテナントで、ビューGV$OB_PARAMETERSを使用してクラスタパラメータの値を確認できます。ステートメントは次のとおりです:
SELECT SVR_IP,ZONE,NAME,VALUE FROM OCEANBASE.GV$OB_PARAMETERS WHERE NAME IN ("memory_limit_percentage", "server_permanent_offline_time", "clog_sync_time_warn_threshold", "large_query_threshold", "trace_log_slow_query_watermark", "autoinc_cache_refresh_interval", "default_compress_func", "syslog_io_bandwidth_limit", "memstore_limit_percentage", "system_memory", "resource_hard_limit", "syslog_level", "data_disk_usage_limit_percentage", "enable_perf_event", "enable_sql_audit");
GV$OB_PARAMETERSの詳細については、GV$OB_PARAMETERSを参照してください。
例:
obclient [(none)]> SELECT SVR_IP,ZONE,NAME,VALUE FROM OCEANBASE.GV$OB_PARAMETERS WHERE NAME IN ("memory_limit_percentage", "server_permanent_offline_time", "clog_sync_time_warn_threshold", "large_query_threshold", "trace_log_slow_query_watermark", "autoinc_cache_refresh_interval", "default_compress_func", "syslog_io_bandwidth_limit", "memstore_limit_percentage", "system_memory", "resource_hard_limit", "syslog_level", "data_disk_usage_limit_percentage", "enable_perf_event", "enable_sql_audit");
実行結果は次のとおりです:
+-----------------+-------+----------------------------------+------------+
| SVR_IP | ZONE | NAME | VALUE |
+-----------------+-------+----------------------------------+------------+
| xxx.xxx.xxx.xxx | zone1 | data_disk_usage_limit_percentage | 90 |
| xxx.xxx.xxx.xxx | zone1 | clog_sync_time_warn_threshold | 100ms |
| xxx.xxx.xxx.xxx | zone1 | resource_hard_limit | 100 |
| xxx.xxx.xxx.xxx | zone1 | server_permanent_offline_time | 3600s |
| xxx.xxx.xxx.xxx | zone1 | memstore_limit_percentage | 50 |
| xxx.xxx.xxx.xxx | zone1 | large_query_threshold | 5s |
| xxx.xxx.xxx.xxx | zone1 | autoinc_cache_refresh_interval | 3600s |
| xxx.xxx.xxx.xxx | zone1 | memory_limit_percentage | 80 |
| xxx.xxx.xxx.xxx | zone1 | syslog_io_bandwidth_limit | 30MB |
| xxx.xxx.xxx.xxx | zone1 | syslog_level | WDIAG |
| xxx.xxx.xxx.xxx | zone1 | default_compress_func | zstd_1.3.8 |
| xxx.xxx.xxx.xxx | zone1 | enable_perf_event | True |
| xxx.xxx.xxx.xxx | zone1 | enable_sql_audit | True |
| xxx.xxx.xxx.xxx | zone1 | trace_log_slow_query_watermark | 1s |
| xxx.xxx.xxx.xxx | zone1 | system_memory | 30G |
+-----------------+-------+----------------------------------+------------+
15 rows in set
SHOWステートメントを使用して構成パラメータの値を確認する
システムテナントで、次のSQLステートメントを実行してクラスタパラメータの値を確認できます。
SHOW PARAMETERS LIKE '$parameters_name';
ここで、$parameters_nameはクラスタ構成パラメータの名前です。
例:
obclient [(none)]> SHOW PARAMETERS LIKE 'enable_sql_audit';
実行結果は次のとおりです:
+-------+----------+----------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+
| 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 | enable_sql_audit | BOOL | True | specifies whether SQL audit is turned on. The default value is TRUE. Value: TRUE: turned on FALSE: turned off | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | true | 1 |
+-------+----------+----------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+
1 row in set
クラスタパラメータの変更
以下のSQL文を使用して、クラスタパラメータの値を変更できます。
クラスタパラメータとは構成パラメータのことであり、構成パラメータを変更する構文は以下のとおりです。複数のシステム構成パラメータを同時に変更する場合は、カンマ(,)で区切ってください。
ALTER SYSTEM SET param_name = expr
[COMMENT 'text']
[PARAM_OPTS]
[TENANT = 'tenantname'];
PARAM_OPTS:
[ZONE='zone' | SERVER='server_ip:rpc_port']
パラメータ変更文の説明は以下のとおりです:
PARAM_OPTS:構成パラメータを変更する際に指定するその他の制限条件。例えば、ゾーンやサーバーなどを指定します。ALTER SYSTEM:このステートメントでは、ゾーンとサーバーを同時に指定することはできません。また、ゾーンを指定する場合は1つのゾーンのみを指定でき、サーバーを指定する場合も1つのサーバーのみを指定できます。クラスタレベルの構成パラメータ(
Scope)は、通常テナントから設定することができず、sysテナントを通じて通常テナントを指定して設定することもできません。例えば、ALTER SYSTEM SET memory_limit='100G' TENANT='test_tenant'はエラーを報告します。これは、memory_limitがクラスタレベル(Scope)の構成パラメータだからです。
例:
server_permanent_offline_time の値を7200秒に変更します。
obclient [(none)]> ALTER SYSTEM SET server_permanent_offline_time = '7200s';
関連ドキュメント
- OceanBaseクラウドプラットフォーム(OceanBase Cloud Platform、OCP)を使用してOceanBaseクラスタを管理している場合は、OCPを通じてパラメータの一元管理も可能です。これには、パラメータの表示、変更、およびパラメータ変更履歴の確認などの操作が含まれます。詳細については、パラメータリストの表示を参照してください。
- クラスタ構成パラメータの詳細情報については、構成パラメータの概要を参照してください。