説明
- V4.3.x系では、この変数はV4.3.2バージョンから導入されました。
- V4.2.x系では、この変数はV4.2.3バージョンから導入されました。
機能の概要
MySQL 5.7と8.0では、一部のシナリオで製品動作に衝突があります。例えば、REPLACE('abd','',null)の出力結果はMySQL 5.7と8.0で異なります。ob_compatibility_controlは、テナント作成時に製品動作に衝突が発生した場合に、MySQL 5.7バージョンとMySQL 8.0バージョンのどちらと互換するかを指定するために使用されます。この変数はテナント作成後には変更できません。いずれのモードでも、動作上の衝突がないMySQL 5.7/8.0の機能の超集合を使用できます。
MySQL 5.7と8.0では、一部のケースで動作に差異があります。例えば、REPLACE('abd','',null)の実行結果は、MySQL 5.7と8.0で異なります。ob_compatibility_controlは、こうした動作差異がある場合に、テナント作成時にMySQL 5.7またはMySQL 8.0のどちらの動作に合わせるかを指定するための変数です。この変数は、テナント作成後に変更できません。どちらのモードを選択した場合でも、MySQL 5.7と8.0の間で動作差異のない機能については、両バージョンの機能を包含した形で利用できます。
適用対象
この変数はOceanBaseデータベースのMySQLモードでのみ適用されます。
権限要件
変数の確認
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはinformation_schema.GLOBAL_VARIABLESビュー(MySQLモード)を使用してグローバルシステム変数の値を確認できます。変数の変更
この変数はテナント作成後はSQLステートメントでの変更をサポートしていません。
プロパティの説明
プロパティ |
説明 |
|---|---|
| パラメータタイプ | Enum |
| デフォルト値 | MYSQL5.7 |
| 値の範囲 | ["MYSQL5.7","MYSQL8.0"] |
| 適用範囲 | Global |
| 変更は可能か | 不可です。この変数はテナント作成時にのみ指定可能で、テナント作成後はSETまたはALTER SESSION SETステートメントでの変更はサポートされません。 |
| 読み取り専用か | はい |
使用方法
この変数がないテナントを、この変数が制御するバージョンにアップグレードする場合、この変数はデフォルト値
MYSQL5.7を取得します。新規テナントの場合は、互換モードを指定できます。マイナーバージョンで既にMySQL 8.0として実装されている機能については、
ob_compatibility_version < 4.2.3の場合、ob_compatibility_controlの値に関係なく、MySQL 8.0の互換性で動作します。
設定例
テナント作成時に互換モードをMySQL 5.7に指定します。
obclient> create tenant tenant_m57 zone_list=('z1'),primary_zone='z1',resource_pool_list=('pool1') set ob_compatibility_mode='mysql',ob_compatibility_control='MYSQL5.7',ob_tcp_invited_nodes='%';