説明
この変数はV1.4バージョンから導入されました。
機能の概要
tx_read_onlyは、トランザクションの読み書きモードを制御するために使用されます。つまり、トランザクションが読み取り専用トランザクションであるかどうかを示します。
権限要件
変数の確認
グローバルレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_GLOBAL_VARIABLEビュー(Oracleモード)およびinformation_schema.GLOBAL_VARIABLESビュー(MySQLモード)を使用してグローバルシステム変数の値を確認できます。セッションレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_SESSION_VARIABLEビュー(Oracleモード)およびinformation_schema.SESSION_VARIABLESビュー(MySQLモード)を使用してセッションシステム変数の値を確認できます。
変数の変更
グローバル有効
sysテナントはグローバルシステム変数の値を直接変更できます。MySQLユーザーテナントは
SUPERまたはALTER SYSTEM権限を持っている必要があります。Oracleユーザーテナントは
ALTER SYSTEM権限を持っている必要があります。
セッション有効
sysテナントとすべてのユーザーテナントは、自身のテナントのセッションシステム変数の値を直接変更できます。
プロパティの説明
| プロパティ | 説明 |
|---|---|
| パラメータタイプ | Int |
| デフォルト値 | 0 |
| 値の範囲 |
|
| 適用範囲 |
|
| 変更は可能か | はい。SET ステートメントを使用して変更できます。 |
使用方法
システム変数tx_read_onlyの設定が成功した後:
セッションレベルで有効になる場合、そのユーザーにのみ影響し、他のユーザーには影響しません。
グローバルレベルで有効になる場合、その後に新しく接続するすべてのユーザーに影響します。
設定例
トランザクションを読み取り専用トランザクションに設定します。
セッション有効
obclient> SET tx_read_only = 1;グローバル有効
obclient> SET GLOBAL tx_read_only = 1;