1.zabbix mysql 目录清单

--basedir=/usr/local/web/mysql
--datadir=/data/mysql
--log-error=/data/mysql/syscent.bc.com.err
--pid-file=/data/mysql/syscent.bc.com.pid
--socket=/dev/shm/mysql.sock --port=3306
Zabbix 数据文件目录
/data/mysql/zabbix Source server:192.168.1.2 3306
Target server:192.168.1.4 3306

2.关闭zabbix

/usr/local/zabbix/sbin/zabbix_server stop

3. zabbix配置文件修改

/usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=
DBPort=3306
ListenIP=192.168.1.4

4.关闭mysql

Service mysqld stop

5. 数据文件拷贝

Scp /data/mysql/*    xxx.xxx.xxx.xxx:/Mysql数据文件目录

或者使用 

Innobackupex迁移

6. 启动Mysql

配置文件修改:
innodb_flush_log_at_trx_commit=0 or 2 建议0
Sync_binlog=1000
Mysqld_safe --defaults-file=/usr/local/mysql/my3306.cnf &

7. Mysql数据表导出

mysqldump -uroot -p -P3306 -h127.0.0.1 --databases zabbix --tables history>history.sql
mysqldump -uroot -p -P3306 -h127.0.0.1 --databases zabbix --tables history_str>history_str.sql
mysqldump -uroot -p -P3306 -h127.0.0.1 --databases zabbix --tables history_text>history_text.sql
mysqldump -uroot -p -P3306 -h127.0.0.1 --databases zabbix --tables history_uint>history_uint.sql

8.Mysql创建分区表

History
History_str
History_uint
History_text 改成月分区表 CREATE TABLE history_uint(
itemid bigint(20) unsigned NOT NULL,
clock int(11) NOT NULL DEFAULT '',
value bigint(20) unsigned NOT NULL DEFAULT '',
Ns int(11) NOT NULL DEFAULT '',
KEY history_uint_1 (itemid,clock)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY RANGE(clock)
(
PARTITION p201708 VALUES LESS THAN (1504195200)
ENGINE = INNODB,
PARTITION p201709 VALUES LESS THAN (1506787200)
ENGINE = INNODB,
PARTITION p201710 VALUES LESS THAN (1509465600)
ENGINE = INNODB);
DATA DIRECTORY 根据请况是否添加
分区可以创建到2020,暂时不添加maxvalue
定时任务添加分区 History
History_str
History_uint
History_text
分区操作同上

9.导入分区表

将history.sql,history_str.sql,history_text.sql,history_uint.sql  drop table语句,以及create table 语句删除
然后执行语句,导入数据库

10.启动zabbix

/usr/local/zabbix/sbin/zabbix_server start

11.定时任务删除历史数据

每月3号删除上上月分区,zabbix最大为2月历史数据
10月3号,删除8月分区,增加11月分区 #!/bin/bash
#add by sk
User="zabbix"
Passwd="zabbix"
#zabbix保留1月数据
Date=`date -d "-2 months" +%Y%m`
#添加分区使用
Date_a=`date -d "2 months" +%Y%m`
Date_b=`date -d "1 months" +%Y%m`
Date_t=`date -d "2 months" +%Y-%m`-01
v_time=`date +%s -d $Date_t` $(which mysql) -u${User} -p${Passwd} -Dzabbix -e "
ALTER TABLE history DROP PARTITION p$Date;
ALTER TABLE history_str DROP PARTITION p$Date;
ALTER TABLE history_text DROP PARTITION p$Date;
ALTER TABLE history_uint DROP PARTITION p$Date;
#添加分区如下:
alter table history add partition (partition p$Date_b VALUES LESS THAN ($v_time) ENGINE = INNODB);
alter table history_str add partition (partition p$Date_b VALUES LESS THAN ($v_time) ENGINE = INNODB);
alter table history_text add partition (partition p$Date_b VALUES LESS THAN ($v_time) ENGINE = INNODB);
alter table history_uint add partition (partition p$Date_b VALUES LESS THAN ($v_time) ENGINE = INNODB);
" 脚本参考MYSQL操作语句:
ALTER TABLE history_uint DROP PARTITION p201709;
alter table history_uint add partition (partition p201712 VALUES LESS THAN (1514736000) ENGINE = INNODB);

12.改成分区表原因

历史表数据删除耗费时间
Delete from history_uint where clock<
如果添加optimize table时间就更长
History_uint delete+optimize 保守3小时
删除分区时间较快

zabbix mysql 迁移 增加分区的更多相关文章

  1. Zabbix历史数据库迁移 及分区

    https://blog.csdn.net/hkyw000/article/details/78971201?utm_source=blogxgwz6

  2. zabbix使用mysql数据库 对表分区

    zabbix删除历史数据 mysql 表自动分区.删除 ----2016年终总结 二 zabbix清理历史数据是个比较蛋疼的问题,尤其在监控数据较多时,一方面无法彻底释放历史数据空间,一方面数据库删除 ...

  3. MySQL每天自动增加分区

    有一个表tb_3a_huandan_detail,每天有300W左右的数据.查询太慢了,网上了解了一下,可以做表分区.由于数据较大,所以决定做定时任务每天执行存过自动进行分区. 1.在进行自动增加分区 ...

  4. MySQL迁移[转]

    http://dbarobin.com/2015/09/15/migration-of-mysql-on-different-scenes/ MySQL 迁移方案概览 MySQL 迁移无非是围绕着数据 ...

  5. MySQL的表分区详解

    这篇文章主要介绍了MySQL的表分区,例如什么是表分区.为什么要对表进行分区.表分区的4种类型详解等,需要的朋友可以参考下 一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysq ...

  6. MySQL的表分区(转载)

    MySQL的表分区(转载) 一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表 ...

  7. mysql管理---表分区

    一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分 ...

  8. 删除mysql数据库中表分区数据

    删除mysql数据库中表分区数据 zabbix 几个大表创建了分区,由于磁盘空间告警,特将3月前的分区给予删除. 1.查看表的数据占用磁盘空间情况 2.登录mysql中,查看表的分区情况. 3.删除表 ...

  9. MySQL针对Swap分区的运维注意点

    Linux有很多很好的内存.IO调度机制,但是并不会适用于所有场景.对于运维人员来说,Linux比较让人头疼的一个地方是:它不会因为MySQL很重要就避免将分配给MySQL的地址空间映射到swap上. ...

随机推荐

  1. Poj 2096 (dp求期望 入门)

    / dp求期望的题. 题意:一个软件有s个子系统,会产生n种bug. 某人一天发现一个bug,这个bug属于某种bug,发生在某个子系统中. 求找到所有的n种bug,且每个子系统都找到bug,这样所要 ...

  2. Clion下载安装使用教程(Win+MinGW)

    Clion Jetbrains旗下产品之一,主要用来开发C/C++,软件相比VS来说轻巧很多 一.Clion下载(Crack...) 链接:https://www.bicfic.com/ 你懂的,全英 ...

  3. Android Studio、adb

    Android Studio:一个超级全的教程,mark~ https://www.cnblogs.com/laughingQing/p/5848425.html adb命令: https://blo ...

  4. python3+Appium自动化07-滑动操作以及滑动方法封装

    滑动解析 滑动主要分为:水平滑动.垂直滑动.任意方向滑动 滑动轨迹 在Appium中模拟用户滑动操作需要使用swipe方法,该方法定义如下: def swipe(self, start_x, star ...

  5. (转)SELinux是什么意思,如何关闭?Linux下的防火墙用什么命令打开?

    SELinux是什么意思,如何关闭?Linux下的防火墙用什么命令打开? 原文:http://blog.csdn.net/hhcccchh/article/details/12995539 SELin ...

  6. webservice初识,SOAP1.1版本

    客户端与服务端模式,非web端发布 1.1      [Jax-ws第一个例子] 1.1.1     第一步:服务端开发 编写SEI(Service Endpoint Interface),SEI在w ...

  7. Maven的安装以及介绍

    附录:带阿里源的maven用户设置文件-settings.xml <?xml version="1.0" encoding="UTF-8"?> &l ...

  8. 打印流-PrintStream

    打印流-PrintStream java.io.PrintStream为其他输出流添加了功能,使其他的流能够更方便的打印各种数据值表现形式 PrintStream特点: 1.只负责数据的输入,不负责数 ...

  9. Quartz.NET持久化

    Quartz.NET所用到的数据库表结构 官方提供的各种数据库脚本:https://github.com/quartznet/quartznet/tree/master/database/tables ...

  10. chart.js 使用方法 特别说明不是中文的

    以上是一个饼图的案例,其他统计类型查看文档 http://www.chartjs.org/docs/latest/charts/doughnut.html 注意看域名 chartjs.org  不是 ...