0

0

SymmetricDS安装记录

php中文网

php中文网

发布时间:2016-06-07 16:11:08

|

1644人浏览过

|

来源于php中文网

原创

本安装记录基于symmetricds quick start guide中的样例,安装在两个机器上。 安装环境 Machine1:hadoop3.highgo.com Machine2:hadoop4.highgo.com 安装SymmetricDS 1. 下载SymmetricDS服务器程序,当前是Symmetric-3.6.14,下载Symmetric-3.6.14-server.zi

本安装记录基于symmetricds quick start guide中的样例,安装在两个机器上。

安装环境

Machine1:hadoop3.highgo.com

Machine2:hadoop4.highgo.com

安装SymmetricDS

1. 下载SymmetricDS服务器程序,当前是Symmetric-3.6.14,下载Symmetric-3.6.14-server.zip文件。解压到两台机器的/opt/目录下,更改SymmetricDS根目录拥有者为highgo。

2. Hadoop4.highgo.com作为root端,负责corp数据库,hadoop3.highgo.com作为store端,负责store001数据库。在hadoop4端,将SymmetricDS安装副本根目录下的samples目录下的corp-000.properties文件复制到engines目录下,在hadoop3端,将SymmetricDS安装副本根目录下的samples目录下的store-001.properties文件复制到engines目录下。修改两个配置文件的数据库信息,我的配置如下:

db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://hadoop3/4.highgo.com/store001
db.user=highgo
db.password=highgo

3. Store端的配置文件需要配置registration.url

registration.url=http://hadoop4.highgo.com:8080/sync/corp-000

SymmetricDS层面上的主从关系,也就是这么来的,真正运行起来,SymmetricDS就跟它的名字一样Symmetric,各个节点是对等的。

安装数据库、创建业务表、导入初始数据、创建系统表

1. 分别在两台机器上安装了一个PostgreSQL数据库实例,分别创建数据库用户highgo,密码为highgo。在hadoop3.highgo.com 上创建store001数据库,owner为highgo,在hadoop4.highgo.com上创建corp数据库,owner为highgo。

2. 在hadoop4端的SymmetricDS安装副本的samples目录下执行下面的命令:

../bin/dbimport --engine corp-000 --format XMLcreate_sample.xml

这是文档上的做法,不过执行上边的命令后,报错,找不到create_sample.xml这个文件。于是打开这个文件发现就是几张表的定义,是以xml这种通用的格式定义的。一共四张表item,item_selling_price,sale_transaction,sale_return_line_item。索性根据xml文件中的描述,直接写SQL语句,写成的SQL语句如下:

createtable item(
item_id INTEGER PRIMARY KEY,
name VARCHAR(100)
)
 
createtable item_selling_price(
item_id INTEGER REFERENCES item(item_id),
store_idVARCHAR(5),
priceDECIMAL(10,2),
costDECIMAL(10,2),
PRIMARYKEY(item_id,store_id)
)
 
createtable sale_transaction(
tran_id INTEGER PRIMARY KEY,
  store_id VARCHAR(5) NOT NULL,
workstation VARCHAR(3) NOT NULL,
day VARCHAR(10) NOT NULL,
seq INTEGER NOT NULL
)
 
createtable sale_return_line_item(
tran_id INTEGER PRIMARY KEY REFERENCES sale_transaction(tran_id),
item_id INTEGER NOT NULL REFERENCES item(item_id),
price DECIMAL(10,2) NOT NULL,
quantity INTEGER NOT NULL,
returned_quantity INTEGER
)

这四个表是我们这个分销业务的例子的业务表。

3. 还是在hadoop4端,执行下面的命令:

../bin/symadmin --engine corp-000create-sym-tables

这个命令是创建SymmetricDS的系统表,这个执行成功,没有报错什么的。

4. 还是在hadoop4端,执行下面的命令:

../bin/dbimport --engine corp-000insert_sample.sql

Insert_sample.sql文件主要分两部分,一个是往业务表里插入样例数据,另一部分是往SymmetricDS的系统表里插入本样例的系统数据。首先创建了两个节点,然后创建了两个channel,又创建了6个trigger,接着创建了3个Router,最后创建了6个Trigger-Router Links,这里所谓的创建,其实就是往系统表里插入创建的信息而已。

