MySQL【进阶篇】07:MySQL上云【从A机房迁移到云上(阿里云)】
MySQL上云【从A机房迁移到云上(阿里云)】
一、上云步骤介绍
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页面删除相关配置
更多推荐
所有评论(0)