基于阿里云RDS创建ECS自建从库
2016-10-19 17:40
537 查看
使用阿里云ECS自建RDS MySQL从库
友情提示:安装MySQL软件步骤本文暂不介绍,安装完MySQL无需着急初始化数据库和启动服务。只需确保安装的MySQL版本不低于阿里云RDS MySQL版本,同时提前新建运行MySQL服务的mysql系统用户。出于安全,部分内容已打马赛克。采用何种模式做主从由RDS MySQL版本决定。本文主要使用RDS MySQL 5.6版作为样例说明,使用新的GTID模式做主从。5.5版配置主从更加简单,前15步操作一样,没有16、17步操作,18步使用binlog文件和位置的传统模式做主从,修改对应SQL语句即可,这里就不多加说明了。1.阿里云使用了开源的Percona Xtrabackup工具对RDS MySQL做全量物理备份。使用阿里云ECS自建从库仍然需要使用该工具导入全量备份数据。为了解决安装时遇到的包依赖问题,推荐使用yum安装Percona Xtrabackup。
![](http://s2.51cto.com/wyfs02/M00/83/8A/wKioL1d1yBPy50Z7AALg-eYXCN8930.png)
3.点选
![](http://s5.51cto.com/wyfs02/M00/83/8B/wKiom1d1yCjQTe4dAAPy5R0g5nw097.png)
4.点击
![](http://s4.51cto.com/wyfs02/M01/83/8A/wKioL1d1yDyR09BvAAGtElfWzP4307.png)
5.登录ECS下载备份,备份地址URL含有特殊关键字符,直接使用wget工具下载报403错误,需要使用英文单引号括起来。若备份较大可以使用screen工具后台运行下载任务。
![](http://s4.51cto.com/wyfs02/M02/83/8B/wKiom1d1yFbj_63vAAMo-3_uHHs491.png)
13.按照提示填写相关内容,复制账号只需只读权限即可,填写完后,点击
![](http://s1.51cto.com/wyfs02/M01/83/8A/wKioL1d1yQqAzyuoAAMI4olIzLI034.png)
14.点击
![](http://s5.51cto.com/wyfs02/M02/83/8A/wKioL1d1yTCz92nyAAIjD9fJDHc658.png)
15.添加ECS从机的IP地址至
![](http://s3.51cto.com/wyfs02/M02/83/8B/wKiom1d1yUCCO9y0AADg7Ck67dI653.png)
16.登录MySQL终端,清理复制关系表数据。
FAQ:
1、ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
当遇到这个问题时可能是RDS的mysql库存在问题,可以把ECS服务器上的数据库的mysql库拷贝到data目录下,修改权限。这时启动(start slave)后会报出缺少ha_health_check表,这时只需把线上的mysql库下的这两张表copy过来即可。
如若还是不行把performance_schema同时也copy过来即可。
友情提示:安装MySQL软件步骤本文暂不介绍,安装完MySQL无需着急初始化数据库和启动服务。只需确保安装的MySQL版本不低于阿里云RDS MySQL版本,同时提前新建运行MySQL服务的mysql系统用户。出于安全,部分内容已打马赛克。采用何种模式做主从由RDS MySQL版本决定。本文主要使用RDS MySQL 5.6版作为样例说明,使用新的GTID模式做主从。5.5版配置主从更加简单,前15步操作一样,没有16、17步操作,18步使用binlog文件和位置的传统模式做主从,修改对应SQL语句即可,这里就不多加说明了。1.阿里云使用了开源的Percona Xtrabackup工具对RDS MySQL做全量物理备份。使用阿里云ECS自建从库仍然需要使用该工具导入全量备份数据。为了解决安装时遇到的包依赖问题,推荐使用yum安装Percona Xtrabackup。
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm yum -y install percona-xtrabackup2.登录阿里云管理控制台,点击左侧边栏的
云数据库RDS版,点击
管理。
![](http://s2.51cto.com/wyfs02/M00/83/8A/wKioL1d1yBPy50Z7AALg-eYXCN8930.png)
3.点选
备份恢复,而后点击
下载。
![](http://s5.51cto.com/wyfs02/M00/83/8B/wKiom1d1yCjQTe4dAAPy5R0g5nw097.png)
4.点击
复制内网地址。若打算作为从库的ECS主机和RDS不在同一个区域则点击
复制外网地址。
![](http://s4.51cto.com/wyfs02/M01/83/8A/wKioL1d1yDyR09BvAAGtElfWzP4307.png)
5.登录ECS下载备份,备份地址URL含有特殊关键字符,直接使用wget工具下载报403错误,需要使用英文单引号括起来。若备份较大可以使用screen工具后台运行下载任务。
wget -c '备份地址URL' -O full.tar.gz6.下载阿里备份专属解压脚本。
wget 'http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh?spm=5176.775973700.0.0.n9b8wj&file=rds_backup_extract.sh' -O rds_backup_extract.sh7.解压备份至指定目录。
bash rds_backup_extract.sh -f full.tar.gz -C 目录8.应用日志,目录为第7步指定目录,当运行结果最后一行显示
completed OK!,则表明操作成功。
innobackupex --apply-log 目录9.[b]将解压文件
backup-my.cnf所有内容添加至对应MySQL配置文件
my.cnf中,若配置冲突,使用
backup-my.cnf内容替换
my.cnf同名参数值。目录为第7步指定目录。[/b]
cat 目录/backup-my.cnf10.拷贝或移动完成应用日志操作的已解压备份至MySQL数据目录,需
my.cnf添加
datadir参数指定,
--copy-back参数为拷贝,
--move-back参数为移动。目录为第7步指定目录,若第7部指定的目录即为MySQL数据目录,则无需此步操作。
innobackupex --defaults-file=/etc/my.cnf --move-back 目录11.修改MySQL数据目录权限并启动MySQL。
chown -R mysql:mysql 数据目录 /etc/init.d/mysqld start12.登录阿里云管理控制台,点击
账号管理,而后点击页面中的
创建账号。
![](http://s4.51cto.com/wyfs02/M02/83/8B/wKiom1d1yFbj_63vAAMo-3_uHHs491.png)
13.按照提示填写相关内容,复制账号只需只读权限即可,填写完后,点击
确定按钮。
![](http://s1.51cto.com/wyfs02/M01/83/8A/wKioL1d1yQqAzyuoAAMI4olIzLI034.png)
14.点击
数据安全性,选择
修改。
![](http://s5.51cto.com/wyfs02/M02/83/8A/wKioL1d1yTCz92nyAAIjD9fJDHc658.png)
15.添加ECS从机的IP地址至
组内白名单,IP地址使用英文逗号分隔。
![](http://s3.51cto.com/wyfs02/M02/83/8B/wKiom1d1yUCCO9y0AADg7Ck67dI653.png)
16.登录MySQL终端,清理复制关系表数据。
TRUNCATE TABLE mysql.slave_relay_log_info; TRUNCATE TABLE mysql.slave_master_info;17.从库配置文件
my.cnf添加以下内容或者替换已有参数后重启。
/etc/init.d/mysqld restart重启服务开启GTID模式。
master-info-repository=file relay-log-info_repository=file binlog-format=ROW gtid-mode=on enforce-gtid-consistency=true18.读取第7步指定目录下的
xtrabackup_slave_info文件内容,文件1、2行依次对应以下4行SQL语句中的第2、3行,文件第1行无需修改,原样执行。文件第2行,添加内容修改为第3行SQL语句样式。登录MySQL终端依次执行SQL语句。
STOP SLAVE; SET GLOBAL gtid_purged='49dde677-5827-11e5-8c5c-288023a0e898:1-21409262, 59bc2959-5827-11e5-8c5c-288023a0e9ac:1-8910790'; CHANGE MASTER TO MASTER_HOST='RDS访问地址', MASTER_PORT=3306, MASTER_USER='复制账号', MASTER_PASSWORD='密码', MASTER_AUTO_POSITION=1; START SLAVE;19.MySQL终端查询主从复制状态。
SHOW SLAVE STAUTS \G若
Slave_IO_Running和
Slave_SQL_Running两行值都为
Yes则表明主从复制状态正常。
FAQ:
1、ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
当遇到这个问题时可能是RDS的mysql库存在问题,可以把ECS服务器上的数据库的mysql库拷贝到data目录下,修改权限。这时启动(start slave)后会报出缺少ha_health_check表,这时只需把线上的mysql库下的这两张表copy过来即可。
如若还是不行把performance_schema同时也copy过来即可。
相关文章推荐
- 阿里云基于ecs云主机创建日志服务
- 基于阿里云ECS的phpwind网站备案前如何远程访问调试?
- 2015年阿里云9折优惠码,适用范围:主机(ECS)、云存储(OSS)、云数据库RDS等等
- 阿里云产品 ECS、RDS、CDN、OCS、OSS、ACE、SLB介绍
- 品尝阿里云容器服务:用nginx镜像创建容器,体验基于域名的路由机制
- 使用阿里云的ECS实例创建LAMP环境下的wordpress个人博客网站
- 【阿里云】 RDS 数据库与 ECS 服务器协同工作 初体验
- 将GitLab数据库从阿里云PostgreSQL RDS迁移至自建的PostgreSQL服务器
- 阿里云(ECS+RDS)部署PHP+MySQL网站初探
- centos7.2 lamp环境安装搭建(基于阿里云ECS服务器)
- 阿里云ECS、datahub、RDS、ADS、OTS、MaxCompute及BI报表展示串联
- 阿里云ECS和RDS部分操作
- 使用阿里云ECS自建RDS MySQL从库
- 使用阿里云ECS自建RDS MySQL从库
- 阿里云ECS创建vsftpd后,用户无法正常登录
- 阿里云服务器ECS创建成功
- 基于阿里云服务器ECS的建站过程
- 阿里云 云服务器 ECS 实例创建
- 阿里云(ECS+RDS)部署PHP+MySQL网站初探
- 关于阿里云ECS与数据库SQL SERVER RDS