説明
このステートメントは、マテリアライズドビューのログ(Materialized View Log、mlog)属性を変更するために使用します。
権限要件
ALTER MATERIALIZED VIEW LOG ステートメントを実行するには、現在のユーザーがベーステーブルに対する ALTER 権限を持っている必要があります。OceanBaseデータベースの権限に関する詳細は、MySQLモードの権限分類を参照してください。
構文
ALTER MATERIALIZED VIEW LOG ON [database.]table_name alter_mlog_action_list;
alter_mview_action_list:
alter_mlog_action [, alter_mlog_action ...]
alter_mlog_action:
parallel_clause
| PURGE [[START WITH expr] [NEXT expr]]
| LOB_INROW_THRESHOLD [=] integer
parallel_clause:
NOPARALLEL
| PARALLEL integer
パラメータ説明
パラメータ |
説明 |
|---|---|
| database. | オプションです。マテリアライズドビューが存在するデータベースを指定します。database. を省略した場合、デフォルトでベーステーブルは現在のセッション接続データベースに存在します。 |
| table_name | マテリアライズドビューのログに対応するベーステーブル名を指定します。 |
| alter_mlog_action_list | マテリアライズドビューのログに対して実行できる変更操作のリストを表します。複数の操作を同時に指定することができ、英字のカンマ(,)で区切ります。詳細については、後述の alter_mlog_action を参照してください。 |
alter_mlog_action
parallel_clause:マテリアライズドビューのログテーブルの並列度を変更するために使用します。取り得る値は以下のとおりです:NOPARALLEL:並列度が1で、デフォルト設定です。PARALLEL integer:並列度を指定します。integerの値は1以上の整数です。
例:
-- まず、ベーステーブルを作成します。 obclient> CREATE TABLE mvlog ( id INT PRIMARY KEY, name VARCHAR(50) ); -- マテリアライズドビューのログを作成します。 obclient> CREATE MATERIALIZED VIEW LOG ON mvlog; -- 並列度を5に設定します。 obclient> ALTER MATERIALIZED VIEW LOG ON mvlog PARALLEL 5; -- 並列なし(デフォルト)に設定します。 obclient> ALTER MATERIALIZED VIEW LOG ON mvlog NOPARALLEL;PURGE [[START WITH expr] [NEXT expr]]:マテリアライズドビューのログのバックグラウンドクリーンアップタスクの時間間隔を変更するために使用します。[START WITH expr]:オプションです。マテリアライズドビューのログの初回クリーンアップ時刻を表します。[NEXT expr]:オプションです。次回のマテリアライズドビューのログのクリーンアップ時刻を表します。次回のクリーンアップ時刻を設定するために使用します。
注意
START WITH exprとNEXT exprの2つの時間式が将来の時点を表していることを確認してください。そうでない場合、エラーが発生します。現在のタイムゾーンの時間を表すには、
sysdate()の使用を推奨します。時間式の例:START WITH sysdate() NEXT sysdate() + INTERVAL 1 DAY上記の句は、現在時刻(
sysdate())から1日ごとに期限切れのマテリアライズドビューのログレコードをクリーンアップすることを表します。例:
obclient> ALTER MATERIALIZED VIEW LOG ON mvlog PURGE START WITH sysdate();obclient> ALTER MATERIALIZED VIEW LOG ON mvlog PURGE NEXT sysdate() + INTERVAL 1 DAY;obclient> ALTER MATERIALIZED VIEW LOG ON mvlog PURGE START WITH sysdate() NEXT sysdate() + INTERVAL 1 DAY;LOB_INROW_THRESHOLD [=] integer:マテリアライズドビューのログのLOBインラインストレージ長のしきい値を変更するために使用します。値は大きくする方向のみサポートされます。説明
LOB_INROW_THRESHOLDのデフォルト値は8KBです。mlogのLOB_INROW_THRESHOLDのデフォルト値は、システム変数 ob_default_lob_inrow_threshold によって制御されません。例:
obclient> ALTER MATERIALIZED VIEW LOG ON mvlog LOB_INROW_THRESHOLD 10000;