阿里云服务器部署otter实现数据双A同步过程记录(1)

时间:2022-09-25 08:26:45

基本软件配置

环境介绍:

  • 亚洲阿里云服务器A 1台
  • 中东阿里云服务器B 1台
  • 操作系统 Ubuntu 16.04 64位
  • Mysql 5.7.20
  • Java-openjdk 1.8.0
  • Otter-manager 4.2.14
  • Otter-node 4.2.14
  • Zookeeper 3.4.6
  • Aria2 aria2 version 1.19.0

说明:

该记录描述了两台服务器A、B的数据库实现双A同步的搭建过程。鉴于网上资料大多重复而且有限,我们本次搭建过程中遇到的问题进行了记录,便于分享。

为了避免出现兼容问题,我们两台机器的系统版本、使用的软件版本均保持一致。
文章结尾列举了配置过程中遇到的各类坑。


基本软件配置

为搭建顺利,可以用root身份登录服务器。如果使用普通用户登录,遇到权限不够时,可以在命令前加sudo来提升权限。

首先更新服务器ubuntu的软件源

apt-get update

Otter可适用于Mysql间的数据同步,安装Mysql(如果已安装请忽略安装过程户)

apt-get install mysql-server

确认mysql安装状态,如出现版本号就是安装成功

mysql --version

修改my.cnf配置文件

#统一字符编码
character_set_server = utf8
#如果MySQL版本5.7及以上,需要定义sql_mode
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#开启数据库的bin-log
log-bin=mysql-bin
#Otter只能支持ROW格式的数据同步
binlog_format=ROW
#设定本数据库的server_id,注意集群内所有的MySQL的server_id均不能相同。
server-id = 1
#设定本数组库的自增量步长和偏移量
auto_increment_increment=10
auto_increment_offset=1
#解除MySQL访问IP绑定,也可根据实际,指定允许某些ip访问
bind-address = 0.0.0.0

启动数据库,在所有库上增加访问用户并配置权限

CREATE USER canal IDENTIFIED BY '你的密码'; 
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

然后通过

show grants for 'canal';

查看canal的权限是否正常。

下载Otter-manager所使用的数据库

wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql
#然后在mysql中通过
source /下载的位置/otter-manager-schema.sql
#导入该表

下载双A同步所使用的数据库

wget https://raw.github.com/alibaba/otter/master/node/deployer/src/main/resources/sql/otter-system-ddl-mysql.sql
#然后在mysql中通过
source /下载的位置/otter-system-ddl-mysql.sql
#导入该表

Otter的运行依赖于java环境,因此应在安装前部署java环境。

sudo apt-get install openjdk-8-jdk

确认java安装状态,如出现版本号就是安装成功

java -version

Otter-node 的数据传输依靠aira2来提高传输效率,因此需要安装aria2

apt install aria2

确认aria2安装状态,如出现版本号就是安装成功

aria2c -v

以上基本支持安装好了,接下来是关于zookeeper的安装和配置。