OceanBaseデータベースは、構成パラメータとシステム変数を設定することで構成管理を実現します。
パラメータ
パラメータは主に運用保守に使用され、マシンおよびそれ以上のレベルのシステム動作を制御するために一般的に使用されます。ノード起動パラメータやテナント作成パラメータとして設定できるほか、ノード実行時に変更することでシステム動作を調整することも可能です。 パラメータの詳細については、パラメータの設定を参照してください。
システム変数
システム変数は通常ユーザーセッションにバインドされ、セッションレベルのSQL動作を制御するために使用されます。
グローバルおよびセッションレベルの変数の設定がサポートされています。グローバルレベルのシステム変数を設定した場合、現在のセッションでは有効にならず、新しく作成されるすべてのセッションが新しい変数値を読み取ります。セッションレベルのシステム変数を設定した場合、その変更は現在のセッションにのみ適用されます。
システム変数の詳細については、変数の設定を参照してください。
システム構成パラメータとシステム変数の比較
| 比較項目 |
システム構成パラメータ |
システム変数 |
| 適用範囲 |
クラスタ、テナント、ゾーン、マシン |
テナントのグローバルレベルまたはセッションレベル |
| 有効化モード |
- 動的に有効化:
edit_level が dynamic_effective の場合。
- 再起動時に有効化:
edit_level が static_effective の場合。
|
- セッションレベルの変数は、現在のセッションにのみ有効であり、他のセッションには無効です。
- グローバルレベルの変数は、現在のセッションには無効であり、再ログインして新しいセッションを確立すると有効になります。
|
| 変更方法 |
- SQL文による変更がサポートされています。例:
obclient> Alter SYSTEM SET schema_history_expire_time='1h';
- 起動パラメータによる変更もサポートされています。例:
cd /home/admin && ./bin/observer -o "schema_history_expire_time='1h'"
|
SQL文による変更のみがサポートされています。例:
- MySQLモード
obclient> SET ob_query_timeout = 20000000; obclient> SET GLOBAL ob_query_timeout = 20000000;
- Oracleモード
obclient> SET ob_query_timeout = 20000000;
obclient> SET GLOBAL ob_query_timeout = 20000000; obclient> ALTER SESSION SET ob_query_timeout = 20000000; obclient> ALTER SYSTEM SET ob_query_timeout = 20000000;
|
| 永続化 |
内部テーブルおよび設定ファイルに永続化され、この構成パラメータは /home/admin/oceanbase/etc/observer.config.bin および /home/admin/oceanbase/etc/observer.config.bin.history ファイルで確認できます。 |
GLOBALレベルの変数のみが永続化され、SESSIONレベルの変数は永続化されません。 |
| ライフサイクル |
プロセスの起動から終了まで長い。 |
テナントのSchemaが正常に作成された後にのみ有効になる。 |
| クエリ方法 |
SHOW PARAMETERS ステートメントを使用してクエリできます。例:
obclient> SHOW PARAMETERS LIKE 'schema_history_expire_time'; |
SHOW [GLOBAL] VARIABLES または SELECT ステートメントを使用してクエリできます。 例:
- MySQLモード
obclient> SHOW VARIABLES LIKE 'ob_query_timeout'; obclient> SHOW GLOBAL VARIABLES LIKE 'ob_query_timeout';
obclient> SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';
obclient> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';
- Oracleモード
obclient> SHOW VARIABLES LIKE 'ob_query_timeout'; obclient> SHOW GLOBAL VARIABLES LIKE 'ob_query_timeout';
obclient> SELECT * FROM SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
obclient> SELECT * FROM SYS.TENANT_VIRTUAL_SESSION_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
|