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_group_id, description)
          values ('corp', 'A corporate node');

insertinto SYM_NODE_GROUP
                (node_group_id, description)
          values ('store', 'A retail storenode');

               insert into SYM_NODE_GROUP
          (node_group_id, description)
          values ('corp', 'A corporate node');

3.2. Group Links

Group links定义在 NODE_GROUP_LINK表中。Links定义了一个组中节点如何联系其他组中的节点。下面是通信的机制。

Push(P)

表明数据源节点将通过HTTP PUT请求初始化通信。

Wait for Pull(W)

表明数据源节点将等待目标节点通过HTTP GET请求联系数据源节点拉取数据。

Route-Only(R)

Route-Only表明数据传送将不会通过SymmetricDS。这个类型在使用XML发布Router或者一个审计表改变Router的时候可能会非常有用。

如果配置数据在link上被同步,Link也可以定义。例如,你可能不想让远程节点能够改变配置,印象网络中的其他节点。在这种情况下,你可以在对应的Link上设置sync_config_enabled的值为0。

一个Link可以使用同一个节点组同时作为源和目标。这样的配置将允许一个节点组与该节点组中的其他节点数据同步。

下面的SQL语句将“corp”和“store”节点组连接。“store”节点将推送它们的数据变化到“corp”节点,“corp”节点将等待“store”节点拉取该节点上的数据变化。

insert into SYM_NODE_GROUP_LINK
                 (source_node_group, target_node_group, data_event_action)
          values ('store', 'corp', 'P');

        insert into SYM_NODE_GROUP_LINK
                 (source_node_group, target_node_group, data_event_action)
          values ('corp', 'store', 'W');

3.3. Channels

通过将数据分类到不同的Channel和不同的TRIGGER管理,用户可以获得更多数据流的控制和更多的可见性。此外,SymmetricDS也允许同步操作会被开启,挂起或者被channel重新调度。同步的频率和数据被同步的顺序也是在channel层被控制的。

下面的SQL语句为一个分销商店创建了的几个channel。一个“Item”channel处理商品和商品价格的信息的数据,“sale_transaction” Channel处理交易信息的数据。

insert into SYM_CHANNEL (channel_id, rocessing_order, max_batch_size, max_batch_to_send,
                 extract_period_millis, batch_algorithm, enabled, description)
          values ('item', 10, 1000, 10, 0, 'default', 1, 'Item and pricing data'); 

        insert into SYM_CHANNEL (channel_id, processing_order, max_batch_size,
                 max_batch_to_send, extract_period_millis, batch_algorithm, enabled, description)
          values ('sale_transaction', 1, 1000, 10, 60000,
                 'transactional', 1, 'retail sale transactions from register');

Batch过程是Channel给将要被传输的数据分组,然后一起提交到客户端(其他的节点)。有三种不同的开箱即食(哈哈)的batch算法,可以在定义channel时通过指定batch_algorithm列的值指定想用的batch算法。

Default

在一个事务中所有的数据变化确保被batch到一起。多个事务将会被batch到一起,然后一起提交,直到没有更多的要发送的数据或者batch的大小达到设定的max_batch_size值。

Transactional

Batch将直接映射到数据库事务。如果有多个小的数据库事务,将会有很多的batch。此算法中,设定的max_batch_size的值不起任何作用。

Nontraditional

多个事务将会被batch到一起,然后一起提交,直到没有更多要发送的数据或者batch的大小达到max_batch_size设定的值。Batch将会在max_batch_size大小处被截断,不管是不是在事务的中间。

如果一个channel只包含了需要单向同步的数据库表,而且数据被路由到目标组的所有的节点,Channel上的batch将会被优化,以在所有的目的节点间共享提交的batch。在数据需要被路由到成千上万个节点时,这是一个非常重要的特性。当这个节点被检测的时候,你将会看到OUTGOING_BATCH表中的Batch的common_flag被设置为1。

Channel有几个与大小相关的属性。包括:

max_batch_size

指定此channel中的一个batch中可以处理的数据变化事件的最大值。

Max_batch_to_send

指定在两个节点的一次同步中要被发送给一个给定的channel的batch的最大值。一次同步就是一次推送数据或者一次拉取数据。例如,如果有12的batch已经准备好了要被发送给一个channel,max_batch_to_send等于10,然后只有这12个中的前10个被发送,即使这12个已经都被准备好了。

Max_data_to_route

指定一个channel一次route的数据行数的最大值。

根据你的同步需求,你可以分别指定在一个channel正在route数据的时候,是否读取和传输旧的数据(数据变化发生之前的数据),新的数据(数据变化发生之后的数据)和主键数据(就是主键)。这分别被channel表的use_old_data_to_route列,use_row_data_to_route列和use_pk_data_to_route列设置。默认情况下,它们都是1(true)。

如果一个channel上的数据包含Lob类型的数据,你可以设置channel表的contains_big_lob列为1(true),这会给SymmetricDS一个暗示,这个channel中包含Lob类型的数据。如果SymmetricDS知道DATA表中将不会包含大对象,SymmetricDS就可以利用一些数据库提供的特性们,所以,如果表中真有大对象,最好是配置上,让SymmetricDS知道。不同数据库对于一个大对象的大小的定义是不同的。

时间: 2024-10-27 13:38:17

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

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 3. 详细配置(Configuration)[section D]】

1.6.     Conflicts 3.7.1. Conflict Detection and Resolution 冲突的检测和解决是SymmetricDS 3.0的新特性.冲突检测是决定是否插入,更新或者删除的策略.冲突是因为目标数据与在源节点先前插入.更新或删除的数据不一致.解决冲突就是当检测到冲突时决定做什么. 冲突检测和解决策略配置在CONFLICT表中.至少为一个NODE_GROUP_LINK配置这个冲突策略.这些配置信息仅限于一个CHANNEL或一个表. 冲突检测通过CONFLI

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" />