本安装记录基于SymmetricDS Quick Start Guide中的样例,安装在两个机器上。
Machine1:hadoop3.highgo.com
Machine2:hadoop4.highgo.com
1. 下载SymmetricDS服务器程序,当前是Symmetric⑶.6.14,下载Symmetric⑶.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目录下。修改两个配置文件的数据库信息,我的配置以下:
3. Store真个配置文件需要配置registration.url
SymmetricDS层面上的主从关系,也就是这么来的,真正运行起来,SymmetricDS就跟它的名字1样Symmetric,各个节点是对等的。
1. 分别在两台机器上安装了1个PostgreSQL数据库实例,分别创建数据库用户highgo,密码为highgo。在hadoop3.highgo.com 上创建store001数据库,owner为highgo,在hadoop4.highgo.com上创建corp数据库,owner为highgo。
2. 在hadoop4真个SymmetricDS安装副本的samples目录下履行下面的命令:
这是文档上的做法,不过履行上边的命令后,报错,找不到create_sample.xml这个文件。因而打开这个文件发现就是几张表的定义,是以xml这类通用的格式定义的。1共4张表item,item_selling_price,sale_transaction,sale_return_line_item。索性根据xml文件中的描写,直接写SQL语句,写成的SQL语句以下:
这4个表是我们这个分销业务的例子的业务表。
3. 还是在hadoop4端,履行下面的命令:
这个命令是创建SymmetricDS的系统表,这个履行成功,没有报错甚么的。
4. 还是在hadoop4端,履行下面的命令:
Insert_sample.sql文件主要分两部份,1个是往业务表里插入样例数据,另外一部份是往SymmetricDS的系统表里插入本样例的系统数据。首先创建了两个节点,然后创建了两个channel,又创建了6个trigger,接着创建了3个Router,最后创建了6个Trigger-Router Links,这里所谓的创建,其实就是往系统表里插入创建的信息而已。
顺便说下,这条命令履行的时候,也是报错,找不到insert_sample.sql文件,我是打开这个文件,1部份1部份,在PostgreSQL的命令行履行的。估计履行全部文件也能够。
5. 在hadoop3端,进入到store001的SymmetricDS安装副本的根目录下的samples目录,履行下面的命令:
这条命令跟第2条在hadoop4端履行的目的是1样的,都是创建本样例的业务表。固然了,履行也是报错的,找不到文件,将上边的SQL语句,在这在履行1遍就能够了。
1. 在hadoop4端,也就是root端,corp端,在SymmetricDS安装副本的根目录下的samples目录下履行下面的命令:
这个进程会根据之前的配置文件和在SymmetricDS系统表中插入的数据,创建必要的Trigger等等的组件。然后等待其他节点的注册。
2. 在hadoop3端,也就是client端,store端在SymmetricDS安装副本的根目录下的samples目录下履行下面的命令:
这条命令,启动hadoop3上的SymmetricDS程序。并根据配置信息尝试连接root节点。固然,由于这时候候,root真个注册还没开启,这时候候,在root端可以收到hadoop3上的SymmetricDS的注册要求,但是认证会失败。
在hadoop4上的SymmetricDS安装副本的根目录下的samples目录下履行下面的命令:
为store 001 开启注册,这时候候就可以看到注册成功的信息了。为了方便,可以先把两台机器的防火墙先关闭。
开始我们在hadoop4真个数据库的业务表上插入了几条数据,但是hadoop3上的数据库的业务表都是空的。既然要同步,那我们必须先把这1部份的数据同步,这1部份数据的同步就叫做同步初始负载。要发起这个初始负载同步,要履行下面的命令,还是在hadoop3的SymmetricDS安装副本的samples目录下履行:
从上边的insert_sample.sql文件中往SymmetricDS系统表中插入的数据可以知道,item表和item_selling_price表的同步配置是从corp端(hadoop4)到store端(hadoop3),单向的,也就是说,我们从corp端插入1条数据,数据会被推送到store端,而我们从store端增加1条数据,则不会影响到corp真个数据。
下面我们在corp真个数据库中插入两条数据:
在hadoop4端履行完这两条插入语句后,在hadoop3真个数据查看1下,数据应当已同步了。
从上边的insert_sample.sql文件中往SymmetricDS系统表中插入的数据可以知道,sale_transaction表和sale_return_line_item表的同步配置是从store端(hadoop3)同步到corp端(hadoop4),单向的,也就是说,我们从store端(hadoop3)增加1条数据,数据会被推送到corp端(hadoop4),而从corp端(hadoop4)增加1条数据,则不会影响到store端(hadoop3)的数据。
下面我们在store真个数据库中插入两条数据:
在hadoop3端履行完这两条插入语句后,在hadoop4真个数据库查看1下,数据应当已同步了。