背景:ZABBIX的環境是LNMP,MySQL的架構是M-M主備模式,單臺服務器SSD硬盤800G。監控主機日漸增多,空間不足,遷移到一樣架構下的SAS盤2T空間。mysql
架構:A 192.168.0.100 -> B 192.168.0.101 -> C 192.168.0.102 -> D 192.168.0.103
步驟:
一、搭建級聯從庫
二、修改zabbix server配置,加讀鎖,切庫
三、驗證sql
一、搭建級聯從庫
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 時間點app
innobackupex --apply-log /data/mysql/data
6) 啓動C的mysql服務ssh
chown -R mysql:mysql /data/mysql/
service mysqld start
3> 搭建 B -> C 從庫socket
1) 打開備份目錄中xtrabackup_binlog_info文件,替換MASTER_LOG_FILE,MASTER_LOG_POSspa
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參數。
二、修改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 掉數據庫中的鏈接。問題解決方案,可參考下面記錄。
問題記錄:
一、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的值
參考資料:
做者:zero_gg 若是你真心以爲文章寫得不錯,並且對你有所幫助,那就不妨小小打賞一下吧,若是囊中羞澀,不妨幫忙「推薦"一下,您的「推薦」和」打賞「將是我最大的寫做動力! 本文版權歸做者全部,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接. |