从 MySQL 到 SequoiaDB 的 Binlog Replication
环境介绍
操作步骤
1.Ubuntu18.04 安装 MySQL 5.7
Ubuntu18 下安装 MySQL 模拟用户在线使用的 MySQL,本文中可设定为主库。
下载 MySQL 的 APT 存储库:https://dev.mysql.com/downloads/repo/apt/
sudo dpkg -i mysql-apt-config_0.8.13-1_all.debsudo apt-get update
安装 MySQL,可设置 root 对应的密码为:sequoiadb
sudo apt-get install mysql-server
修改配置文件
#vi etc/mysql/mysql.conf.d/mysqld.cnf[mysqld]port=3308log-bin=master-bin #启动二进制日志;server-id=1 #为当前节点设置一个全局的ID号#bind-address=127.0.0.1 #注释掉
MySQL 登陆指令如下
#mysql -u root -P3308 -psequoiadb
2.安装巨杉数据库 Ubuntu18下安装 SequoiaDB单机集群环境,设定从库
安装巨杉数据库 SequoiaDB 单机集群,请参考官网快速入门(http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1519612914-edition_id-0)。
tar zxvf sequoiadb-3.2.3-linux_x86_64.tar.gzcd 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-logrelay_log_index=relay-log.index
重启 sequoiasql-mysql 实例
service sequoiasql-mysql restart
可以查看 sequoiasql-mysql 状态, running 为正在运行状态
# service sequoiasql-mysql statussequoiasql-mysql.service - SequoiaSQL-MySQL ServerActive: 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 导出数据,导入到 SeuqoiaDB 数据库
通过 mysqldump 导出数据库 news 的数据,导出文件为 news.sql.
# mysqldump -h 127.0.0.1 -psequoiadb -P 3308 -u root -B news > news.sql
SequoiaDB 导入数据
mysql> source news.sql;
4.配置 Binlog Replication 主从
在主库上查看主库 binlog 日志文件位置
mysql> show master status\G*************************** 1. row ***************************File: master-bin.000002Position: 154Binlog_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 tomaster_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 eventMaster_Host: 127.0.0.1Master_User: replMaster_Port: 3308Connect_Retry: 60Master_Log_File: master-bin.000002Read_Master_Log_Pos: 154Relay_Log_File: relay-log.000002Relay_Log_Pos: 321Relay_Master_Log_File: master-bin.000002Slave_IO_Running: YesSlave_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 (.00 sec)
在 SequoiaDB 从库可以查看到
mysql> select * from `news`.`user_info` order by id desc limit 1;+------+-----------+| id | unickname |+------+-----------+| 122 | sequoaidb |+------+-----------+1 row in set (.01 sec)
从传统 MySQL 到 Sequoiasql 之间可以通过Binlog Replication建立 binlog 同步复制。若后续从 MySQL 切换到 SequoiaDB,想要继续保留 SequoiaDB 与 MySQL 之间的主从同步,可以继续通过上述 Binlog Replication 进行复制保持数据同步。
相关文章