SymmetricDS文档翻译--【Chapter 3. 详细配置(Configuration)[section B]】
3.4 Table Triggers
SymmetricDS使用数据库触发器捕获要同步的数据。SymmetricDS的触发器定义在TRIGGER表中。SymmetricDS使用里面的一行记录生成一个数据库触发器。仅仅当一个触发器指定一个有效的Route的时候,这个触发器才会被SymmetricDS自动生成,这个ROUTE的source_node_group_id必须对应当前节点的group id。
TRIGGER表的source_table_name列可以包含通配符(“*”),因此TRIGGER表中的一个行可以定义对多个表的同步操作。系统表和任意以SymmetricDS表前缀开始的表将会被排除在外。也可以提供一个通配符符号的列表。如果有多个通配符符号,可以用逗号确定界限。一个通配符符号可以以感叹号(”!”)开始,以表明一个要排除的匹配。符号总是从左到右被匹配。如果一个表已经存在一个触发器,那张表将不会被通配符匹配中(明确定义的触发器比通配符创建的触发器有更高的优先级)。
当判断一个数据变化是否发生的时候,默认情况下,触发器将记录数据变化,即使数据以相同的值被更新一次。例如,如果一行中的一个列以这个列的值被更新了一次,一个数据变化将会被捕获。有一些全局的属性,trigger.update.capture.changed.data.only.enabled(默认是false),这允许你重载这个行为。当设置为true时,SymmetricDS将仅捕获真正改变过的数据(当一个列的新的数据不等于旧的数据的时候)。
属性trigger.update.capture.changed.data.only.enabled目前仅在MySQL,DB2,SQL Server和Oracle方言中被支持。
下面的SQL语句定义了一个触发器,这个触发器将捕获表item的数据,不管是插入,更新还是删除。Trigger被分配到一个名叫“item”的channel上。
insert into SYM_TRIGGER (trigger_id, source_table_name,channel_id, last_update_time, create_time)values ('item', 'item', 'item', current_timestamp, current_timestamp);
3.4.1 Linking Triggers
有三个重要的控制可以配置到一个特定的Trigger-Router组合:Enabled,Initial Loads 和Ping Back。这些参数的定义可以在TRIGGER_ROUTER表中找到。
3.4.1.1 Enable/Disable Trigger Router
3.4.2. Large Objects
指定在触发触发器时,是捕获lob类型的数据,还是在提取数据时使用回调用流的方式访问源表中Lob类型的列。值为1表明通过回调读取源数据;值为0时,触发器会直接捕获Lob类型的数据。
给SymmetricDS一个暗示,触发器是否捕获Lob类型的数据。如果被设置为1,在触发器捕获数据和为初始负载选择数据时将尽一切努力使用Lob相关的工具提取和存储数据库中的数据。
3.4.3. External Select
3.4.4. Dead Trigger
下面的SQL语句建立了一个非同步的dead Trigger,在初始负载的过程中,这个Trigger发送“corp”节点组的交易信息表的数据到“store”节点组。
insert into sym_trigger (TRIGGER_ID,SOURCE_CATALOG_NAME,SOURCE_SCHEMA_NAME,SOURCE_TABLE_NAME,CHANNEL_ID,SYNC_ON_UPDATE,SYNC_ON_INSERT,SYNC_ON_DELETE,SYNC_ON_INCOMING_BATCH,NAME_FOR_UPDATE_TRIGGER,NAME_FOR_INSERT_TRIGGER,NAME_FOR_DELETE_TRIGGER,SYNC_ON_UPDATE_CONDITION,SYNC_ON_INSERT_CONDITION,SYNC_ON_DELETE_CONDITION,EXTERNAL_SELECT,TX_ID_EXPRESSION,EXCLUDED_COLUMN_NAMES,CREATE_TIME,LAST_UPDATE_BY,LAST_UPDATE_TIME) values ('SALE_TRANSACTION_DEAD',null,null, 'SALE_TRANSACTION','transaction',0,0,0,0,null,null,null,null,null,null,null,null,null,current_timestamp,'demo',current_timestamp); insert into sym_router (ROUTER_ID,TARGET_CATALOG_NAME,TARGET_SCHEMA_NAME,TARGET_TABLE_NAME,SOURCE_NODE_GROUP_ID,TARGET_NODE_GROUP_ID,ROUTER_TYPE,ROUTER_EXPRESSION,SYNC_ON_UPDATE,SYNC_ON_INSERT,SYNC_ON_DELETE,CREATE_TIME,LAST_UPDATE_BY,LAST_UPDATE_TIME) values ('CORP_2_STORE',null,null,null, 'corp','store',null,null,1,1,1,current_timestamp,'demo',current_timestamp); insert into sym_trigger_router (TRIGGER_ID,ROUTER_ID,INITIAL_LOAD_ORDER,INITIAL_LOAD_SELECT,CREATE_TIME,LAST_UPDATE_BY,LAST_UPDATE_TIME) values ('SALE_TRANSACTION_DEAD','CORP_2_REGION',100,null,current_timestamp,'demo',current_timestamp);
3.4.5. Changing Triggers
update SYM_TRIGGERset channel_id = 'price',last_update_by = 'jsmith',last_update_time = current_timestampwhere source_table_name = 'price_changes';
所有改变的配置应该在注册节点集中管理。启动时,改变的配置将被同步到所有的客户端节点。当Trigger的变化到达客户端节点的时候,Sync Trigger Job将会自动运行。
SymmetricDS文档翻译--【Chapter 3. 详细配置(Configuration)[section B]】相关推荐
- 自定义配置节 Section
项目中遇到需求:随时通过增删改配置文件中配置节,来修改程序获取的配置,这里应用到自定义配置节section type="System.Configuration.NameValueSect ...
- 使用Maven 实现打包生成一个可执行jar包:附详细配置解释说明
1. 需求 项目打包,满足以下要求: 1.整个项目打一个Zip包下面包括应用程序.应用程序依赖的jar包.说明文档 2.项目打的jar包可以执行不同类里的Main函数 3.项目源码打的jar包要与依赖 ...
- mybatis-generator 详细配置及使用,爬坑记录
mybatis-generator 详细配置及使用,爬坑记录 提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题. 如果失败,建议使用相同的项目结构, ...
- asp 禁止某一个目录_asp.net core 系列 10 配置configuration (上)
一. ASP.NET Core 中的配置概述 ASP.NET Core 中的应用配置是基于键值对,由configuration 程序提供. configuration 将从各种配置源提供程序操作键值对 ...
- filebeat7.7.0相关详细配置预览- Setup ILM
转载请标明出处: http://blog.csdn.net/qq_27818541/article/details/108836968 本文出自:[BigManing的博客] Setup ILM 从7 ...
- 日志框架之Logback的使用与详细配置
日志框架之Logback的使用与详细配置 Logback概述 配置文件结构 日志级别 Logback的基本使用 与Maven项目集成 与Spring Boot集成 logback配置 Logger配置 ...
- linux5.8下dns,Redhat 5.8 操作系统上DNS详细配置(DNS resolution for SCAN VIPs)
Redhat 5.8操作系统上DNS详细配置(DNS resolution for SCAN VIPs) 1.准备工作 软件包支持(bind*.caching-nameserver) 安装执行yum ...
- 【安装篇】- 基于 VMWARE Oracle Linux7.9 安装 Oracle19c RAC 详细配置方案
作者 | yanwei 来源 | 墨天轮 https://www.modb.pro/db/95684 大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Linux7.9 安装 ...
- Kafka 详细配置
Property Default Description broker.id 每个broker都可以用一个唯一的非负整数id进行标识:这个id可以作为broker的"名字",并 ...
最新文章
- 如何实现iframe(嵌入式帧)的自适应高度
- 有一群200w年薪的朋友是什么感觉?谈一谈入学中国科学院大学的几点感受吧
- [OI]Noip 2018 题解总结(普及)
- Algs4-1.4.12找出两个有序数组的公共元素-方法1
- POJ3614Sunscreen(优先队列+贪心)
- 居然不知道和的区别?
- leetcode209. 长度最小的子数组(暴力+滑动窗口)
- wcl怀旧服网站中文查服务器fb进度,魔兽世界怀旧服wa插件字符串分享 WCL评分和服务器排行查询...
- linux open 头文件_linux下通过共享内存和mmap实现进程间通讯
- CVPR 2019 | 文本检测算法PSENet解读与开源实现
- 没网可以用python吗_在没有网络的情况下能自学python吗?
- 锦城学院计算机系考研,奋斗的青春, 滚烫的人生—— —我的考研路
- Eloquent: 修改器
- WRF——OBSGRID使用方法(gfortran编译)
- 2021杭州社保说明
- CSDN Markdown编辑器将公式取消斜体的方法
- 模拟贷款,设计贷款类Loan,Loan类包括贷款年利率(annualInterestRate),贷款年限(numberOfYears)、贷款额(loanAmount)......
- 个人博客标签和文章的表结构设计
- Windows关于文件句柄数的限制
- 游戏业务面试准备系列1-常见业务问题汇总
热门文章
- 【读书笔记】【WebKit技术内 幕(二)】Chromium Webkit资源加载与网络栈、DOM树、HTML解释器、影子DOM、CSS解释器和样式布局、网页层次与渲染、绘图上下文、
- linux去掉鼠标精确度,关于鼠标的速度与精度
- 使用Win10系统在R中加载TensorFlow-gup加快深度学习运行之攻略
- 纽约时报:硅谷企业兵败中国 但硅谷文化已落地生根
- fdk-aac交叉编译
- 2022年安徽省机器人大赛——程序设计赛道 第十三届安徽省大学生程序设计大赛————I 玩捉迷藏
- tf.gradients以及利用tf.gradients 实现回归
- Mendix开发介绍实用篇(二)
- Install Fedora
- Python 插入排序