Zabbix 數據庫遷移


背景:ZABBIX的環境是LNMP,MySQL的架構是M-M主備模式,單台服務器SSD硬盤800G。監控主機日漸增多,空間不足,遷移到同樣架構下的SAS盤2T空間。

架構:A 192.168.0.100 -> B 192.168.0.101 -> C 192.168.0.102 -> D 192.168.0.103
步驟
1、搭建級聯從庫
2、修改zabbix server配置,加讀鎖,切庫
3、驗證

 

1、搭建級聯從庫
1> 檢查開啟B上的兩個參數 log_bin  log_slave_updates

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
mysql> show variables like 'log_slave_updates';    --log_slave_updates是只讀參數,修改該參數需要重啟數據庫
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| log_slave_updates | ON    |
+-------------------+-------+

2> 配置環境
  1) B C安裝lz4
    yum install -y lz4
  2) 配置B到C的SSH免認證登陸

  3) 關閉C的mysql服務,並清空data目錄下文件

    service mysqld stop
  
4) 熱備B上數據

nohup /usr/bin/innobackupex --user=root \
--password=xxx \
--parallel=4 \
--socket=/tmp/mysql.sock \
--slave-info --safe-slave-backup \
--no-timestamp \
--stream=xbstream . |\
lz4 -B4 |\
ssh root@192.168.0.102 \
"cat - | lz4 -d -B7 | xbstream -x -C /data/mysql/data" &

  5) 到C備份的文件目錄下,將數據恢復到一致性位點,對應 FTWRL 時間點

innobackupex --apply-log /data/mysql/data

  6) 啟動C的mysql服務

chown -R mysql:mysql /data/mysql/
service mysqld start

3> 搭建 B -> C 從庫

  1) 打開備份目錄中xtrabackup_binlog_info文件,替換MASTER_LOG_FILE,MASTER_LOG_POS

CHANGE MASTER TO
  MASTER_HOST='192.168.0.101',
  MASTER_USER='replication',
  MASTER_PASSWORD='XXX',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mysql-bin.000312',
  MASTER_LOG_POS=149457383,
  MASTER_AUTO_POSITION=0

  2) C上啟動slave

reset master;      --重新搭建主從的時候要執行
reset slave;
start slave;
show slave status\G

  C -> D 的主從搭建,同 B -> C,要注意的是,切換后,如果要搭建 C-D 雙主架構,需要關閉D上log_slave_update參數。 

 

2、修改zabbix server配置,切庫

1> 停止zabbix server服務

service zabbix-server stop

2> 修改 zabbix_server.conf

DBHost=192.168.0.102

3> C上停止salve

stop slave

4> 啟動zabbix server服務

service zabbix-server start

  數據庫切換啟動后,zabbix會重新同步緩存數據,此時查看數據庫processlist,會發現有與StartDBSyncers參數設置個數相同的線程在查詢發送數據。時刻關注zabbix_server日志,如果出現下面的問題,同步時間會異常緩慢,要終止同步需要先停止server進程,然后 kill 掉數據庫中的連接。問題解決方案,可參考下面記錄。

 

問題記錄:

1、zabbix server后台日志出現defunct狀態,並且日志中有out of memory報錯

 1 查看zabbix server 進程
 2 bestpay  29745 28549  0 23:34 ?        00:00:00 [zabbix_server] <defunct>
 3 bestpay  29746 28549  0 23:34 ?        00:00:00 [zabbix_server] <defunct>
 4 bestpay  29747 28549  0 23:34 ?        00:00:00 [zabbix_server] <defunct>
 5 root     29817 25359  0 23:37 pts/2    00:00:00 tail -f /data/dataLogs/zabbix_server/zabbix_server.log
 6 root     29819 27235  0 23:37 pts/5    00:00:00 grep zabbix_server
 7 查看zabbix_server.log
 8   28972:20180605:233508.259 Zabbix agent item "pyora[{$USERNAME},{$PASSWORD},{$ADDRESS},{$DATABASE},sga_shared_pool]" on host "yfkdbrsh-sh-159-33" failed: first network error, wait for 15 seconds
 9  29706:20180605:233510.358 __mem_malloc: skipped 8 asked 755232 skip_min 4488 skip_max 722096
10  29706:20180605:233510.358 [file:dbcache.c,line:2805] zbx_mem_realloc(): out of memory (requested 755232 bytes) 11  29706:20180605:233510.358 [file:dbcache.c,line:2805] zbx_mem_realloc(): please increase HistoryIndexCacheSize configuration parameter 12  29549:20180605:233510.359 __mem_malloc: skipped 8 asked 755232 skip_min 4488 skip_max 722096
13  29549:20180605:233510.359 [file:dbcache.c,line:2805] zbx_mem_realloc(): out of memory (requested 755232 bytes)
14  29549:20180605:233510.359 [file:dbcache.c,line:2805] zbx_mem_realloc(): please increase HistoryIndexCacheSize configuration parameter
15  28549:20180605:233510.359 One child process died (PID:29706,exitcode/signal:1). Exiting ...
16  28549:20180605:233512.381 syncing history data...
17  28549:20180605:233534.219 slow query: 21.830923 sec, "update items set lastlogsize=3833923,mtime=0 where itemid=285141;

解決方案:

zabbix 參數調整:
HistoryIndexCacheSize=2048M --原來沒有,建議根據內存大小設置一個緩存值,取值范圍128K-2G,默認4M,zabbix3.0.0后版本支持
StartDBSyncers=16    --sync 數據的時候啟動幾個進程來干活,根據數據庫壓力負載來進行設置,值過大會造成數據庫阻塞,取值范圍1-100,默認值4
系統內核參數調整:
#kernel.shmall = 4294967296  --原有參數值過大,不合理,導致out of memory的根本原因
kernel.shmall =  16252928  --正確的值是按照物理內存除以OS block size的值

  

 參考資料:

1、https://www.zabbix.com/documentation/3.4/manual/appendix/config/zabbix_server?s[]=historyindexcachesize

 

作者:zero_gg
出處:http://www.cnblogs.com/zero-gg/

如果你真心覺得文章寫得不錯,而且對你有所幫助,那就不妨小小打賞一下吧,如果囊中羞澀,不妨幫忙“推薦"一下,您的“推薦”和”打賞“將是我最大的寫作動力!

本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM