Zabbix优化之分区操作_第1页
Zabbix优化之分区操作_第2页
Zabbix优化之分区操作_第3页
Zabbix优化之分区操作_第4页
Zabbix优化之分区操作_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 登录MySQL数据库登录MySQL,进入zabbix数据库,命令参考如下:$ mysql -uroot -p -h127.0.0.1mysql> use zabbix2. 查看是否支持分区对于5.6以及以后版本的MySQL数据库,采用show plugins来查看是否支持分区,如果partition处于 active状态,则支持分区,否则,必须加载该插件。命令参考如下:mysql> show plugins;3. 分区操作1233.1 分区操作方式对zabbix数据库表进行分区操作,一般可以采用两种方式:² 使用MySQL存储过程² 使用SQL脚本因为存储

2、过程在调试时,一旦遇到任何问题,调试可能会更复杂,所以,在这里采用SQL脚本的方式来实现。3.2 分区类型与策略根据数据库表格中的数据特征,对下述数据库表,按日或者按月两种类型,分别进行分区:² 按日分区4 history4 history_log4 history_str4 history_text4 history_uint² 按月分区4 acknowledges4 alerts4 auditlog4 events4 service_alarms4 trends4 trends_uint3.3 主键/唯一索引管理因MySQL内部的限制,在正式分区前,一些主键、唯一索引需

3、要删除,用非唯一索引来代替。Zabbix 2.2及以后的版本中,如zabbix 3.0.2,下述唯一索引需删除,参考命令如下:mysql> alter table history_log drop primary key, add index history_log_0 (id);mysql> alter table history_log drop key history_log_2;mysql> alter table history_text drop primary key, add index history_text_0(id);mysql> alter t

4、able history_text drop key history_text_2;mysql> alter table acknowledges drop primary key, add key acknowledges_0 (acknowledgeid);mysql> alter table alerts drop primary key, add key alerts_0 (alertid);mysql> alter table auditlog drop primary key, add key auditlog_0 (auditid);mysql> alte

5、r table events drop primary key, add key events_0 (eventid);mysql> alter table service_alarms drop primary key, add key service_alarms_0 (servicealarmid);3.4 外键管理Zabbix 2.0及以后的版本中,如zabbix 3.0.2,下述外键需删除,参考命令如下:mysql> alter table acknowledges drop foreign key c_acknowledges_1, drop foreign key c

6、_acknowledges_2;mysql> alter table alerts drop foreign key c_alerts_1, drop foreign key c_alerts_2, drop foreign key c_alerts_3, drop foreign key c_alerts_4;mysql> alter table auditlog drop foreign key c_auditlog_1;mysql> alter table service_alarms drop foreign key c_service_alarms_1;mysql&

