zabbix 啓用分區表

參照

https://www.zabbix.org/wiki/Docs/howto/mysql_partition#partition_create

注意:zabbix 啓用分區表後需要關閉Housekeeper

分區的過程其實很簡單,按着做就是。

假設你當前在/root目錄

mkdir Partitioning
cd Partitioning
wget wget https://www.zabbix.org/mw/images/1/10/Partitioning.zip
unzip Partitioning.zip

 查看目錄

[root@gt-zabbix Partitioning]# ll
total 36
-rw-r--r-- 1 root root 8021 Jun 11  2019 partition_create.sql
-rw-r--r-- 1 root root 2383 Jun 11  2019 partition_delete.sql
-rw-r--r-- 1 root root 5547 Dec 11 19:58 Partitioning.zip
-rw-r--r-- 1 root root 1063 Dec 11 20:05 partition_maintenance_all.sh
-rw-r--r-- 1 root root  750 Jun  3  2019 partition_maintenance_all.sql
-rw-r--r-- 1 root root  683 Jun 11  2019 partition_maintenance.sql
-rw-r--r-- 1 root root 3604 Jun 11  2019 partition_verify.sql

 執行

mysql < partition_create.sql
mysql < partition_maintenance_all.sql

想看數據庫的存儲過程

MariaDB [(none)]> show procedure status;
+--------+---------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db     | Name                      | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+--------+---------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| zabbix | partition_create          | PROCEDURE | root@localhost | 2019-12-11 18:56:37 | 2019-12-11 18:56:37 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
| zabbix | partition_drop            | PROCEDURE | root@localhost | 2019-12-11 18:56:56 | 2019-12-11 18:56:56 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
| zabbix | partition_maintenance     | PROCEDURE | root@localhost | 2019-12-11 18:57:08 | 2019-12-11 18:57:08 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
| zabbix | partition_maintenance_all | PROCEDURE | root@localhost | 2019-12-11 19:39:48 | 2019-12-11 19:39:48 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
| zabbix | partition_verify          | PROCEDURE | root@localhost | 2019-12-11 20:13:44 | 2019-12-11 20:13:44 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
+--------+---------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
5 rows in set (0.01 sec)

如果要看過程的創建代碼:

MariaDB [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix]> show create procedure  partition_maintenance_all;
+---------------------------+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Procedure                 | sql_mode | Create Procedure                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | character_set_client | collation_connection | Database Collation |
+---------------------------+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| partition_maintenance_all |          | CREATE DEFINER=`root`@`localhost` PROCEDURE `partition_maintenance_all`(SCHEMA_NAME VARCHAR(32))
BEGIN
                CALL partition_maintenance(SCHEMA_NAME, 'history', 28, 24, 14);
                CALL partition_maintenance(SCHEMA_NAME, 'history_log', 28, 24, 14);
                CALL partition_maintenance(SCHEMA_NAME, 'history_str', 28, 24, 14);
                CALL partition_maintenance(SCHEMA_NAME, 'history_text', 28, 24, 14);
                CALL partition_maintenance(SCHEMA_NAME, 'history_uint', 28, 24, 14);
                CALL partition_maintenance(SCHEMA_NAME, 'trends', 730, 24, 14);
                CALL partition_maintenance(SCHEMA_NAME, 'trends_uint', 730, 24, 14);
END | utf8                 | utf8_general_ci      | utf8_general_ci    |
+---------------------------+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)

自動執行分表腳本:

[root@gt-zabbix Partitioning]# cat  partition_maintenance_all.sh
#!/bin/bash

echo 'Partitioned table maintenance tasks begin at '`date +%Y%m%d%H%M%S`'.' > /tmp/partition_maintenance_all_mail.tmp
echo '' >> /tmp/partition_maintenance_all_mail.tmp

mysql -D zabbix -e 'CALL partition_maintenance_all("zabbix");' >> /tmp/partition_maintenance_all_mail.tmp 2>&1

echo '' >> /tmp/partition_maintenance_all_mail.tmp
echo 'Partitioned table maintenance tasks finish at '`date +%Y%m%d%H%M%S`'.' >> /tmp/partition_maintenance_all_mail.tmp

#cat /tmp/partition_maintenance_all_mail.tmp | mailx -r '[email protected]' -s 'Partitioned table maintenance' [email protected]

#CURL_DATA="{
#  \"content\": \""`sed ":a;N;s/\n/<br \/>/;s/\t/ /g;ta" /tmp/partition_maintenance_all_mail.tmp`"\",
#  \"sender\": \"[email protected]\",
#  \"subject\": \"Partitioned table maintenance\",
#  \"tos\": [
#    \"[email protected]\"
#  ]
#}
#"

#curl -X POST --header "Content-Type: application/json" --header "Accept: */*" -d "$CURL_DATA" "http://10.89.139.46:8088/api/v2/notification/email/send?token=【token值】"

結合我前面文章寫的python發郵箱腳本可實現把執行結果發送了郵箱 

https://blog.csdn.net/h106140873/article/details/97772503

/usr/lib/zabbix/alertscripts/send.py '[email protected]' 'partition_maintenance_all_mail' "`cat /tmp/partition_maintenance_all_mail.tmp`"

 

創建定時執行任務crontab -euroot

[root@gt-zabbix Partitioning]# crontab -luroot
#*  *  *  *  *  command
#分 時 日 月 周 命令
#第1列表示分鐘1~59 每分鐘用*或者 */1表示
#第2列表示小時1~23(0表示0點)
#第3列表示日期1~31
#第4列表示月份1~12
#第5列標識號星期0~6(0表示星期天)
#第6列要運行的命令
#每天1點30分鐘執行一次同步
30 1 * * *  /usr/bin/sh /root/Partitioning/partition_maintenance_all.sh

 

發佈了161 篇原創文章 · 獲贊 50 · 訪問量 60萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章