SymmetricDS文档翻译--【Chapter 3. 详细配置(Configuration)[section D]】

1.6.     Conflicts

3.7.1. Conflict Detection and Resolution

冲突的检测和解决是SymmetricDS 3.0的新特性。冲突检测是决定是否插入,更新或者删除的策略。冲突是因为目标数据与在源节点先前插入、更新或删除的数据不一致。解决冲突就是当检测到冲突时决定做什么。

冲突检测和解决策略配置在CONFLICT表中。至少为一个NODE_GROUP_LINK配置这个冲突策略。这些配置信息仅限于一个CHANNEL或一个表。

冲突检测通过CONFLICT表中的detect_type和detect_expression列指定。detect_expression的值依赖于detect_type的值。当数据被加载到目标系统的时候执行冲突检测。

USE_PK_DATA

表明仅使用主键来检测冲突。如果已经存在一个相同主键的行,在更新和删除过程中将不会检测到冲突。更新和删除一行数据仅使用主键的列来处理。如果在插入时一行数据已经存在,将会检测到冲突。

USE_OLD_DATA

表明将使用一行数据的各个列的旧值来检测冲突。旧数据是这行数据在源节点中在变化之前的值。如果在目标系统上存在与旧数据相同的一行数据,在更新和删除时,将不会检测到冲突。如果在插入是一行数据已经存在,将会检测到数据冲突。

注意,一些平台不知道二进制列的比较。在下列平台下,不会对二进制列的冲突检测:DB2,DERBY,ORACLE和SQLSERVER。

USE_CHANGED_DATA

跟上边相反。

USE_TIMESTAMP

判断条件是主键+时间戳列。

USE_VERSION

判断条件是主键+一个版本号列。

Important

注意,在表对应的Trigger上,use_stream_lobs被设置为true时,冲突检测将不会检测二进制类型的列,此外,一些数据库不允许二进制类型的列的比较,不管use_stream_lobs是否被设置为true。

可以在CONFLICT表的resolve_type列,配置如何处理冲突检测。可以配置两个可选的Boolean类型的值,resolve_row_only和resolve_changes_only,下面讨论这个解决方案的设置。

FALLBACK

表明当检测到冲突的时候,系统应该自动的应用变化后的数据。如果源节点的操作是插入,将会尝试更新数据。如果源节点中的操作是更新,但是目标节点这行数据不存在,然后将在目标节点尝试插入操作。如果源节点的操作室删除,但是目标节点中这行数据不存在,然后目标节点的这个删除操作将被忽略。Resolve_changes_only标识控制在一次fallback操作中,是所有的行都被更新还是只更新已经发生变化的列。

IGNORE

表明当检测到冲突时,系统将自动忽略。Resolve_row_only列控制是整个batch都被忽略还是只忽略这一行数据。

MANUAL

表明当检测到冲突的时候,整个Batch将保持错误状态直到手工介入。一行错误的数据会被插入到INCOMING_ERROR表中。此次冲突检测的标识(例如CONFLICT表中的conflict_id)将会被记录,同时还会记录旧的数据,新的数据和当前数据(当前数据是指在目的节点意外的数据,这些数据不想期望的那样不匹配旧的数据)到old_data,new_data和cur_data中。为了解决冲突,resolve_data列可以被手工的填充以代替原始的数据,这将被用来进行下一次加载尝试。Resolve_ignore标识将被用来表明下一次加载时,这一行数据是否应该被忽略。

NEWER_WINS

表明当使用USE_TIMESTAMP或者USE_VERSION方式检测到冲突的时候,将会使用更新的时间戳或者更高版本的数的数据更新目标节点的数据。

对于配置的每一个冲突检测策略,你可以控制是否以及多少被解决冲突后的数据被发送回数据冲突所在的节点。可以设置ping_back列为下面的值中的一个来控制这个策略:

OFF

没有数据被发送回原始节点,即使被解决的数据也不匹配节点发送的数据。

SINGLE_ROW

一个Batch中的一行导致冲突然后被解决的数据发送回原始节点

REMAING_ROWS

一个batch中发生冲突然后被解决的一行数据,与整个Batch中剩下的数据一起,被发送回原始节点。