7、gt; alter table auditlog_details drop foreign key c_auditlog_details_1;3.5 确定最小时钟确定分区时,需查询该数据库表的分区字段的最小时钟,以history_uint表示例,如下:mysql> select from_unixtime(min(clock) from history_uint;3.6 添加分区根据上一部操作中的最小时间,对要进行分区划分的表进行分区划分,以history_uint表示例,如下:mysql> alter table history_uint partition by range (

8、clock)( partition p2016_06_21 values less than (unix_timestamp("2016-06-22 00:00:00"), partition p2016_06_22 values less than (unix_timestamp("2016-06-23 00:00:00"), partition p2016_06_23 values less than (unix_timestamp("2016-06-24 00:00:00"), partition p2016_06_24 val

9、ues less than (unix_timestamp("2016-06-25 00:00:00"), partition p2016_06_25 values less than (unix_timestamp("2016-06-26 00:00:00"), partition p2016_06_26 values less than (unix_timestamp("2016-06-27 00:00:00"), partition p2016_06_27 values less than (unix_timestamp(&qu

10、ot;2016-06-28 00:00:00"), partition p2016_06_28 values less than (unix_timestamp("2016-06-29 00:00:00"), partition p2016_06_29 values less than (unix_timestamp("2016-06-30 00:00:00"), partition p2016_06_30 values less than (unix_timestamp("2016-07-01 00:00:00");3.7

11、 SQL脚本附件对于上述规划中的所有表。按要求进行分区,其参考脚本如下:4. 分区管理在上述的操作中,按日分区的表,其分区日期截止到2016年6月30日,按月分区的表,其分区月份截止到到2016年12月。一旦超过上述日期后,则插入数据后,将因没有合适的分区来存储,从而产生错误无法插入数据,因此到期前,需扩展分区。扩展分区可以采用手工扩展和自动扩展两种方式。44.1 手动管理分区(1) 对于按日分区的表,手工增加下述分区,可以一次性增加任意多个日分区,参考SQL如下:mysql> alter table history_uint add partition (partition p2016

12、_07_01values less than (unix_timestamp("2016-07-02 00:00:00");mysql> alter table history_text add partition (partition p2016_07_01 values less than (unix_timestamp("2016-07-02 00:00:00");mysql> alter table history_str add partition (partition p2016_07_01 values less than (u

13、nix_timestamp("2016-07-02 00:00:00");mysql> alter table history_log add partition (partition p2016_07_01 values less than (unix_timestamp("2016-07-02 00:00:00");mysql> alter table history add partition (partition p2016_07_01 values less than (unix_timestamp("2016-07-02

14、 00:00:00");(2) 对于按月分区的表,手工增加下述分区,可以一次性增加任意多个月分区,参考SQL如下:mysql> alter table trends_uint add partition (partition p2017_01 values less than (unix_timestamp("2017-02-01 00:00:00");mysql> alter table trends add partition (partition p2017_01 values less than (unix_timestamp("20

15、17-02-01 00:00:00");mysql> alter table service_alarms add partition (partition p2017_01 values less than (unix_timestamp("2017-02-01 00:00:00");mysql> alter table events add partition (partition p2017_01 values less than (unix_timestamp("2017-02-01 00:00:00");mysql>

16、 alter table auditlog add partition (partition p2017_01 values less than (unix_timestamp("2017-02-01 00:00:00");mysql> alter table alerts add partition (partition p2017_01 values less than (unix_timestamp("2017-02-01 00:00:00");mysql> alter table acknowledges add partition

17、(partition p2017_01 values less than (unix_timestamp("2017-02-01 00:00:00");(3) 对于历史数据,如果无需再保留,则可以删除对应分区,参考SQL如下:mysql> alter table history drop partition p2016_06_21;mysql> alter table history_log drop partition p2016_06_21;mysql> alter table history_str drop partition p2016_06_2

18、1;mysql> alter table history_text drop partition p2016_06_21;mysql> alter table history_uint drop partition p2016_06_21;mysql> alter table acknowledges drop partition p2016_06;mysql> alter table alerts drop partition p2016_06;mysql> alter table auditlog drop partition p2016_06;mysql&g

19、t; alter table events drop partition p2016_06;mysql> alter table service_alarms drop partition p2016_06;mysql> alter table trends drop partition p2016_06;mysql> alter table trends_uint drop partition p2016_06;4.2 自动管理分区4.2.1 管理策略自动分区管理,即将上述手工执行的脚本,实现自动执行。自动执行的方式一般有两种,采用任意一种即可:² 操作系统crontab调度脚本² MySQL自身的调度任务在这里,采用MySQL自身的调度任务来实现。其自动管理规则为:4 按日分区的表² 自动创建: 明天数据保存的分区² 自动删除: 15天以前对应数据保存的分区4 按月分区的表² 自动创建: 下一个月数据保存的分区² 自动删除: 3个月以前对应数据保存的分区4.2.2 确认是否支持任务调度首先需确认是否支持任务调用,使用SHOW GLOBAL VARIABLES来查看是否支持任务调度,如果为ON,则表示支持。命令参考如下:mysql> SHOW GLOBAL VARIABL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论