mysql数据库同步系统otter部署实践(中国与欧洲同步)

news/2024/11/18 7:33:36/

otter的介绍就不说了, 自己去看官网https://github.com/alibaba/otter/wiki

本系统中, 中国的服务器部署在阿里云上, 欧洲服务器部署在亚马逊上, 由于阿里云的网络不支持外网回环访问(即在本机上向本机的外网地址发送数据), 所以需要将node与manager部署在不同的主机上。如果只是在虚拟机中调试, 很多服务都可以放在一台主机中。

1. 阿里云服务器

1. mysql服务, 外网ip 120.x.x.1,  内网ip 10.x.x.1

2. manager服务, 本系统与mysql安装在同一台服务器上

3. node服务, 外网ip 120.x.x.2,   内网ip 10.x.x.2

4. zookeeper服务, 外网ip 120.x.x.3,  内网ip 10.x.x.3

2. 亚马逊服务器

1. mysql服务, 外网ip 59.x.x.1, 内网ip 172.x.x.1

2. node服务,外网ip 59.x.x.2, 内网ip 172.x.x.2

3. zookeeper服务, 外网ip 59.x.x.2, 内网ip 172.x.x.3

3. 下载otter和zookeeper

已经编译好的压缩包

https://github.com/alibaba/otter/releases

下载manager系统表

https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql

下载ddl同步策略表

https://github.com/alibaba/otter/tree/master/node/deployer/src/main/resources/sql/otter-system-ddl-mysql.sql

下载zookeeper

http://www.apache.org/dyn/closer.cgi/zookeeper/

4. 配置阿里云mysql

修改两台服务器的mysql配置, /etc/mysql/my.cnf (5.7版本的mysql的配置文件应该是/etc/mysql/mysql.conf.d/mysqld.cnf)

注意: server-id需要和manager上配置的node的id一致

[mysqld]

character-set-server=utf8
collation-server=utf8_general_ci   #设置mysql的字符集

#bind-address = 127.0.0.1       这一行要注释掉

server-id                  = 1   
log_bin                    = /data/lib/mysql/mysql-bin.log
expire_logs_days      = 5
max_binlog_size       = 200M
binlog_do_db           = xxx
binlog_format          = ROW

重启mysql

5. 配置亚马逊上的mysql

只是server-id不一样

[mysqld]

character-set-server=utf8
collation-server=utf8_general_ci   #设置mysql的字符集

#bind-address = 127.0.0.1       这一行要注释掉

server-id                  = 2  
log_bin                    = /data/lib/mysql/mysql-bin.log
expire_logs_days      = 5
max_binlog_size       = 200M
binlog_do_db           = xxx
binlog_format          = ROW

重启mysql

6. 导入系统表和otter用户

注意修改密码

mysql>source otter-manager-schema.sql
mysql>source otter-system-ddl-mysql.sql
mysql>CREATE USER canal IDENTIFIED BY 'canal; 
mysql>GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%';
mysql>FLUSH PRIVILEGES;

 

7. 安装aria2和zookeeper

 

在需要运行node服务器上安装aria2, 它是一个下载工具, otter使用它下载了什么文件, 我也不知道

apt-get install aria2

在分别在阿里云和亚马逊的两台服务器上安装zookeeper和运行zookeeper, 这个过程很简单

cd zookeeper-3.4.9/conf/
cp zoo_sample.cfg zoo.cfg
cd ../bin/
./zkServer.sh start

8. 配置manager

cd manager/conf/
vim otter.properties

## otter manager domain name
otter.domainName = 120.x.x.1   #修改为当前服务器的公网地址 
## otter manager http port
otter.port = 8080
## jetty web config xml
otter.jetty = jetty.xml

## otter manager database config
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://127.0.0.1:3306/otter  #由于mysql和manager在同一个服务器
otter.database.driver.username = canal
otter.database.driver.password = canal    #需要修改为实际的密码

## otter communication port
otter.communication.manager.port = 1099

## otter communication pool size
otter.communication.pool.size = 10

## default zookeeper address
otter.zookeeper.cluster.default = 120.x.x.3:2181 #修改为阿里云上安装的zookeeper
## default zookeeper sesstion timeout = 60s

...

9. 启动manager

cd manager/bin
./startup.sh

在浏览器中打开manager主页

http://120.x.x.1:8080/

右击右上角的登录按钮, 用户名为admin, 密码也为admin (点击系统管理->权限管理, 然后修改密码)

9.1添加zookeeper管理

点击机器管理->zookeeper管理,

 

 

9.2 添加Node管理

点击 机器管理->Node管理

注意: 添加顺序不能改变, manager会为node分配一个id, mysql的server-id要与node id一致

机器名称 : aliyun_node

机器ip:      10.x.x.2

机器端口 :   2088

外部ip:        120.x.x.2

启用外部IP:  是

zookeeper集群: aliyun_zookeeper

保存

再添加一次

机器名称 : aws_node

机器ip:      172.x.x.2

机器端口 :   2088

外部ip:        59.x.x.2

启用外部IP:  是

