初次認(rèn)知是分區(qū)問(wèn)題,分區(qū)不夠了,開始在網(wǎng)上查分區(qū)創(chuàng)建方法 alter table history partition by range (clock)(partition p1 values less than MAXVALUE); 在此我給了MAXVALUE一個(gè)很大的值,執(zhí)行了20分鐘沒(méi)有執(zhí)行完,發(fā)現(xiàn)這種方式不行 檢查是不是設(shè)置了自動(dòng)分區(qū) show create table history; 發(fā)現(xiàn)有一大堆以clock的分區(qū),發(fā)現(xiàn)clock是日期,正好是今天凌晨,而一上午沒(méi)有生成分區(qū),所以導(dǎo)致數(shù)據(jù)存不進(jìn)去。知道了原因,先解決,先不探討為什么有自動(dòng)分區(qū)的問(wèn)題。zabbix 一次慘痛的分區(qū)經(jīng)歷 發(fā)現(xiàn)問(wèn)題了,就先解決問(wèn)題,創(chuàng)建分區(qū)吧 CALL partition_create("zabbix", "history", "p201706140000", 1497456000); 提示沒(méi)有這個(gè)partition_create存儲(chǔ)過(guò)程,所以無(wú)法執(zhí)行,挺納悶,先不解決這個(gè); 創(chuàng)建這個(gè)存儲(chǔ)過(guò)程,建議參考:https://www.zabbix.org/wiki/Docs/howto/mysql_partition#partition_create ( 網(wǎng)上不靠譜的太多了) 進(jìn)入數(shù)據(jù)庫(kù)執(zhí)行下面語(yǔ)句:(root登錄,不知道有沒(méi)有影響)
ok,此時(shí)把不存在分區(qū)的表都創(chuàng)建上,然后重啟zabbix。 現(xiàn)在要查找問(wèn)題的原因了 因?yàn)榍懊嫣幚韟abbix的同事,做了分區(qū)分表,然后又在cron內(nèi)設(shè)置了定時(shí)任務(wù),定時(shí)添加幾天的表區(qū) mysql -uzabbix -pxxx -e "CALL partition_maintenance_all('zabbix');" 因?yàn)槲医邮趾螅恢肋@是什么,把zabbix服務(wù)器歸納整理后,mysql密碼變了,執(zhí)行不了了,消耗了一上午的時(shí)間,不過(guò)清晰了zabbix分區(qū)過(guò)程,也是有收獲的 現(xiàn)在要開始總結(jié)下分區(qū)分表了 查看存儲(chǔ)過(guò)程:select specific_name from mysql.proc ; 查看過(guò)程邏輯:show create procedure partition_create /G 刪除存儲(chǔ)過(guò)程:drop procedure if exists partition_maintenance_all ; 查看存儲(chǔ)過(guò)程:show procedure status like 'partition_maintenance%' /G; 修改存儲(chǔ)過(guò)程:ALTER {PROCEDURE|FUNCTION} sp_name [characteriss] 根據(jù)官方文檔,創(chuàng)建存儲(chǔ)過(guò)程,包括:create、drop、maintenance、verify、maintenance_all 最好根據(jù)自身情況對(duì)maintenance_all,進(jìn)行修改,用于減輕數(shù)據(jù)。