1. 程式人生 > >在ECS上搭建阿裏雲數據庫RDS的只讀實例

在ECS上搭建阿裏雲數據庫RDS的只讀實例

dev 數據安全 star 版本 vpd align my.cnf 存儲目錄 主服務器

ecs上搭建阿裏雲數據庫rds的只讀實例

一、搭建環境

1. 阿裏雲的雲數據庫rds版,MySQL版本:MySQL 5.6.16,做主服務器,816G內存。

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數據庫頁面,選中“實例”-“備份恢復”-“下載”,進行“物理備份”文件的下載。然後將備份文件上傳到

ecs服務器。

技術分享圖片

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的配置文件,開啟mysqlGTID模式:

# sudo vi /etc/my.cnf

添加或修改:

技術分享圖片

4.修改後停止msyql服務,備份ecsmysql數據庫目錄:

技術分享圖片

[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備份數據恢復到ecsmysql

# sudo /usr/bin/innobackupex --apply-log hins3120429_data_20180711012442

技術分享圖片

# sudo /usr/bin/innobackupex --copy-back /tmp/hins3120429_data_20180711012442

技術分享圖片

修改ecsmysql數據存儲目錄的屬主、屬組:

# sudo chown -R mysql.mysql /data/mysql

技術分享圖片

6.啟動mysql

# sudo service mysqld start

技術分享圖片

7.通過修改配置文件,重置mysqlroot密碼

# 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_userrds的復制用戶,需要有rdsreplication_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的只讀實例