説明
このステートメントは、マテリアライズドビューのログ(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;