zabbix mysql數據庫遷移方案

一、備份方案

1.1 備份方案具體步驟

舊的zabbix:oldIP,新的zabbixnewIP

方案1【不推薦】:

數據量65G

全備oldIPmysql,耗時大約:十個小時

恢復到newIPmysql:耗時:十幾個小時

損失監控數據:二十幾個小時

 

 

方案2無縫遷移【推薦】:

1、【新的zabbix服務器準備工作】:安裝新的zabbix服務端,客戶端,mysql安裝5.1版本以上(centos6mysqlyum版本就是5.1版本),把新的zabbixmysql做分表操作。

2、把舊zabbix服務器上的腳本、配置、crontab都拷貝到新zabbix上。

3、只把配置導入到新的zabbix,然後運行新的zabbix,讓它監控。【十幾分鍾】

4、通過免密鑰批量執行腳本,10秒鐘就完成了:70多臺機器的zabbix客戶端,修改爲兩臺服務端IP,然後重啓。

就是先讓客戶端同時主動上報監控數據給兩個服務端。讓兩臺zabbix server同時監控7天。這樣history的數據就不用遷移了。【10秒完成,不消耗監控數據】

5、七天之後,舊zabbix導出trend備份之後,用sed命令批量替換舊的zabbix agent hostid爲新的zabbix agenthostid。先把新的zabbix做個全備。

然後只用遷移trend數據 。【消耗幾十分鐘,但是不造成太大的影響。】,

注意事項:新的zabbix服務器做mysql分表,要按照舊的zabbix規矩來,history保存7天,trend保存365天。

 

損失監控數據:幾乎無縫遷移

 

 

1.2 備份方案詳解

總結:新的zabbix服務器做mysql分表,先倒舊zabbix配置到新的zabbix上,使新的zabbix能夠運行,然後兩個zabbix同時運行7天,然後導入個trend數據到新的zabbix裏就行了。

 

問題1:爲啥不用導入history數據?

因爲所有的itemhistory都設置成7天,所以運行7天就不用導入history表了。

 

問題2:分批次導入數據,zabbix server本身的agent不一致如何處理?

 

處理步驟

方法1、舊zabbix導出trend備份之後,用sed命令批量替換舊的zabbix agent hostid爲新的zabbix agenthostid。再導入trend數據。

或者:

方法2、導完trend數據之後,然後把新的zabbix的裏舊zabbix agenthostid,用update命令替換成新的zabbix agenthostid

 

 

問題3:接問題2,那爲啥只改個hostid就能保持一致呢?

要了解:mysqlzabbix數據庫的架構:schema.sql

[root@Monitor1 ~]# vi  /root/zabbix/zabbix-2.2.2/database/mysql/schema.sql 

 

找到對應關係:

hosts表的host字段(就是像web-01agent的名字)---------->

hosts表的hostid ---------->通過items表單hostid找到

---------->items表單itemid---------->通過itemid找到trend或者history對應的具體數據

 

也就是我們就只用關注:hostid字段。因爲hostitems相關連的東西,就是hostid

(而資源之間的關聯關係,是通過外鍵來完成的。比如hostitem的關聯關係,就是在items表中使用hostidhosts表中的資源進行關聯的。)


不用管主機名之類的,只要導入前修改備份數據裏的hostid爲新的hostid,或者導入後,修改就可以了。


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