首批通过分布式安全可靠测评,为关键业务系统打造
创建物化视图日志
更新时间:2024-08-26 23:00:00
描述
物化视图日志(Materialized View Log,mlog)用于记录用户表(基表)的增量更新数据,以支持物化视图的快速刷新功能。mlog 是一个记录表,追踪基表的变化,并将这些变化应用于相应的物化视图,实现快速刷新。
说明
OceanBase 数据库 mlog 暂时不支持指定 Partition,mlog 的 Partition 和基表的 Partition 是绑定关系。
权限要求
创建物化视图日志需要有 CREATE TABLE 和基表的 SELECT 权限。更多有关 OceanBase 数据库权限的详细介绍,请参见 Oracle 模式下的权限分类。
语法
创建物化视图日志的 SQL 语句格式如下:
CREATE MATERIALIZED VIEW LOG ON [schema.] table_name [parallel_clause] [with_clause] [mv_log_purge_clause];
有关创建物化视图日志语法的详细参数说明信息,请参见 CREATE MATERIALIZED VIEW LOG。
示例
创建表
test_tbl1。CREATE TABLE test_tbl1 (id NUMBER, name VARCHAR2(20), age NUMBER, PRIMARY KEY(id, age)) PARTITION BY HASH(age) PARTITIONS 10;在
test_tbl1表上创建物化视图日志。指定并行处理物化视图日志的并行度为5和物化视图日志记录name和age列的变更信息,并且会记录变更前后的新值;配置物化视图日志从当前日期开始,每隔1天清理一次过期的物化视图日志记录。CREATE MATERIALIZED VIEW LOG ON test_tbl1 PARALLEL 5 WITH SEQUENCE(name) INCLUDING NEW VALUES PURGE START WITH current_date NEXT current_date + 1;查看表
test_tbl1上物化视图日志的信息。DESC mlog$_test_tbl1;返回结果如下:
+------------+--------------+------+------+---------+-------+ | FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA | +------------+--------------+------+------+---------+-------+ | ID | NUMBER | NO | PRI | NULL | NULL | | NAME | VARCHAR2(20) | YES | NULL | NULL | NULL | | AGE | NUMBER | NO | PRI | NULL | NULL | | SEQUENCE$$ | BIGINT | NO | PRI | NULL | NULL | | DMLTYPE$$ | VARCHAR2(1 ) | YES | NULL | NULL | NULL | | OLD_NEW$$ | VARCHAR2(1 ) | YES | NULL | NULL | NULL | +------------+--------------+------+------+---------+-------+ 6 rows in set