一、上云步骤介绍

1、MySQL上云准备

在这里插入图片描述

2、停机迁移准备

在这里插入图片描述

二、MySQL数据同步到公有云

使用otter程序将机房数据同步到云上。

1、环境准备

机房:
	192.168.184.161  主库
	192.168.184.162  从库

云上:
	rds实例

otter部署:
	192.168.184.163
	192.168.184.164
	192.168.184.165

2、申请云上RDS资源

参考如下文档:通过API申请或者释放阿里云上数据库资源

(1)购买一个RDS实例

这里我就选择一个最低规格的,按量付费的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
稍等一会,如下就创建号好了。
在这里插入图片描述

(2)开通外网地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
稍等一会,然后刷新
在这里插入图片描述

(3)参数设置

这里的参数要和机房的设置一样,例如:

character_set_server
在这里插入图片描述
查询下机房的参数

mysql -uroot -padmin
show variables like "character%";

在这里插入图片描述
我们将云上RDS设置为和机房一致:
在这里插入图片描述
sql_mode

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

在这里插入图片描述
在这里插入图片描述
机房查看,是一样的

 show variables like "sql_mode";

在这里插入图片描述

提交参数
然后提交参数
在这里插入图片描述

3、创建同步用户

otter_user

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、导入机房MySQL数据

将机房数据全备导入到云上,因为otter不能同步全量的数据。

(1)全备机房的数据

161节点执行全备

cd /data/backup/
mysqldump -uroot -padmin --set-gtid-purged=OFF --master-data=2 online > /data/backup/online.sql
ll

在这里插入图片描述

(2)云上创建数据库online

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)复制数据库地址

rm-gc79vi5pi564rpm046o.mysql.cn-chengdu.rds.aliyuncs.com

在这里插入图片描述

(4)导入数据

mysql -hrm-gc79vi5pi564rpm046o.mysql.cn-chengdu.rds.aliyuncs.com -uotter_user -pTwm@183465 online < /data/backup/online.sql

在这里插入图片描述

(5)查看数据

mysql -hrm-gc79vi5pi564rpm046o.mysql.cn-chengdu.rds.aliyuncs.com -uotter_user -pTwm@183465

在这里插入图片描述

show databases;

在这里插入图片描述

use online;
show tables;

在这里插入图片描述
页面上也能进行查看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、机房数据库创建数据

这里创建增量数据,验证部署完otter之后是否同步增量数据

mysql -uroot -padmin
use online;
-- 创建表结构 
CREATE TABLE employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    age INT CHECK(age >= 18)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
-- 插入10条数据 
INSERT INTO employees (name, age) VALUES 
('张三', 28),
('李四', 35),
('王五', 22),
('赵六', 41),
('陈七', 29),
('刘八', 33),
('郑九', 25),
('周十', 40),
('吴十一', 37),
('孙十二', 26);

在这里插入图片描述

select * from employees;

在这里插入图片描述

6、准备用来存放Otter元数据的数据库

(1)环境信息

192.168.184.163  mysql主   zk    otter manager
192.168.184.164  mysql从   zk
192.168.184.165            zk

(2)创建otter_rw用户

163节点执行

mysql -uroot -padmin

在这里插入图片描述

create user 'otter_rw'@'%' identified with mysql_native_password by 'admin';GRANT all ON otter.* TO 'otter_rw'@'%';

在这里插入图片描述

(3)下载otter元数据并导入实例

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

在这里插入图片描述
去掉NO_AUTO_CREATE_USER

cd /usr/src
vim otter-manager-schema.sql 

在这里插入图片描述
在这里插入图片描述

导入实例

mysql -uroot -padmin otter < /usr/src/otter-manager-schema.sql

在这里插入图片描述

7、安装java环境

163、164、165安装java环境,因为部署zookeeper需要java环境

yum -y install java
java -version

在这里插入图片描述

8、安装zookeeper

163、164、165安装zookeeper

(1)创建zookeeper目录

mkdir -p /data/zookeeper
cd /data/zookeeper

在这里插入图片描述

(2)下载zookeeper*

cd /data/zookeeper
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.3/apache-zookeeper-3.9.3-bin.tar.gz

在这里插入图片描述

网盘地址:

链接: https://pan.baidu.com/s/1FN1ZQVb1ykWLG-2U-bxhdA?pwd=v2uw
提取码: v2uw 

(3)解压安装包

tar zxvf apache-zookeeper-3.9.3-bin.tar.gz
cd apache-zookeeper-3.9.3-bin

在这里插入图片描述

(4)修改配置文件

cd conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

添加如下内容:

server.1=192.168.184.163:2888:3888
server.2=192.168.184.164:2888:3888
server.3=192.168.184.165:2888:3888

在这里插入图片描述

(5)配置myid

163节点执行

mkdir /tmp/zookeeper/
echo 1 >/tmp/zookeeper/myid

在这里插入图片描述

164节点执行

mkdir /tmp/zookeeper/
echo 2 >/tmp/zookeeper/myid

在这里插入图片描述

165节点执行

mkdir /tmp/zookeeper/
echo 3 >/tmp/zookeeper/myid

在这里插入图片描述

(6)启动zookeeper

/data/zookeeper/apache-zookeeper-3.9.3-bin/bin/zkServer.sh start

在这里插入图片描述

(7)查看进程

ps -ef | grep zookeeper

在这里插入图片描述

9、Otter Manager部署

在163节点部署Otter Manager

(1)环境信息

192.168.184.163  mysql主   zk    otter manager
192.168.184.164  mysql从   zk
192.168.184.165            zk

(2)创建otter目录并下载安装包

mkdir -p /data/otter
cd /data/otter
wget https://github.com/alibaba/otter/releases/download/otter-4.2.18/manager.deployer-4.2.18.tar.gz

