您好,登錄后才能下訂單哦!
本文主要給大家簡單講講如何通過XtraBackup和MySQL主從復制轉移Zabbix數據庫,相關專業(yè)術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望如何通過XtraBackup和MySQL主從復制轉移Zabbix數據庫這篇文章可以給大家?guī)硪恍嶋H幫助。
一 應用場景描述
目前Zabbix監(jiān)控系統(tǒng)的Server端和Web端以及MySQL運行在同一臺虛擬機上,最近這臺虛擬機運行不是很穩(wěn)定,MySQL頻繁被OOM殺掉。故需要及時遷移Zabbix數據庫到另外一臺大內存的物理機。
二 遷移步驟
遷移的思路是搭建MySQL主從復制,把現有的MySQL實例作為Master,把新的MySQL實例作為Slave,現DUMP一份現有的數據遷移到新的MySQL實例,然后設置主從同步,最后再關閉主從同步。
這里我們使用XtraBackup來備份Master的數據,而不使用mysqldump來備份數據,因為mysqldump備份的時候會鎖表,并且備份時間較長。
1.更改Master的my.cnf
log-bin=mysql-bin log-bin-index=mysql-bin.index server-id=1 binlog_format=mixed
2.更改Slave的my.cnf
server-id = 2 relay-log-index = slave-relay-bin.index relay-log = slave-relay-bin replicate-ignore-db=mysql
3.使用xtrabackup開始備份
./innobackupex --user=xxxxx --password=xxxxx /backup/
根據數據量的多少備份的時間不同,但是比mysqldump快很多
可以使用./xtrabackup --help查看詳細參數
如果估計備份時間比較長,可以開一個screen窗口
數據備份完了之后還需要拷貝一份snapshot
./innobackupex --user=xxxxx --password=xxxxx --apply-log /backup/2016-06-08_00-59-31/
4.復制備份數據到新的MySQL云服務器
rsync -avz /backup/2016-06-08_00-59-31 172.28.2.xx:~
確保新的MySQL實例處于關閉狀態(tài)
mv /opt/data/mysql/* /backup/ mv 2016-06-08_00-59-31/* /opt/data/mysql/ chown mysql:mysql /opt/data/mysql
5.添加復制賬號
CREATE USER repl_user; GRANT REPLICATION SLAVE ON *.* TO repl_user IDENTIFIED BY 'xyzzy'; flush privileges;
6.在Slave服務端檢測是否可用復制賬號登錄
# mysql -h 172.28.2.xxx -urepl_user -p mysql> show grants; +-----------------------------------------------------------------------------------+ | Grants for repl_user@% | +-----------------------------------------------------------------------------------+ | GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY PASSWORD <secret> | +-----------------------------------------------------------------------------------+ 1 row in set (0.03 sec)
7.配置主從復制
# cat /opt/data/mysql/xtrabackup_binlog_info mysql-bin.000053 120
mysql> CHANGE MASTER TO -> MASTER_USER='repl_user', -> MASTER_PASSWORD='xyzzy', -> MASTER_HOST='172.28.2.XXXX', -> MASTER_LOG_FILE='mysql-bin.000053', -> MASTER_LOG_POS=120; Query OK, 0 rows affected, 2 warnings (0.61 sec) mysql> START SLAVE; Query OK, 0 rows affected (0.02 sec)
SHOW SLAVE STATUS\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
主要查看這三個指標
8.停掉Zabbix server,并觀察MySQL Slave的同步延遲時間,Seconds_Behind_Master為0時就可以執(zhí)行以下的步驟了。
9.停掉并重置MySQL Slave
mysql> STOP SLAVE; Query OK, 0 rows affected (0.04 sec) mysql> RESET SLAVE; Query OK, 0 rows affected (0.13 sec) mysql> SHOW SLAVE STATUS\G *************************** 1. row ***************************
更改Slave的配置文件
將原來的主從復制相關配置項刪除
server-id = 2 relay-log-index = slave-relay-bin.index relay-log = slave-relay-bin replicate-ignore-db=mysql
添加
log-bin=mysql-bin log-bin-index=mysql-bin.index server-id=1 binlog_format=mixed
重新啟動MySQL
10.更改Zabbix server的MySQL配置并啟動
除了更改Zabbix server的配置文件,還需要更改zabbix web的配置文件,將mysql配置更改為新的mysql
如何通過XtraBackup和MySQL主從復制轉移Zabbix數據庫就先給大家講到這里,對于其它相關問題大家想要了解的可以持續(xù)關注我們的行業(yè)資訊。我們的板塊內容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。