Mysql5.7.12多源復制 xtrabackup
阿新 • • 發佈:2018-03-13
多源復制master-slave? 實驗環境
Master1與Master2互為主備,Slave1是Master1,Master2的備機(多源復制)
- 系統環境
查看系統版本命令:cat /etc/redhat-release - 本實驗是編譯安裝的Mysql ,坑太多,以後不建議采用編譯安裝的方式
- 啟動Mysql前首先執行以下命令,創建鏈接
ln -s /usr/local/mysql/bin/mysql /usr/bin - Mysql初始的root密碼存放在/root/.mysql_secret
找到密碼後連接數據庫,一定要修改root密碼,然後重新啟動Mysql
? 搭建Master-Master-slave
MySQL01:192.168.4.63 Master1
MySQL02:192.168.4.64 Master2
MySQL03:192.168.4.65 Slave1
-
首先實現Master1,Master2互為主備的功能
-
修改/etc/my.cnf,添加如下內容:
多源復制加入了一個叫做Channel的概念,只需要在每個語句最後使用For Channel來進行區分。由於復制的原理沒有改變,在沒有開啟GTID的時候從庫需要master-info-repository、relay-log-info-repository設置為table,否則會報錯:
- 授權同步帳號
- 查出M1和M2的文件和Pos值
-
執行命令將M1,M2設置為互為主備
- 查看slave狀態
-
- 實現Slave1多源復制功能,即S1為M1,M2的共有備機
- 授權同步帳號
- 執行命令將S1作為M1,M2的備機
- 查看Slave狀態
註:至此已實現多主單備的配置,亦稱多源復制。Msql5.7以上版本可使用GTID模式實現此功能
- 授權同步帳號
數據庫的備份是DBA一項非常重要的工作,本案例中我們采用xtrabackup完成數據備份需求
- 在Slave1安裝xtrabackup
2.安裝完成後,你就能在/etc/yum.repos.d 下看到一個percona-release.repo文件
3.測試Repository,確保Percona XtraBackup相關包已經在Repository中
4.安裝Percona XtraBackup包
5.查看安裝結果
- 創建備份用戶
備份數據庫的用戶需要具有相應權限,如果要使用一個最小權限的用戶進行備份,則可基於如下命令創建此類用戶:
- 創建備份用戶
- 執行完整備份:
innobackupex --user=root --password=cbichina_123 /extrabackup
執行完成後,會自動創建當前時間的文件夾
利用 --apply-log的作用是通過回滾未提交的事務及同步已經提交的事務至數據文件使數據文件處於一致性狀態。
innobackupex --apply-log /extrabackup/2018-03-06_18-15-40/ -
執行增量備份
此命令執行結束後,innobackupex命令會在/backup目錄中創建一個新的以時間命名的目錄以存放所有的增量備份數據。另外,在執行過增量備份之後再一次進行增量備份時,其--incremental-basedir應該指向上一次的增量備份所在的目錄。
innobackupex --incremental /extrabackup/ --user=root--password=cbichina_123 - 還原
請確保信息的最行一行出現“innobackupex: completed OK!”。
innobackupex --copy-back /extrabackup/2018-03-06_18-15-40/
Mysql5.7.12多源復制 xtrabackup