使用阿里云ECS自建RDS MySQL从库

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

友情提示:安装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,建议安装最新版

wget https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm
rpm -ivh percona-release-0.1-4.noarch.rpm
yum -y install percona-xtrabackup-24


2.登录阿里云管理控制台,点击左侧边栏的云数据库RDS版,点击管理

wKioL1d1yBPy50Z7AALg-eYXCN8930.png


3.点选备份恢复,而后点击下载 
wKiom1d1yCjQTe4dAAPy5R0g5nw097.png


4.点击复制内网地址。若打算作为从库的ECS主机和RDS不在同一个区域则点击复制外网地址 
wKioL1d1yDyR09BvAAGtElfWzP4307.png


5.登录ECS下载备份,备份地址URL含有特殊关键字符,直接使用wget工具下载报403错误,需要使用英文单引号括起来。若备份较大可以使用screen工具后台运行下载任务。

wget -c '备份地址URL' -O full.tar.gz


6.下载阿里备份专属解压脚本。

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.sh


7.解压备份至指定目录。

bash rds_backup_extract.sh -f full.tar.gz -C 目录


8.应用日志,目录为第7步指定目录,当运行结果最后一行显示completed OK!,则表明操作成功。

innobackupex --apply-log 目录


9.将解压文件backup-my.cnf所有内容添加至对应MySQL配置文件my.cnf中,若配置冲突,使用backup-my.cnf内容替换my.cnf同名参数值。目录为第7步指定目录。

cat 目录/backup-my.cnf


10.拷贝或移动完成应用日志操作的已解压备份至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 start


12.登录阿里云管理控制台,点击账号管理,而后点击页面中的创建账号 
wKiom1d1yFbj_63vAAMo-3_uHHs491.png


13.按照提示填写相关内容,复制账号只需只读权限即可,填写完后,点击确定按钮。

wKioL1d1yQqAzyuoAAMI4olIzLI034.png


14.点击数据安全性,选择修改 

wKioL1d1yTCz92nyAAIjD9fJDHc658.png


15.添加ECS从机的IP地址至组内白名单,IP地址使用英文逗号分隔。 
wKiom1d1yUCCO9y0AADg7Ck67dI653.png


16.登录MySQL终端,清理复制关系表数据。

RESET MASTER;
RESET SLAVE;
TRUNCATE TABLE mysql.slave_relay_log_info;
TRUNCATE TABLE mysql.slave_master_info;
TRUNCATE TABLE mysql.slave_worker_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=true


18.读取第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 STATUS \G

Slave_IO_RunningSlave_SQL_Running两行值都为Yes则表明主从复制状态正常。





      本文转自dongsong1117 51CTO博客,原文链接http://blog.51cto.com/dongsong/1794789:,如需转载请自行联系原作者




相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
缓存 关系型数据库 MySQL
百度搜索:蓝易云【CentOS8服务器安装MySQL报错:no match mysql-community-server】
现在,你已经成功安装了MySQL服务器并解决了"no match mysql-community-server"的报错问题。祝你使用愉快!
33 1
|
2月前
|
弹性计算 关系型数据库 MySQL
快速上手阿里云RDS MySQL实例创建,轻松管理数据库
快速上手阿里云RDS MySQL实例创建,轻松管理数据库 在数字化时代,数据已成为企业的核心资产。如何高效、安全地存储和管理这些数据,成为企业在云计算时代亟待解决的问题。阿里云的RDS(关系型数据库服务)应运而生,为用户提供稳定、可靠的云上数据库解决方案。本文将详细介绍如何通过阿里云RDS管理控制台快速创建RDS MySQL实例,让您轻松上手,快速部署数据库。
161 2
|
2月前
|
存储 缓存 关系型数据库
【如何选择Mysql服务器的CPU核数及内存大小】
【如何选择Mysql服务器的CPU核数及内存大小】
|
3月前
|
关系型数据库 MySQL 数据库
电子好书发您分享《云数据库RDS MySQL从入门到高阶》
电子好书发您分享《云数据库RDS MySQL从入门到高阶》
64 1
|
3月前
|
SQL 弹性计算 关系型数据库
服务器数据恢复-华为ECS云服务器mysql数据库数据恢复案例
云服务器数据恢复环境: 华为ECS云服务器,linux操作系统,mysql数据库(innodb引擎)。作为网站服务器使用。 云服务器故障: 在执行mysql数据库版本更新测试时,误将本应该在测试库上执行的sql脚本执行在生产库上了,生产库上的部分表被truncate,部分表内有少量数据被delete。 需要恢复被truncate的表以及被少量数据被delete的表。
服务器数据恢复-华为ECS云服务器mysql数据库数据恢复案例
|
2月前
|
缓存 关系型数据库 MySQL
mysql shell如何查看服务器状态
mysql shell如何查看服务器状态
236 1
|
16天前
|
弹性计算 关系型数据库 MySQL
ECS续费问题之无法访问mysql如何解决
ECS续费是指对已创建的阿里云ECS实例执行的续费操作,以延长其服务期限;本合集旨在为用户提供ECS续费的操作步骤、策略选择和注意事项,确保业务的持续性和成本的优化。
|
2月前
|
关系型数据库 MySQL 数据库
实现RDS MySQL实例数据迁移的详细步骤
实现RDS MySQL实例数据迁移的详细步骤 随着科技的飞速发展,数据库的应用越来越广泛,而数据迁移作为数据库管理的重要环节,其重要性不言而喻。本文将详细介绍如何使用数据传输服务(Data Transmission Service,简称DTS),实现将三节点企业系列的RDS MySQL实例的数据迁移到集群系列的RDS MySQL。
105 4
|
2月前
|
弹性计算 缓存 关系型数据库
开源MySQL在倚天ECS上的最佳优化实践
我们总结了在倚天上自建MySQL的基本优化手段,并在阿里云ECS G8y实例(基于Armv9的倚天710处理器)和G8i实例(x86)上做了开源8.0.34版本的MySQL的性能测试对比,优化后MySQL在G8y上的性能相对于未优化在G8i上的性能在只读场景有63%的性能优势,在读写混合场景有35%的性能优势;相对于优化后的G8i仍能保持只读场景20%的性能优势,读写混合场景5%的性能优势。
135 2
|
2月前
|
监控 关系型数据库 MySQL
走进RDS之MySQL内存分配与管理(下)
《MySQL的内存分配与管理》上篇和中篇,介绍了MySQL的内存分配、使用和管理。在实际使用的过程中,控制好内存的用量、降低OOM风险十分重要。本篇为下篇,主要对MySQL内存限制特性进行解读,代码基于8.0.28。 在MySQL 8.0.28中,官方引入了内存限制的新特性WL#13458--Global and session memory allocation limits,从内核层面对服务运行期间的内存使用进行限制,降低OOM的风险。本文将围绕该项工作的改动、设计实现等方面展开介绍。