顺便说下,这条命令执行的时候,也是报错,找不到insert_sample.sql文件,我是打开这个文件,一部分一部分,在PostgreSQL的命令行执行的。估计执行整个文件也可以。

5. 在hadoop3端,进入到store001的SymmetricDS安装副本的根目录下的samples目录,执行下面的命令:

华友协同办公自动化OA系统
华友协同办公自动化OA系统

华友协同办公管理系统(华友OA),基于微软最新的.net 2.0平台和SQL Server数据库,集成强大的Ajax技术,采用多层分布式架构,实现统一办公平台,功能强大、价格便宜,是适用于企事业单位的通用型网络协同办公系统。 系统秉承协同办公的思想,集成即时通讯、日记管理、通知管理、邮件管理、新闻、考勤管理、短信管理、个人文件柜、日程安排、工作计划、工作日清、通讯录、公文流转、论坛、在线调查、

下载

../bin/dbimport --engine store-001 --format XMLcreate_sample.xml

这条命令跟第二条在hadoop4端执行的目的是一样的,都是创建本样例的业务表。当然了,执行也是报错的,找不到文件,将上边的SQL语句,在这在执行一遍就可以了。

启动SymmetricDS

1. 在hadoop4端,也就是root端,corp端,在SymmetricDS安装副本的根目录下的samples目录下执行下面的命令:

../bin/sym --engine corp-000 --port 8080

这个过程会根据之前的配置文件和在SymmetricDS系统表中插入的数据,创建必要的Trigger等等的组件。然后等待其他节点的注册。

2. 在hadoop3端,也就是client端,store端在SymmetricDS安装副本的根目录下的samples目录下执行下面的命令:

../bin/sym --engine store-001 --port 8080

这条命令,启动hadoop3上的SymmetricDS程序。并根据配置信息尝试连接root节点。当然,由于这时候,root端的注册还没开启,这时候,在root端可以收到hadoop3上的SymmetricDS的注册请求,但是认证会失败。

注册节点

在hadoop4上的SymmetricDS安装副本的根目录下的samples目录下执行下面的命令:

../bin/symadmin --engine corp-000open-registration store 001

为store 001 开启注册,这时候就能看到注册成功的信息了。为了方便,可以先把两台机器的防火墙先关闭。

发起初始负载

开始我们在hadoop4端的数据库的业务表上插入了几条数据,但是hadoop3上的数据库的业务表都是空的。既然要同步,那我们必须先把这一部分的数据同步,这一部分数据的同步就叫做同步初始负载。要发起这个初始负载同步,要执行下面的命令,还是在hadoop3的SymmetricDS安装副本的samples目录下执行:

../bin/symadmin --engine corp-000reload-node 001

推送数据

从上边的insert_sample.sql文件中往SymmetricDS系统表中插入的数据可以知道,item表和item_selling_price表的同步配置是从corp端(hadoop4)到store端(hadoop3),单向的,也就是说,我们从corp端插入一条数据,数据会被推送到store端,而我们从store端增加一条数据,则不会影响到corp端的数据。

下面我们在corp端的数据库中插入两条数据:

insert into "item" ("item_id","name") values (110000055, 'Soft Drink');
insert into"item_selling_price" ("item_id", "store_id","price") values (110000055, '001', 0.65); insert into "item_selling_price"("item_id", "store_id", "price") values(110000055, '002', 1.00);

在hadoop4端执行完这两条插入语句后,在hadoop3端的数据查看一下,数据应该已经同步了。

拉取数据

从上边的insert_sample.sql文件中往SymmetricDS系统表中插入的数据可以知道,sale_transaction表和sale_return_line_item表的同步配置是从store端(hadoop3)同步到corp端(hadoop4),单向的,也就是说,我们从store端(hadoop3)增加一条数据,数据会被推送到corp端(hadoop4),而从corp端(hadoop4)增加一条数据,则不会影响到store端(hadoop3)的数据。

下面我们在store端的数据库中插入两条数据:

insert into "sale_transaction" ("tran_id","store_id", "workstation", "day","seq") values (1000, '001', '3', '2007-11-01', 100);
insert into"sale_return_line_item" ("tran_id", "item_id","price", "quantity") values (1000, 110000055, 0.65, 1);

在hadoop3端执行完这两条插入语句后,在hadoop4端的数据库查看一下,数据应该已经同步了。

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 3.8万人学习

【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号