通过docker构建otter

本文是通过docker构建otter环境与mysql环境

 

一、使用docker构建otter

docker pull canal/otter-all

curl -fsSL https://raw.githubusercontent.com/alibaba/otter/master/docker/run.sh | bash

访问otter:http://192.168.102.212:8080

账号密码默认是admin/admin,管理员权限

 

二、使用docker构建mysql环境

构建mysql docker服务

Pull mysql镜像,使用5.6版本,由于是试验性质,不需要配置其他信息

docker pull mysql:5.6

启动mysql容器,此容器的服务为源表。为了不跟已有的服务端口冲突,对外暴露的是13306端口,默认密码是123456,并且在防火墙上打开13306、13307端口;

docker run -p 13306:3306 --name mysql-liukun -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

docker run -p 13307:3306 --name mysql-liukun2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

firewall-cmd --permanent --zone=public --add-port=13306/tcp

firewall-cmd --permanent --zone=public --add-port=13307/tcp

systemctl restart firewalld.service

要注意:otter拉取的主库,要打开binlog,并且主从复制模式是row模式

默认docker服务5.6版本mysql是没有开启binlog的,需要修改mysql的my.cnf配置,但是发现容器默认没有vi、vim、geidt等编辑工具,那么需要进行安装,但是发现安装过程特别慢,是因为默认apt-get源不在国内,所以要先修改源,再进行安装vim

1. 修改apt-get源

修改apt-get数据源为阿里云

cp /etc/apt/sources.list /etc/apt/sources.list.bak

echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" > /etc/apt/sources.list

apt update

有时候在执行apt update会报错W: GPG error: http://mirrors.aliyun.com/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3B4FE6ACC0B21F32

此时,执行apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32,注意最后的串号要相同

然后再执行apt update即可

2. 安装vim

apt-get install vim

安装完vim之后,进入编辑模式,默认是visual模式,就是在右键粘贴的时候,会变成选中,修改办法如下

问题:vi visual模式 无法右键粘贴

修复方案:

vi ~/.vimrc

if has('mouse')

        set mouse-=a

endif

3. 打开binlog,配置主从复制模式为row模式

修改mysql 打开binlog,设置主从同步模式为row模式

vi /etc/mysql/my.cnf

[mysqld]

log-bin=/var/lib/mysql/mysql-bin

binlog_format=ROW

将docker容器重启即可让配置生效

docker restart xxxx

4. 确认mysql是否开启了binlog,在mysql执行以下命令

SHOW VARIABLES LIKE 'log_%';

确认mysql复制模式是否是row模式,执行以下命令

SHOW VARIABLES LIKE 'binlog_format%';

 

 

 

三、构建mysql源库和目标库

按照“使用docker构建mysql环境”,我们已经创建好了源库和目标库,需要在两个实例的库中分别建好对应的表

create database if not exists test default character set = 'utf8';

USE test;

CREATE TABLE  `example` (

  `id` INT(11)  NOT NULL AUTO_INCREMENT,

  `name` VARCHAR(32) COLLATE utf8_bin DEFAULT NULL ,

   PRIMARY KEY (`ID`)

) ENGINE=INNODB DEFAULT CHARSET=utf8;

 

四、配置otter

添加数据库

a. 源库 jdbc:mysql://192.168.102.212:13306

b. 目标库 jdbc:mysql://192.168.102.212:13307

填写如下信息

Jdbc为jdbc:mysql://192.168.102.212:13306/test

同理添加13307的数据源,jdbc为jdbc:mysql://192.168.102.212:13307/test

最终结果如下

添加canal

a. 提供数据库ip信息

只需要填写红框的内容,其他不用动

结果如下

添加同步表信息

a. 源数据表 test.example

b. 目标数据表 test.example

填写如下内容

再新增一个13307的数据表

最终结果如下

添加channel

只需要填写红框内容

添加pipeline

a. 选择node节点

b. 选择canal

添加同步映射规则

a. 定义源表和目标表的同步关系

如果表相同,直接保存即可

启动

测试数据

在源表中插入一条数据

INSERT INTO `example` (`name`) VALUES ("kelvin");

查看目标表是否有数据同步过来

数据已经同步,配置成功!

更多otter配置参考教程:https://blog.csdn.net/liupeifeng3514/article/details/79687095

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值