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

 

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服務器。

 

1.png

2.ecs服務器上,將rds數據庫的備份文件解壓縮:

2.png

 

[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

添加或修改:

3.png

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

4.png

[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

5.png

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

6.png

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

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

7.png

6.啓動mysql

# sudo service mysqld start

8.png

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

9.配置ecs服務器的MySQL實時同步rds數據庫

10.png

# 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數據庫的同步:

12.png

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;

12.png

rds上創建test測試數據庫,發現ecs上也同步創建,rds刪除test庫,rcs也同步刪除。說明只讀實例創建成功。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章