zookeeper集群: aliyun_zookeeper

保存

9.3 添加数据源

配置管理 -> 数据源配置

9.4 添加数据表

schema name: xxx

table name: test

数据源:   aliyun_mysql

保存

schema name: xxx

table name: test

数据源:   aws_mysql

保存

9.5 添加canal配置

canal名称: aliyun_canal

zookeeper集群: aliyun_zookeeper

数据库地址: 120.x.x.1:3306;

数据库账号:  canal

数据库密码:  canal

保存

canal名称: aws_canal

zookeeper集群: aws_zookeeper

数据库地址: 59.x.x.1:3306;

数据库账号:  canal

数据库密码:  canal

保存

9.6添加channel

同步管理 -> 添加

9.7添加pipeline

同步管理 -> aliyun<>aws -> 添加

pipeline名字: aliyun->aws

select机器:    aliyun_node

load机器:      aws_node

主站点:         是

canal名字:    aliyun_canal

高级设置:      勾

支持ddl同步:  是

保存

pipeline名字: aws->aliyun

select机器:    aws_node

load机器:      aliyun_node

主站点:         否

canal名字:    aliyun_canal

高级设置:      勾

支持ddl同步:  否

保存

10. 配置/启动node

1. 配置aliyun上的node

cd node/conf/

echo 1 > nid

vim otter.properties

...

## otter arbitrate & node connect manager config
otter.manager.address = 120.x.x.1:1099      #填manager的外网地址

1. 配置aws上的node

cd node/conf/

echo 2 > nid

vim otter.properties

...

## otter arbitrate & node connect manager config
otter.manager.address = 120.x.x.1:1099    #填manager的外网地址

然后执行startup.sh

注意: 这个脚本默认配置了很大的内容, 如果内存不够, 可以修改这个文件

11. 启动

打开 机器管理 -> Node管理, 显示两个node状态为运行

打开 同步管理, 点击启用


http://www.ppmy.cn/news/747138.html

相关文章

VMS和Windows NT的首席设计师大卫·卡特勒(David Cutler)

David Cutler VMS和Windows NT的首席设计师大卫卡特勒&#xff08;David Cutler&#xff09; 出生日期&#xff1a; 329次关注 VMS和Windows NT的首席设计师&#xff0c;曾经是惠普公司的Unix操作系统的开发者&#xff0c;被誉为美国最伟大的操作系统专家。 大卫卡特勒&#xf…

数据库设计 - 01外卖配送系统

tb_delivery(配送地址表) 字段 类型 属性 空 默认 备注 id bigint(20) unsigned primary key AUTO_INCREMENT 否 唯一标识 address varchar(255) 否 配送地址 linkman varchar(60) 否 联系人 phone varchar(11) 否 手机号码 sex tinyint(1) unsigned 否 0…

分享:CUDB for OceanBase分布式数据库产品规模应用

欢迎访问 OceanBase 官网获取更多信息&#xff1a;https://www.oceanbase.com/ 本文来自社区分享&#xff0c;仅限交流探讨。原文作者&#xff1a;中国联通软件研究院济南分院 唐素珍、邱永刚。 原文转载自公众号&#xff1a;联通软件研究院&#xff08;Chinaunicom-Software&a…

微软POWERBI连接SAP HANA数据库

使用PowerBI连接 SAP HANA数据库&#xff0c;然后需要下载安装组件&#xff0c;网上找了很多都没有找到&#xff0c;还是找官方文件看了一下 还是下载了这个文件 链接: 点这里 提取码: K666 &#xff0c;解压到自己电脑&#xff0c;双击下面框的安装&#xff0c; 然后再重复上…

Microsoft SQL Server 双机热备份,实时同步

1.两台服务器&#xff0c;主服务器&#xff0c;从服务器&#xff0c;两台服务器都安装SQL Server 2008R2并且安装相同表结构的数据库&#xff08;需要实时同步的数据库&#xff09; 2.主服务器数据库安装完毕&#xff0c;打开SQL Server 配置管理器&#xff0c;把SQL Server 代…

微软官方提供-Northwind(电子商务)-数据库设计

-- -- 电子商务模板 -- USE master GO -- Drop the database if it already exists IF EXISTS ( SELECT name FROM sys.databases WHERE name NEShop ) DROP DATABASE EShop GO CREATE DATABASE EShop GO use EShop go -- -- 1,供应商 -- create table Sup…

SqlServer微软数据库简单介绍

1.SqlServer基本介绍 sql SQL是英文Structured Query Language的缩写&#xff0c;意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系&#xff0c;进行沟通。 按照ANSI(美国国家标准协会)的规定&#xff0c;SQL被作为关系型数据库管理系统的标准语言。SQL Serv…

Windows用什么终端代替item2?

1. 用什么shell powershell&#xff1a;它可以使用一些常见的Linux命令&#xff0c;重新学习的成本低 如何使用powershell&#xff1f; Windows一般会自带powershell&#xff0c;直接在命令窗口搜索即可打开。 2. powershell没有vim怎么办 powershell安装vim&#xff1a;链…