在ECS上搭建阿裏雲數據庫RDS的只讀實例
在ecs上搭建阿裏雲數據庫rds的只讀實例
一、搭建環境
1. 阿裏雲的雲數據庫rds版,MySQL版本:MySQL 5.6.16,做主服務器,8核16G內存。
2. Ecs服務器一臺:CentOS release 6.8,安裝MySQL 5.6.40,做從服務器,Intel(R) Xeon(R) CPU
E5-2682 v4 @ 2.50GHz,兩核4G內存。
二、目的
通過搭建只讀實例(mysql主從),實時將數據從雲數據庫rds,復制到ecs上的MySQL從庫,減少rds讀取數據的壓力。
三、步驟
1.在rds數據庫頁面,選中“實例”-“備份恢復”-“下載”,進行“物理備份”文件的下載。然後將備份文件上傳到
2.在ecs服務器上,將rds數據庫的備份文件解壓縮:
[devops@CN-Aliyun-HD2-C-1074 tmp]$ mkdir -p hins3120429_data_20180711012442
[devops@CN-Aliyun-HD2-C-1074 tmp]$ sudo tar -zxvf hins3120429_data_20180711012442.tar.gz -C ./hins3120429_data_20180711012442
ibdata1
mysql/slave_master_info.ibd
mysql/innodb_table_stats.ibd
mysql/innodb_index_stats.ibd
mysql/slave_relay_log_info.ibd
mysql/failover_info.ibd
mysql/ha_health_check.ibd
…
3.在ecs服務器,修改mysql的配置文件,開啟mysql的GTID模式:
# sudo vi /etc/my.cnf
添加或修改:
4.修改後停止msyql服務,備份ecs的mysql數據庫目錄:
[devops@CN-Aliyun-HD2-C-1074 data]$ sudo service mysqld stop
Stopping mysqld: [ OK ]
[devops@CN-Aliyun-HD2-C-1074 data]$ sudo mv mysql mysql_bake
5.將rds備份數據恢復到ecs的mysql:
# sudo /usr/bin/innobackupex --apply-log hins3120429_data_20180711012442
# sudo /usr/bin/innobackupex --copy-back /tmp/hins3120429_data_20180711012442
修改ecs的mysql數據存儲目錄的屬主、屬組:
# sudo chown -R mysql.mysql /data/mysql
6.啟動mysql
# sudo service mysqld start
7.通過修改配置文件,重置mysql的root密碼
# sudo vi /etc/my.cnf 在[mysqld]添加skip-grant-tables
# sudo service mysqld restart
mysql> update mysql.user set password=password('******') where user='root';
# sudo vi /etc/my.cnf 去掉skip-grant-tables
# sudo service mysqld restart
8.在阿裏雲的rds數據庫上,通過“實例”-“數據安全性”,添加ecs服務器IP
9.配置ecs服務器的MySQL實時同步rds數據庫
# sudo cat xtrabackup_slave_filename_info
記錄下MASTER_LOG_FILE='mysql-bin.001313', MASTER_LOG_POS='434565',以及rds的連接串,放入如下sql語句:
change master to master_host = 'rm-uf**********.mysql.rds.aliyuncs.com', master_port = 3306,master_user='***',master_password='******',MASTER_LOG_FILE='mysql-bin.001313', MASTER_LOG_POS=434565;
master_host 為rds的連接串
master_port數據庫端口號
master_user為rds的復制用戶,需要有rds的replication_slave,replication_client權限(rds經典模式為讀寫權限)。
master_password 為復制用戶的密碼
MASTER_LOG_FILE 從這個二進制文件的MASTER_LOG_POS位置點開始同步RDS數據庫。啟動只讀實例與rds數據庫的同步:
mysql> change master to marester_host = 'rm-uf6g45fw2y852kqb6.mysql.rds.aliyuncs.com', master_port=3306,master_user='***',master_password='******',MASTER_LOG_FILE='mysql-bin.001313', MASTER_LOG_POS=434565;
Query OK, 0 rows affected, 2 warnings (0.03 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
10.查看只讀實例是否成功:
Ecs上, MySQL>show slave status\G;
在rds上創建test測試數據庫,發現ecs上也同步創建,rds刪除test庫,rcs也同步刪除。說明只讀實例創建成功。
在ECS上搭建阿裏雲數據庫RDS的只讀實例