17-数据库同步配置举例-自定义列自定义策略
本章节下载: 17-数据库同步配置举例-自定义列自定义策略 (671.32 KB)
目 录
数据库同步模块为系统内及系统间的信息交互和共享提供了一个集成化数据交互和共享空间,可同时满足客户各类平台、数据库及应用之间的数据交换需求。
本文档不严格与具体软、硬件版本对应,如果使用过程中与产品实际情况有差异,请以设备实际情况为准。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文档假设您已了解H3C SecPath GAP2000特性和数据库同步模块功能。
PC、安全隔离与信息交换系统、SW(交换机)、Oracle。
如图1所示,HOST1和HOST2上面分别装有oracle数据库。现有以下组网需求:
将用户对内端侧数据库表的操作同步到外端侧数据库,实现内、外网之间,自动安全信息交换。
注:此文档以oracle 11g为例进行配置指导,新建用户及数据库表进行同步,在实际部署中可使用已有用户及数据库表进行操作。
该配置指导是H3C SecPath GAP2000设备E6701版本,且需要License开启数据库同步功能。
oracle10g/11g/12c(CDB)
DB2 9.7/V11.1.2020.1393
sql server 2005/2008R2
GBASE 8
postgreSQL 8/10
kingbase V8R6(V8R3以上版本)
DM 8
本次同步方向以“内到外”、增量同步举例。
配置HOST1、HOST2、管理PC、SW互联口,在HOST2上配置184.0.0.0/24网段到113.1.1.0/24网段的路由,下一跳地址184.0.0.1。
admin用户通过管理PC登录网闸的系统管理端,分别配置内、外端GE0/0的IP地址。
图2 配置内端GE0/0地址
图3 配置外端GE0/0地址
在网闸外端机配置从113.1.1.0/24网段到184.0.0.0/24网段的路由。
图4 配置外端机路由
以配置oracle 11g为例,在内、外端数据库服务器进行相同配置。
在HOST1和HOST2上安装oracle 11g,linux或windows版本均可。
在内、外端使用sysdba用户登录oracle数据库,新建同步用户,例如test,并且赋予以下权限:
CREATE USER test IDENTIFIED BY test;
GRANT CONNECT,RESOURCE,DBA TO test;
SET AUTOCOMMIT ON;
图5 新建同步用户
在内、外端使用新建的test用户登录,创建数据库表。步骤如下:
CREATE TABLE test
(
id int,
name varchar(32)
);
图6 创建同步表
登录secrecy用户,依次点击:数据库同步>数据库同步策略管理,添加数据库同步策略
表1 数据库同步参数说明
参数 |
说明 |
策略名称 |
用于识别数据库策略的名称 |
策略类型 |
目前支持数据库同步正则过滤 |
策略内容 |
没有字符限制;百度查找正则表达式,复制粘贴需要过滤的正则内容;列字段内容,可直接填写,用于过滤 |
(1) 添加内端同步数据库
依次点击:数据库同步>同步数据库配置>添加,添加数据库配置如下。
图7 添加内端同步数据库
表2 数据库同步参数说明
参数 |
说明 |
节点ID |
用于内、外端机系统判断是否为同一条任务的认证ID |
描述 |
填写该配置描述信息 |
数据库类型 |
选择配置数据库 可选择:Mysql,Oracle,Db2,Sqlserver,KingbaseES V8(Oracle模板),DM,Gbase,PostgreSQL |
数据库实例名 (sqlserver选填) |
sqlserver选填项,如不填写默认实例名 |
数据库地址 |
使用的数据库地址 |
数据库端口 |
使用的数据库端口,默认即可。如果数据库端口有修改,需要对应修改 |
数据库名称 |
使用的database,此例中使用的是orcl |
数据库用户名 |
使用的数据库用户(具有dba和远程连接权限) |
数据库密码 |
使用的用户密码 |
Jdbc参数 |
Mysql的jdbc参数可选择配置,默认即可 |
大字段病毒检测 |
用于对数据库大字段类型的病毒过滤 |
(2) 内端同步数据库配置完成后,测试连接。
点击测试连接,提示测试成功。
图8 测试连接
测试成功后,点击保存。
图9 查看同步数据库配置-内端机
(3) 添加外端同步数据库
登录secrecy用户,依次点击:数据库同步>同步数据库配置>添加,添加数据库配置如下。
图10 添加外端同步数据库
(4) 外端同步数据库配置完成后,测试连接。
点击测试连接,提示测试成功。
图11 测试连接
测试成功后,点击保存。
图12 查看同步数据库配置-外端机
(1) 内端关联数据库
依次点击:数据库同步>关联数据库,添加保存关联数据库。
图13 内端关联数据库配置-选择增量同步
查看内端关联的数据库
图14 内端关联的数据库
表3 关联数据库参数说明
参数 |
说明 |
关联名称 |
自定义的关联数据库的名称 |
同步方式 |
增量同步:同步更新数据 |
历史同步:同步旧数据和新数据;以同步方向目的表为准:两端表存在不一致的数据时,目的表数据不被覆盖;以同步方向源表为标准:两端表存在不一致的数据时,目的表数据被覆盖 |
|
同步开始时间 |
自定义数据同步开始的时间,增量同步下生效 |
同步结束时间 |
自定义数据同步结束的时间,增量同步下生效 |
本端节点ID |
用于和对端节点ID匹配 |
对端节点ID |
用于和本端节点ID匹配 |
(2) 外端关联数据库
依次点击:数据库同步>关联数据库,添加保存关联数据库。
图15 外端关联数据库配置-选择增量同步
查看外端关联的数据库
图16 外端关联的数据库
依次点击:数据库同步>同步表配置,右上角选择已关联的数据库,点击“+”,添加同步表。
图17 添加内端同步表
添加同步表配置:使用源schema和目的schema过滤,点击查询源表和查询目的表,查询成功后下拉选择需要同步的源表和目的表,同步配置勾选插入、修改、删除,保存配置。
图18 同步表配置
指定字段“name”为自定义列。
图19 自定义列同步配置
图20 自定义过滤策略配置
表4 同步表管理参数说明
参数 |
说明 |
内端表 |
自动查询内端表,并选择要同步的数据表 |
内端schema |
根据数据库类型选择对应的schema约束限定为指定的数据库;Oracle/DB2/Sqlserver/kingbase/PostgreSQL/DM配置同步时,需要使用正确的schema |
外端schema |
根据数据库类型选择对应的schema约束限定为指定的数据库;Oracle/DB2/Sqlserver/kingbase/postgreSQL/DM配置同步时,需要使用正确的schema |
外端表 |
数据库关联后,自行查询外端表,并选择要同步的数据表 |
自定义列同步 |
一个表有很多列,指定一些列进行同步。 |
自定义列同步-自定义过滤策略 |
对一个列使用策略判断,满足过滤条件的所在整行数据不进行同步,不满足条件的数据进行同步 |
自定义条件同步 |
对一个列使用条件过滤,满足条件正常同步,不满足所在整行数据不进行同步(无日志记录) |
同步条件 |
只有满足条件的数据操作才会同步 |
表冲突决策 |
主键检查决策:表示仅使用主键来检测冲突。如果存在具有相同主键的行,则在更新或删除期间不会检测到冲突。更新和删除行仅使用主键列进行解析。如果在插入期间已经存在行,则检测到冲突。 被改变的数据监测(已更改数据检测):表示将使用主键加上源系统上已更改的任何数据来检测冲突。如果目标系统上存在与源系统上已更改列的旧值相同的行,则在更新或删除期间不会检测到冲突。如果在插入期间已经存在行,则检测到冲突。(如数据中包含主键,则会将定义的主键和已更改数据同时作为检测判断依据)。 旧值(旧数据值检测):表示所有旧数据值都用于检测冲突。旧数据是更改之前源系统上的行的数据值。如果目标系统上存在与源系统上相同的旧值的行,则在更新或删除期间不会检测到冲突。如果在插入期间已经存在行,则检测到冲突。(如数据中包含主键,则会将定义的主键和旧数据值同时作为检测判断依据)。 时间截(时间戳列检测):指示主键加上时间戳列“date”将指示是否发生冲突。如果目标时间戳列不等于旧的源时间戳列,则检测到冲突。如果在插入期间已经存在行,则检测到冲突。 您必须要指定时间戳的列的名称,如“date”。(如数据中包含主键,则会将定义的主键和时间戳列同时作为检测判断依据,时间类型:date、datetime)。 版本(版本列检测):表示主键加上版本列“version”将指示是否发生冲突。如果目标版本列不等于旧的源版本列,则检测到冲突。如果在插入期间已经存在行,则检测到冲突。 您必须要指版本号的列的名称,如“version”。(如数据中包含主键,则会将定义的主键和版本列同时作为检测判断依据,版本类型:int、number)。 |
表冲突决策机制 |
手动解决:当检测到冲突时,批处理将保持错误,直到发生手动干预。插入想要插入的值,或者选择忽略。 软件自主判断:表示当检测到冲突时,系统应自动应用更改。如果源操作是插入,则将尝试更新。如果源操作是更新并且该行不存在,则将尝试插入。如果源操作是删除并且该行不存在,则删除将被忽略。 忽略:表示当检测到冲突时,系统应自动忽略传入的更改。 比较:表示当检测到冲突时,源或目标将根据哪一方具有较新的“时间戳”或较高的“版本号”而获胜。(冲突决策“比较”机制只有选择时间戳时才可选择) |
图21 同步表添加成功
自定义列同步,两个数据表选择的列长度和列类型需要保持一致;
自定义策略过滤仅在自定义列同步下生效;
同步表仅配置内端,方向为内到外同步;
同步表仅配置外端,方向为外到内同步;
同步表配置两端,方向为双向同步;
注意数据库同步配置请按照:同步数据库配置-关联数据库-同步表配置的步骤进行配置。
数据库同步配置删除需要从我们的Web界面上的同步表配置往上删除完后才能删除数据库里的表,否则会破坏数据库同步环境。
数据库同步一旦配置好后不能对数据库侧进行同步表字段、表名、表结构、表空间等变更,不能手动删除两端数据库侧网闸创建的SYM开头的表项。
添加同步表为引用表或包含外键时,遵循引用表先增,先改,先删;被引用表后增,后改,后删的原则进行添加修改删除。
测试之前确保H3C SecPath GAP2000内、外端侧的网络是互通的,数据库同步配置没有问题。
向内端HOST1中插入多条数据后,点击运行:
insert into TEST values(1,'abc','19');
insert into TEST values(2,'def','19');
insert into TEST values(3,'ghi','19');
insert into TEST values(4,'jkl','19');
图22 向内端数据库添加数据
等待约30s后,查看外端数据库数据是否同步。name列数据(和策略对应的字段不同步,即 abc字段)除abc以外的字段与内端数据库表name列一致,则说明同步成功。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!