在ECS上輕鬆搭建RDS的從例項
場景
由於一些特殊的原因,某燃氣公司線下ECS上需要在ECS上搭建一套從庫,需要同步RDS資料庫的資料(mysql5.7版本)。
實現RDS for mysql與線下ECS上自建資料庫資料實時同步,阿里雲官方推薦使用DTS方式進行。原因有兩個:
1、mysql-bin正常情況下,RDS在本地只儲存18個小時
2、當RDS例項切換時,會影響自建ECS資料同步(這個經過測試可以排除)
一方面考慮到使用DTS工具會產生不少的費用(長期使用),另一方面,在資料庫中一個地區對應一個庫,後續業務無法事先規劃好庫名,此時如果使用dts可能需要購買多個通道,進行配置,比較費時費力且費錢。基於這兩個原因的考慮,某燃氣公司決定使用搭建主從複製方式來實現資料同步。以下是搭建RDS與ECS主從複製過程
操作步驟
配置RDS主例項
-
登入 RDS 控制檯,選擇目標例項。
. 配置從例項讀取資料使用的只讀賬號和授權資料庫。 . 將ECS的從例項的 IP 地址加入主例項的 IP 白名單中 . 登入主例項 . 查詢主例項的 server-id。
# show variables like `server_id`;
系統返回如下資訊:
+-------------------------+-----------------+
| Variable_name | Value |
+-------------------------+-----------------+
| server_id |678888899909 |
| server_id_bits | 32 |
+-------------------------+-----------------+
配置ECS上從例項
- 安裝 MySQL 從例項。
MySQL 安裝包和安裝方法,這裡略,這裡建議安裝percona版本的mysql。
停止從例項 mysql 服務。
. 修改從例項 mysql 配置檔案。
1)開啟從例項 MySQL 配置檔案。
vim /etc/my.cnf
. 配置從例項的 server-id 和要同步的資料庫。
server-id = 123456789
log_bin=/data/dbdata/mysql-bin
expire_logs_days = 7
max_binlog_size = 100M
replicate-ignore-db = mysql #不需要同步的資料庫
replicate-ignore-db = information_schema #不需要同步的資料庫
replicate-ignore-db = performance_schema #不需要同步的資料庫
replicate-ignore-db = sys #不需要同步的資料庫
- 配置 GTID 同步模式,binlog 格式為 row,以相容主例項。
#GTID
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row #設定 binlog 為 row
log-slave-updates=1
- 執行如下命令,檢視 binlog 配置結果。
# show variables like `%binlog_format%`;
系統返回如下資訊:
+-------------------------+-----------------+
| Variable_name | Value |
+-------------------------+-----------------+
| binlog_format | ROW |
+-------------------------+-----------------+
- 將主例項資料全量同步到從例項。
方式一:通過dts進行資料實時同步
方式二:通過mysqldump進行匯出資料庫及匯入資料
注:這裡大家應該比較熟悉,就不詳細介紹
. 登入資料庫,設定同步選項。
mysql>change master to master_host = `rds服務地扯`, master_port = 3306, master_user = `root`, master_password=`masterpassword`, master_auto_position = 1;
- 啟動從例項。
mysql>slave start;
- 檢查同步結果。
mysql>show slave statusG
檢視系統返回資訊中 Slave_IO_Running 和 Slave_SQL_Running 的狀態是否為 Yes,如下所示。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
注: Slave_IO_Running、Slave_SQL_Running兩個引數均為yes,表示IO程式及SQL程式都正常,表示配置RDS主從例項成功。
郵件告警功能
由於mysql-binlog在RDS上正常情況下只儲存18個小時,此時必須要對從庫及主庫狀態進行控制,防止從庫沒有應用日誌,RDS主庫上的日誌就已經刪除,這節內容會在下一篇文章中描述。下面會配合lepus監控軟體實現郵件告警的功能。
via 卓見雲技術服務團隊
相關文章
- 阿里雲RDS與ECS自建庫搭建主從複製阿里
- 【DG】在Linux平臺上搭建單例項的dataguard--duplicateLinux單例
- 輕鬆搭建基於 Serverless 的 Go 應用(Gin、Beego 舉例)ServerGo
- 場景實踐:使用RDS和ECS搭建個人部落格
- CentOS 7.3 ECS上搭建RAC 18c+單例項DG+EMCC+DG的FSFO快速故障轉移配置CentOS單例
- 在 Fedora 上使用 GIMP 輕鬆編輯影像
- 在 Fedora 上使用 GIMP 輕鬆編輯影象
- 【DG】在Linux平臺上搭建單例項的dataguard--rman還原方式Linux單例
- 頭腦王者,輕輕鬆鬆上王者,憑自己的Python知識上王者Python
- Unirech:無法訪問搭建在阿里雲國際版雲伺服器ecs例項上的網站如何排查阿里伺服器網站
- WPF中輕鬆生成動態圖表:例項詳解(MVVM模式)MVVM模式
- 5 個在視覺上最輕鬆的黑暗主題視覺
- 在滴滴雲DC2伺服器上搭建DPDK應用例項伺服器
- 阿里雲體驗有禮:使用RDS和ECS搭建個人部落格阿里
- 在雲上輕鬆部署達夢資料庫資料庫
- K8s 上輕鬆搭建百萬連線的 MQTT 服務K8SMQQT
- 在 Google Cloud 上輕鬆部署開放大語言模型GoCloud模型
- 在iPhone / iPad上輕鬆模擬GPS位置:AnyGo for MaciPhoneiPadGoMac
- AnyGo for Mac(在iPhone / iPad上輕鬆模擬GPS位置)GoMaciPhoneiPad
- AutoScaling彈性伸縮附加與分離RDS例項
- AutoScaling 彈性伸縮附加與分離RDS例項
- 阿里雲伺服器ECS例項建立記錄阿里伺服器
- 在思科ASA上部署Failover例項演示-上AI
- 輕鬆搭建基於 Serverless 的 ThinkPHP 應用ServerPHP
- unity2019 ECS入門例項:建立一個EntityUnity
- Python 下 Django 透過 SSHTunnel 連線 ECS 上未開通外網地址 RDS 的方案PythonDjango
- 使用容器快速在阿里雲 ECS 多節點上搭建 Citus 12.1 叢集阿里
- 輕鬆保障萬級例項,vivo服務端監控體系建設實踐服務端
- 公有云RDS太貴?基於ECS構建的多雲RDS服務能降近半成本
- 輕鬆搭建基於 SpringBoot + Vue 的 Web 商城應用Spring BootVueWeb
- 輕輕鬆鬆實現本地和雲主機之間的檔案上傳下載
- 在 NVIDIA DGX Cloud 上使用 H100 GPU 輕鬆訓練模型CloudGPU模型
- 智慧掃描支援從MySQL例項線上抓取慢SQLMySql
- 【網站搭建】30分鐘輕鬆搭建網站應用網站
- 輕鬆學會 React 鉤子:以 useEffect() 為例React
- Hexo+Github輕鬆搭建個人部落格HexoGithub
- 輕鬆理解UML用例圖時序圖類圖的教程時序圖
- 輕鬆搭建基於 Serverless 的 Egg.js Web 應用ServerJSWeb