首批通过分布式安全可靠测评,为关键业务系统打造
ALTER MATERIALIZED VIEW LOG
更新时间:2026-04-06 16:07:19
描述
该语句用来修改物化视图日志(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这两个时间表达式设定在未来的时间点,否则会引发错误。建议使用
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;