OceanBaseデータベースのテナントシステム変数は、グローバル変数とセッション変数に分類されます。システム変数を設定することで、OceanBaseデータベースの動作をビジネス要件に合わせることができます。
- グローバル変数:グローバルレベルでの変更を表します。データベースの同一テナント内の異なるユーザー間でグローバル変数は共有されます。グローバル変数の変更は、セッションの終了によって無効になることはありません。また、グローバル変数を変更しても、その変更は現在開いているセッションには反映されません。変更を有効にするには、新しいセッションを確立する必要があります。
- セッション変数:セッションレベルでの変更を表します。クライアントがデータベースに接続すると、データベースはグローバル変数をコピーして自動的にセッション変数を生成します。セッション変数の変更は、現在のセッション内でのみ有効です。
システム変数とシステムパラメータの比較:
比較項目 |
システム構成パラメータ |
システム変数 |
|---|---|---|
| 適用範囲 | クラスタ、Zone、マシン、およびテナントに分類されます。 | テナント内のグローバルまたはセッション変数レベルに分類されます。 |
| 適用方法 |
|
|
| 変更方法 |
|
SQLステートメントを使用してのみ変更できます。例:
|
| クエリ方法 | SHOW PARAMETERSステートメントを使用してクエリできます。例:SHOW PARAMETERS LIKE 'schema_history_expire_time'; |
SHOW [GLOBAL] VARIABLESステートメントを使用してクエリできます。例:
|
| 永続化 | 内部テーブルと設定ファイルに永続化され、/home/admin/oceanbase/etc/observer.config.binおよび/home/admin/oceanbase/etc/observer.config.bin.historyファイルでこのパラメータをクエリできます。 |
グローバル変数レベルの変数のみが永続化され、セッション変数レベルの変数は永続化されません。 |
| ライフサイクル | 長く、プロセスの起動から終了まで持続します。 | 短く、テナントのSchemaが作成された後に有効になります。 |