jdbc mysql binlog 复制_从 MySQL 到 SequoiaDB 的 Binlog Replication 复制实战

巨杉数据库 SequoiaDB 是开源分布式数据库,由 SQL 层和存储引擎层构成,SQL 层是指 Sequoiasql-mysql,通俗理解为 SequoiaDB 的 MySQL 实例层,并且SequoiaDB 完全兼容 MySQL,用户线上使用的 MySQL 与 SequoiaDB 可以通过 Binlog Replication 建立同步复制,本文介绍如何在 MySQL 与 SequoiaDB 之间建立主从复制,如下图所示:

68eee4c922d9b21e1b33dd571cacf173.png

环境介绍软件软件名称主从端口OSubuntu 18.04主机端口

SequoiaDBSequoiaDB 3.2.3主库3306

MySQLMySQL 5.7.27从库3308

操作步骤

1. ubuntu18.04安装MySQL5.7

Ubuntu18下安装 MySQL 模拟用户在线使用的 MySQL,本文中可设定为主库。

sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb

sudo apt-get update安装 MySQL,可设置 root 对应的密码为:sequoiadbsudo apt-get install mysql-server修改配置文件#vi /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]

port=3308

log-bin=master-bin  #启动二进制日志;

server-id=1 #为当前节点设置一个全局唯一的ID号

#bind-address=127.0.0.1MySQL 登陆指令如下#mysql -u root -P3308 -psequoiadb

2. 安装巨杉数据库Ubuntu18下安装SequoiaDB单机集群环境,设定从库安装巨杉数据库 SequoiaDB 单机集群,参考官网快速入门。tar zxvf sequoiadb-3.2.3-linux_x86_64.tar.gz

cd sequoiadb-3.2.3安装 SequoiaDB 和 Sequoiasql-mysql./setup.sh切换到 sdbadmin 部署单机集群,三个数据组,每个数据组单副本,加一个MySQL实例cd /opt/sequoiadb

./tools/deploy/quickDeploy.sh修改 sequoiasql-mysql 配置文件内容,开启中继日志以设置全局ID号#vi /opt/sequoiasql/mysql/database/3306/auto.cnf

[myslqd]

server-id=3          #当前节点全局ID号

relay_log=relay-log

relay_log_index=relay-log.index重启 sequoiasql-mysql 实例service sequoiasql-mysql restart可以查看 sequoiasql-mysql 状态, running 为正在运行状态# service sequoiasql-mysql status

sequoiasql-mysql.service - SequoiaSQL-MySQL Server

Active: active (running) since Tue 2019-08-06 08:50:16 UTC; 1h 20min ago

.....执行如下指令登陆 SequoiaDB的 MySQL 实例#/opt/sequoiasql/mysql/bin/mysql -h 127.0.0.1 -P 3306 -u root

3. 从 MySQL 导出数据,导入到 SequoiaDB 数据库通过 mysqldump 导出数据库news的数据,导出文件为news.sql.# mysqldump -h 127.0.0.1 -psequoiadb -P 3308 -u root -B news > news.sqlSequoiaDB 导入数据mysql> source news.sql;

4. 配置 Binlog Replication 主从在主库上查看主库binlog日志文件位置mysql> show master status\G

*************************** 1. row ***************************

File: master-bin.000002

Position: 154

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)在主库上授权复制用户mysql> grant replication slave,replication client on *.* to 'repl'@'127.0.0.1' identified by 'sequoiadb';

mysql> flush privileges;配置主从,使用有复制权限的用户账号连接主库,启动复制线程reset slave;

change master to

master_host='127.0.0.1',

master_user='repl',

master_password='sequoiadb',

master_port=3308,

master_log_file='master-bin.000002',

master_log_pos=154;

start slave;查看从库状态mysql> show slave status\G

************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 127.0.0.1

Master_User: repl

Master_Port: 3308

Connect_Retry: 60

Master_Log_File: master-bin.000002

Read_Master_Log_Pos: 154

Relay_Log_File: relay-log.000002

Relay_Log_Pos: 321

Relay_Master_Log_File: master-bin.000002

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

.......

Replicate_Rewrite_DB:

Channel_Name:

Master_TLS_Version:

1 row in set (0.00 sec)

5. 验证主从同步状态在 MySQL 主库执行插入数据mysql> insert into `news`.`user_info`(id,unickname)values(122,'sequoaidb');

mysql> select * from `news`.`user_info` order by id desc limit 1;

+------+-----------+

| id   | unickname |

+------+-----------+

|  122 | sequoaidb |

+------+-----------+

1 row in set (0.00 sec)在 SequoiaDB 从库可以查看到mysql> select * from `news`.`user_info` order by id desc limit 1;

+------+-----------+

| id   | unickname |

+------+-----------+

|  122 | sequoaidb |

+------+-----------+

1 row in set (0.01 sec)主从同步复制设置成功

从传统 MySQL 到 Sequoiasql 之间可以通过Binlog Replication建立 binlog 同步复制。若后续从 MySQL 切换到 SequoiaDB,想要继续保留 SequoiaDB 与 MySQL 之间的主从同步,可以继续通过上述Binlog Replication进行复制保持数据同步。SequoiaDB 与 MySQL 兼容性佳,可参考实战。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值