阿里云RDS的价格较贵,想实现Mysql读写分离又想节约成本,可以考虑在阿里云ECS主机上自己搭建从库。以2核CPU+4G内存+200G SSD硬盘的配置为例,RDS一年的费用是6732,ECS一年是4335,可以节省1/3的费用,可以考虑用作离线统计等非用户实时数据需求。

-
备份数据库
参考备份 RDS 数据 -
恢复数据
参考恢复云数据库MySQL的备份文件到自建数据库
补充:
安装和RDS相同版本的Mysql(Mysql下载地址),可用select version()查看。
安装步骤(以CentOS6 Mysql5.6.16为例):
rpm安装:
tar -xvf MySQL-5.6.16-1.el6.x86_64.rpm-bundle.tar -C mysql5.6.16
cd mysql5.6.16/
rpm -ivh MySQL-server-5.6.16-1.el6.x86_64.rpm
rpm -ivh MySQL-devel-5.6.16-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.16-1.el6.x86_64.rpm
yum安装:
repo库地址
sudo yum localinstall mysql-community-release-el6-*.noarch.rpm
sudo yum install mysql-community-server
安装3个包即可,分别是服务端,客户端,开发相关库文件
如果ECS上已经安装其它版本Mysql,手动卸载:
yum方式安装的Mysql:
查看安装
yum list installed|grep mysql
卸载:
yum remove ...
删除相关文件:
rm -rf /var/lib/mysql
rm /etc/my.cnf
...
rpm方式安装的Mysql:
查看安装:
rpm -qa|grep mysql
chkconfig --list | grep -i mysql
whereis mysql
卸载:
rpm -e ...
chkconfig --del mysql
删除相关文件:
rm -rf /var/lib/mysql
rm -rf /usr/share/mysql
rm /etc/my.cnf
...
推荐使用yum安装数据恢复工具Percona XtraBackup:
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
rpm -ivH percona-release-0.1-6.noarch.rpm
yum install percona-xtrabackup-24
进入RDS管理后台下载备份文件,执行wget -c '<下载地址>' -O <自定义文件名>.tar.gz (复制的下载地址需要加单引号)
用解压工具rds_backup_extract.sh解压备份文件:
bash rds_backup_extract.sh -f <数据备份文件名>.tar.gz -C /home/mysql/data
恢复备份文件:
innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data
chown -R mysql:mysql /home/mysql/data
自定义配置文件/etc/my.cnf:
[mysqld]
# 指定数据路径
datadir = /mysql/data
port = 3306
server_id = 2
socket = /mysql/data/mysqld.sock
max_allowed_packet=32M
log-error = /mysql/logs/error.log
master-info-repository=file
relay-log-info_repository=file
binlog-format=ROW
gtid-mode=on
enforce_gtid_consistency=1
# 从库写自己的binlog
log_slave_updates=1
# 其它参数需要和主库保持一致 主库配置文件:/mysql/data/backup-my.cnf
lower_case_table_names=1
character_set_server=utf8mb4
innodb_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1572864000
登陆Mysql客户端(默认没有密码),清理复制关系表数据
RESET MASTER;
RESET SLAVE;
TRUNCATE TABLE mysql.slave_relay_log_info;
TRUNCATE TABLE mysql.slave_master_info;
TRUNCATE TABLE mysql.slave_worker_info;
TRUNCATE TABLE mysql.slave_relay_log_info;
TRUNCATE TABLE mysql.slave_master_info;
查看解压目录下xtrabackup_slave_info文件中同步配置信息;在RDS管理后台创建同步账户
STOP SLAVE;
SET GLOBAL gtid_purged='...';
CHANGE MASTER TO MASTER_HOST='RDS地址', MASTER_PORT=3306, MASTER_USER='...', MASTER_PASSWORD='...', MASTER_AUTO_POSITION=1;
START SLAVE;
网友评论