网盘地址;

链接: https://pan.baidu.com/s/1VmtwpI4C_ZboJ5bRxYNE3A?pwd=upjh
提取码: upjh 

(3)解压安装包

cd /data/otter
mkdir manager
tar zxvf manager.deployer-4.2.18.tar.gz -C manager

在这里插入图片描述

(4)修改配置文件

vim /data/otter/manager/conf/otter.properties

修改如下内容:

## otter manager domain name
otter.domainName = 192.168.184.163
## otter manager http port
otter.port = 9090

otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://192.168.184.163:3306/otter
otter.database.driver.username = otter_rw
otter.database.driver.password = admin


## default zookeeper address
otter.zookeeper.cluster.default = 192.168.184.163:2181,192.168.184.164:2181,192.168.184.165:2181

在这里插入图片描述

(5)启动otter

cd /data/otter/manager/
./bin/startup.sh

(6)查看进程

ps -ef | grep otter

在这里插入图片描述

(7)访问页面

http://192.168.184.163:9090/

用户名:admin
密码:admin

在这里插入图片描述
在这里插入图片描述

10、安装配置node

(1)管理页面增加zookeeper

在这里插入图片描述
在这里插入图片描述

zk-cluster
192.168.184.163:2181,192.168.184.164:2181,192.168.184.165:2181;

在这里插入图片描述
在这里插入图片描述

(2)管理页面增加node

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
记住这个序号1的编号,后面会用到
在这里插入图片描述

(3)下载node

163节点进行安装配置

cd /data/otter
wget https://github.com/alibaba/otter/releases/download/otter-4.2.18/node.deployer-4.2.18.tar.gz

网盘地址:

链接: https://pan.baidu.com/s/1h88JJhROWxafP7tX4YR2Hw?pwd=svqa
提取码: svqa 

(4)解压安装包

cd /data/otter
mkdir node
tar zxvf node.deployer-4.2.18.tar.gz -C node

在这里插入图片描述

(5)配置nid

这里的1就是页面上的序号1

cd /data/otter/node
echo 1 > conf/nid

在这里插入图片描述

(6)修改配置文件

vim conf/otter.properties

修改manager的地址,因为这里的地址就是本机,就不需要修改了

## otter arbitrate & node connect manager config
otter.manager.address = 127.0.0.1:1099

在这里插入图片描述

(7)启动node

cd /data/otter/node
./bin/startup.sh

在这里插入图片描述

(8)查看日志

如下说明正常启动了

tail -f logs/node/node.log

在这里插入图片描述

(9)刷新页面

页面显示已启动
在这里插入图片描述

11、配置数据同步

(1)在机房的MySQL中创建用户

161节点执行

create user 'otter_user'@'%' identified with mysql_native_password by 'admin';
GRANT all ON *.* TO 'otter_user'@'%';

在这里插入图片描述

(2)数据源配置

源数据配置
在这里插入图片描述
在这里插入图片描述

sourcce-mysql-184-161
otter_user
jdbc:mysql://192.168.184.161:3306

在这里插入图片描述

目标数据配置
在这里插入图片描述
注意,这里的密码是云数据库上otter_user的密码!!

destination-rds
otter_user
jdbc:mysql://rm-gc79vi5pi564rpm046o.mysql.cn-chengdu.rds.aliyuncs.com:3306

在这里插入图片描述
在这里插入图片描述

(3)数据表配置

添加源数据的数据表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击查找数据源,选择源数据源
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

添加目标端的数据表
在这里插入图片描述
点击查找数据源,选择目标端数据源
在这里插入图片描述
在这里插入图片描述

12、配置canal

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里的数据来自备份的sql中的信息:

{"journalName":"mysql-bin.000006","position":1820,"timestamp":0};

在这里插入图片描述

13、添加Channel

在这里插入图片描述
在这里插入图片描述

14、添加pipline

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15、添加映射关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16、启用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看日志、同步进度
在这里插入图片描述
在这里插入图片描述

17、查看增量数据是否同步

(1)登录云上rds

mysql -hrm-gc79vi5pi564rpm046o.mysql.cn-chengdu.rds.aliyuncs.com -uotter_user -pTwm@183465
show databases;
use online;
show tables;
select * from employees;

我们发现之前创建的数据同步过来了。
在这里插入图片描述

(2)再创建一些增量的数据

161节点创建数据

use online;
CREATE TABLE users_20250526 ( 
    id INT AUTO_INCREMENT PRIMARY KEY, 
    name VARCHAR(50) NOT NULL, 
    age INT 
); 
INSERT INTO users_20250526 (name, age) VALUES 
('Alice', 25), 
('Bob', 30), 
('Charlie', 35), 
('David', 22), 
('Eve', 28), 
('Frank', 40), 
('Grace', 26), 
('Heidi', 32), 
('Ivan', 24), 
('Judy', 29); 

在这里插入图片描述

(3)云数据库查看

mysql -hrm-gc79vi5pi564rpm046o.mysql.cn-chengdu.rds.aliyuncs.com -uotter_user -pTwm@183465
show databases;
use online;
show tables;
select * from users_20250526;

在这里插入图片描述

(4)查看otter页面上同步信息

在这里插入图片描述

18、上线前准备

(1)增加云上数据库监控和备份

可参考:
云上监控告警
云上数据库备份和恢复

(2)确定云上应用机器是否能正常连接MySQL

获取外网地址,进行连接测试
在这里插入图片描述

三、迁移过程

1、查看A机房MySQL数据库是否有连接

161主库执行

show processlist;

在这里插入图片描述

2、确定是否有同步延迟

机房写入数据,然后云上进行查看

3、停止同步

Otter Manager页面删除相关配置
在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