POLL_MODIFY_DATA
接口/方法功能
变更记载日志以二进制形式存在,需要通过POLL_MODIFY_DATA特定的接口来特别解析处理,POLL_MODIFY_DATA可满足多种消费BINLOG日志的消费模式,最终会以明文的形式将BINLOG中的内容展现出来;需要注意的是POLL_MODIFY_DATA接口仅可以在具有GATHER属性的节点上执行(单机自带GATHER属性),在任何非GATHER节点之外的其它节点上发起的执行请求均会被无条件中断。关于POLL_MODIFY_DATA接口更详细的解释请参阅《变更记载模块设计》。
接口/方法声明
PROCEDURE POLL_MODIFY_DATA(SUBSCRIBER_NAME VARCHAR,PARTI_NO INTEGER,FILTER VARCHAR,POLL_LEN BIGINT,KEEP_POS BOOLEAN,FNO INTEGER DEFAULT -1,FPOS BIGINT DEFAULT 0);
参数说明
参数名称 | 参数类型 | 参数解释 | 默认值 |
---|---|---|---|
SUBSCRIBER_NAME | VARCHAR | 新建的订阅者名称 | 无 |
PARTI_NO | INTEGER | 分区号 | 无 |
FILTER | VARCHAR | 过滤条件 | 无 |
POLL_LEN | BIGINT | 本次查询需要扫描的日志文件长度(字节) | 无 |
KEEP_POS | BOOLEAN | 是否移动当前分区的备份数据读取位置到本次读取结束位置 | 无 |
FNO | INTEGER | 本次查询开始的文件号 | -1 |
FPOS | BIGINT | 本次查询的开始文件内偏移量 | 0 |
操作示例
-- 从0号分区0号日志的头部开始解析长度为10MB的内容,查找obj_id=1048577的所有DDL/DML操作。
exec DBMS_REPLICATION.POLL_MODIFY_DATA('test',0,'obj_id=1048577',10*1024*1024,true,0,0);