03-单向数据库同步配置举例
本章节下载 (2.10 MB)
目 录
3.4.3 H3C SecPath GAP3000数据库同步管理配置
3.5.5 H3C SecPath GAP3000数据库同步管理配置(主键检测下软件自主判断)
将用户外端侧数据单向同步到内端侧数据库中,实现外网到内网数据自动安全单向导入。
本文档不严格与具体软、硬件版本对应,如果使用过程中与产品实际情况有差异,请以设备实际情况为准。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文档假设您已了解H3C SecPath GAP3000特性和数据库同步模块功能。
PC、SecPath安全隔离与信息单向导入系统、mysql服务。
如图1所示,HOST1和HOST2为数据库服务器。现有以下组网需求:
将用户外端侧数据单向同步到内端侧数据库中,实现外网到内网数据自动安全单向导入。
此次以mysql 8.0.29为例进行配置指导,新建用户及数据库表进行同步,实际部署中可使用已有用户及数据库表进行操作。
此单向数据库同步配置在H3C i-Ware Software, Version 3.1, ESS 6001版本实现。
Mysql:5.0,5.5,5.7,5.8,8.0;
Oracle:11g;
Oracle RAC:11g
Sqlserver:2008R2;
kingbase:v8r3;
gbase:8.8;
配置HOST1、HOST2、管理PC口。
admin用户通过内外网管理pc分别登录H3C SecPath GAP3000设备内外端机,分别配置内外端GE0-0口的IP地址。
图2 配置内端GE0-0地址
图3 配置外端GE0-0地址
本配置以mysql 8.0.29为例,在内外端数据库服务器进行相同配置。
在HOST1和HOST2上安装mysql 8.0.29,linux或windows版本均可。
在HOST1和HOST2上使用root用户登录。
图4 登录mysql服务
点击测试连接,连接成功后,点击确定。
图5 登录成功
点击“新建查询”,输入
create user 'test'@'%' identified by '123456';
grant all privileges on *.* to 'test'@'%';
create database `int`;
flush privileges;
*解释:
第一行为创建用户test密码为123456
第二行授予权限
第三行为创建数据库(注:外端将int改为ext)
第四行为刷新mysql服务配置
图6 输入完成
输入完成后,点击运行。
图7 执行成功
使用test用户登录mysql服务,点击测试连接,连接成功后,点击确定。
图8 登录成功
选择创建好的int库后,选择“表”,点击“新建表”,外端方法相同,外端库名为“ext”。
图9 创建表
创建“id”和“name”字段后,点击保存。
图10 输入字段
图11 创建成功
(1) 添加内端机同步数据库
登录内端机secrecy用户,依次点击:数据库同步管理>数据库配置>添加,添加数据库配置如下:
图12 内端同步数据库配置
表1 数据库同步参数说明
参数 |
说明 |
描述 |
填写该配置描述信息 |
数据库类型 |
选择配置数据库 可选择:oracle,sql server,Kingbase,Gbase,Mysql类型 |
数据库地址 |
使用数据库地址 |
数据库端口 |
使用数据库端口 |
数据库名称 |
使用database |
数据库用户名 |
使用数据库用户(具有dba和远程连接权限) |
数据库用户密码 |
使用用户密码 |
Jdbc参数 |
Mysql必填,其它类型jdbc参数可选择配置 |
(2) 内端同步数据库配置完成后,测试连接。
点击测试连接,数据库连接成功。
图13 连接成功
点击保存,保存成功。
图14 保存成功
(3) 添加外端机同步数据库
登录外端机secrecy用户,依次点击:数据库同步管理>数据库配置>添加,添加数据库配置如下。
图15 外端机同步数据库配置
(4) 外端数据库同步配置完成后,测试连接。
点击测试连接,数据库连接成功。
图16 连接成功
点击保存,保存成功。
图17 保存成功
登录外端机secrecy用户,依次点击:数据库同步管理>数据库关联>添加,添加关联数据库。勾选外端数据库,并填写内端数据库,点击保存。
图18 关联数据库
等待数据库关联成功。
图19 数据库关联成功
登录外端机secrecy用户,依次点击:数据库同步管理>同步表配置,右上角选择已关联的数据库,点击”+”,添加同步表。
图20 添加外端机同步表
添加同步表配置:点击查询源表和配置目的表,查询成功后下拉选择需要同步的源表,同步冲突检查机制和同步冲突解决机制默认选择主键检测和软件自主判断,选择同步配置勾选插入、修改、删除,保存配置。
图21 配置外端机同步表
图22 同步表添加成功
表2 数据库同步表配置参数说明
参数 |
说明 |
源表 |
选择使用要同步的表 |
目的表 |
选择使用要同步的表 |
同步冲突检查机制 |
选择要检测的机制:主键检测、已更改数据检测、旧数据值检测、时间戳列检测、版本列检测 |
同步冲突解决机制 |
选择要解决的机制:软件自主判断、忽略 |
大字段病毒检测 |
勾选后检测到大字段病毒不同步 |
同步配置 |
选择是否插入,修改,删除 |
冲突检测是确定插入、更新或删除是否由于目标数据行与插入/更新/删除之前的源数据不一致而处于“冲突”状态的行为。在没有任何覆盖配置的情况下,系统默认使用 “主键” 检测和 “软件自主判断” 解决。
冲突分为 2 个关键部分:
l 检测 - 如何在目标加载数据时检测冲突。
l 解决方案 - 当一行发生冲突时,在目标加载时如何处理它
l 主键检测:表示仅使用主键来检测冲突。如果存在具有相同主键的行,则在更新或删除期间不会检测到冲突。更新和删除行仅使用主键列进行解析。如果在插入期间已经存在行,则检测到冲突。
l 已更改数据检测:表示将使用主键加上源系统上已更改的任何数据来检测冲突。如果目标系统上存在与源系统上已更改列的旧值相同的行,则在更新或删除期间不会检测到冲突。如果在插入期间已经存在行,则检测到冲突。(如数库中包含主键,则会将定义的主键和已更改数据同时作为检测判断依据)。
l 旧数据值检测:表示所有旧数据值都用于检测冲突。旧数据是更改之前源系统上的行的数据值。如果目标系统上存在与源系统上相同的旧值的行,则在更新或删除期间不会检测到冲突。如果在插入期间已经存在行,则检测到冲突。(如数库中包含主键,则会将定义的主键和旧数据值同时作为检测判断依据)。
l 时间戳列检测:指示主键加上时间戳列“date”将指示是否发生冲突。如果目标时间戳列不等于旧的源时间戳列,则检测到冲突。如果在插入期间已经存在行,则检测到冲突。 您必须要指定时间戳的列的名称,如“date”。(如数库中包含主键,则会将定义的主键和时间戳列同时作为检测判断依据,时间类型:date、datetime)。
l 版本列检测:表示主键加上版本列“version”将指示是否发生冲突。如果目标版本列不等于旧的源版本列,则检测到冲突。如果在插入期间已经存在行,则检测到冲突。 您必须要指版本号的列的名称,如“version”。(如数库中包含主键,则会将定义的主键和版本列同时作为检测判断依据,版本类型:int、number)。
冲突解决
l 软件自主判断:表示当检测到冲突时,系统应自动应用更改。如果源操作是插入,则将尝试更新。如果源操作是更新并且该行不存在,则将尝试插入。如果源操作是删除并且该行不存在,则删除将被忽略。
比较最新的数据应用:表示当检测到冲突时,源或目标将根据哪一方具有较新的“时间戳”或较高的“版本号”而获胜。
l 忽略:表示当检测到冲突时,系统应自动忽略传入的更改。
本典配以同步冲突检查机制在主键检测的情况下,进行软件自主判断以及忽略的解决机制进行配置及验证。HOST2的test表的主键用id进行判断。
图23 配置HOST2主键
HOST1的test表的主键用id进行判断。
图24 配置HOST1主键
修改外端机同步数据库配置,登录外端机secrecy用户,依次点击:数据库同步管理>同步表配置>选择“ext→int(id:10)”,勾选同步表配置,再点击修改:
图25 修改同步表
同步冲突检查检查机制选择主键检测,同步冲突解决机制选择软件自主判断。
图26 配置同步表
点击修改,修改成功。
图27 修改成功
同步冲突检查机制在主键检测的情况下,进行软件自主判断的情况验证见“验证配置”章节的“主键检测软件自主判断”小节
修改外端机同步数据库配置,登录外端机secrecy用户,依次点击:数据库同步管理>同步表配置>选择“ext→int(id:10)”,勾选同步表配置,再点击修改:
图28 修改同步表
同步冲突检查检查机制选择主键检测,同步冲突解决机制选择软忽略。
图29 配置同步表
点击修改,修改成功。
图30 修改成功
同步冲突检查机制在主键检测的情况下,进行忽略的情况验证见“验证配置”章节的“主键检测软件忽略”小节
测试之前确保H3C SecPath GAP3000内外端侧的网络是互通的,数据库同步配置没有问题。
,向外端HOST2中插入多条数据后,点击运行:
insert into test values(1,'abc');
insert into test values(2,'def');
insert into test values(3,'ghi');
insert into test values(4,'jkl');
图31 向外端数据库添加数据
等待约30s后,查看内端数据库数据是否同步。与外端数据库表一致,则说明同步成功。
图32 查看内端数据库表
确认HOST2和HOST1库中的test表内容一致下进行验证。
图33 HOST2下的test表
图34 HOST1下的test表
在HOST2下的test表中的“id5name999”这条数据中的“999”改成“ceshi”后,点击运行。
图35 更改数据
此时,由于HOST1下的test表已经存在了Id5这条数据,产生了冲突,由于配置中,我们对冲突解决机制选择了软件自主判断,则会根据目的端的主键为判断依据,将数据内容进行替换。
图36 同步成功
登录内外端机,分别进行日志查看。
图37 外端日志
图38 内端日志
确认HOST2和HOST1库中的test表内容一致下进行验证。
图39 HOST2下的test表
图40 HOST1下的test表
在HOST2下的test表中的“id5name999”这条数据中的“999”改成“ceshi”后,点击运行。
图41 更改数据
此时,由于HOST1下的test表已经存在了Id5这条数据,产生了冲突,由于配置中,我们对冲突解决机制选择了忽略,则自动忽略传入的更改。
图42 忽略成功
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!