时间: 2024-08-08 04:20:37

SymmetricDS文档翻译--【Chapter 3. 详细配置(Configuration)[section D]】的相关文章

SymmetricDS文档翻译--【Chapter 3. 详细配置(Configuration)[section A]】

Chapter 3. Configuration 3.1. Groups Groups 定义在NODE_GROUP表中.下面的SQL语句将分别为分销商店例子中的"corp"和"store"创建一个节点组. insertinto SYM_NODE_GROUP (node_group_id, description) values ('store', 'A retail storenode'); insert into SYM_NODE_GROUP (node_grou

SymmetricDS文档翻译--【Chapter 3. 详细配置(Configuration)[section C]】

3.6. Routers 目前的实现中提供的Route实现包含: 1.      Default Router:这个Router发送所有的数据到Router中定义的目标节点所属的组中的所有的节点. 2.      Column Match Router:这个Router可以将一个列的旧值(数据源表中此列的值)或者新值(将要在目标节点设置的值)与一个常量值或者节点的external_id和node_id的值比较. 3.      Lookup Router:这个Router可以被配置,在路由数据时

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列可以包含通配符("*"),因此TR

SymmetricDS文档翻译--【Chapter 1. 简介(Introduction)】

本用户指南将简要介绍SymmetricDS配置中基础的和高级的概念.读完本指南,你将对SymmetricDS的能力和其中的概念有一个更好的理解. 1.1.   System Requirements SymmetricDS使用Java编写,需要JRE或者JDK 6.0及以上版本. 任何一个拥有Trigger技术和JDBC驱动的数据库都可能能够使用SymmetricDS.数据库通过Database Dialect被抽象,以支持不同的数据库特性.下面的数据库方言已经被包含进此发行版中(version

【甘道夫】Hadoop2.2.0 NN HA详细配置+Client透明性试验【完整版】

引言: 前面转载过一篇团队兄弟[伊利丹]写的NN HA实验记录,我也基于他的环境实验了NN HA对于Client的透明性. 本篇文章记录的是亲自配置NN HA的详细全过程,以及全面测试HA对客户端访问透明性的全过程,希望对大家有帮助. 实验环境: Hadoop2.2.0的4节点集群,ZK节点3个(ZK节点数最好为奇数个),hosts文件和各节点角色分配如下: hosts: 192.168.66.91 master 192.168.66.92 slave1 192.168.66.93 slave2

Unity IOC注入详细配置(MVC,WebApi)

一直想写一篇关于unity 详细的配置信息的文章,也算是自我总结吧 先介绍了unity , Unity是微软官方推荐使用的轻型的IOC框架,支持各种方式的注入 ,使用来解耦的利器. 获取unity 的方式呢你可以直接下载对应的dll文件或者去对应的网站下载,我个人推荐呢用NuGet直接添加和管理. 添加方式如下图 安装之后呢会自动添加到项目里,当有更新的时候,直接在窗口里面更新就行,或者执行命令行 Update-Package  Mvc{tab} ,如果你只需要注入普通的MVC的话那现在啊就可以

Universal-Image-Loader解析(一)——ImageLoaderConfiguration的详细配置

本篇文章主要介绍了"Universal-Image-Loader解析(一)——ImageLoaderConfiguration的详细配置 ",主要涉及到Universal-Image-Loader解析(一)——ImageLoaderConfiguration的详细配置 方面的内容,对于Universal-Image-Loader解析(一)——ImageLoaderConfiguration的详细配置 感兴趣的同学可以参考一下. Universal-Image-Loader这个开源框架又

nginx详细配置教程

一.安装nginx 安装nginx之前首先需要安装"Development Tools"和 "Development Libraries"两个基本组包.yum groupinstall "Development Tools" "Development Libraries".另外还需要安装pcre-devel包. 安装pcre-devel: yum install pcre-devel 安装nginx: 添加nginx账号gro

Failed obtaining configuration for Common.Logging from configuration section 'common/logging'

spring.net 配置时 总回出现" Failed obtaining configuration for Common.Logging from configuration section 'common/logging' 错误. 解决方案:在app.config中包含了 <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />