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. C# AD 验证登陆

    using System.DirectoryServices; using System.DirectoryServices.AccountManagement; using (DirectoryEn ...

  2. P2375 [NOI2014]动物园 KMP

    好,暴力能拿$50pts\space qwq$ 暴力的思路就是一直跳$nxt[j]$,直到它的长度小于串的一半,然后开始计数,当然要接着跳$nxt[j]$ 正解:考虑没有长度要求的(不要求不重合)公共 ...

  3. 030 Substring with Concatenation of All Words 与所有单词相关联的字串

    给定一个字符串 s 和一些长度相同的单词 words,找出 s 与 words 中所有单词(words 每个单词只出现一次)串联一起(words中组成串联串的单词的顺序随意)的字符串匹配的所有起始索引 ...

  4. matlab 常用函数(数学建模-复习)

    常用函数 fscanf(fid, '%c', inf) -> 直接读取整个文件, 因为inf表示无穷 strtrim char(num): 将num转为ASCII字符 strtok(conten ...

  5. 前端-页面性能调试:Hiper

    前端-页面性能调试:Hiper   我们写单页面应用,想看页面修改后性能变更其实挺繁琐的.有时想知道是「正优化」还是「负优化」只能靠手动刷新查看network.而Hiper很好解决了这一痛点(其实Hi ...

  6. Java 记录日志

    Java9的日志级别: ALL 最低级别,系统会输出所有的日志信息,会生成大量的·.冗余的日志 TRACE 输出系统的各种跟踪信息,会生成大量的·.冗余的日志 DEBUG 输出调试信息,会生成较多的日 ...

  7. 粗看ES6之变量

    标签: javascript var定义变量面临的问题 可以重复定义 无法限制变量不可修改 无块级作用域 ES6变量定义升级 新增let定义变量 新增const定义常量 let特性 有块级作用域 不可 ...

  8. iOS .Crash文件分析处理办法 (利用symbolicatecrash工具处理)

    崩溃分析方式:命令行解析Crash文件 通过Mac自带的命令行工具解析Crash文件需要具备三个文件 symbolicatecrash,Xcode自带的崩溃分析工具,使用这个工具可以更精确的定位崩溃所 ...

  9. Pixel XL 刷机及Root详细方法

    需要准备的文件: 获取 Google USB 驱动程序并安装 https://developer.android.com/studio/run/win-usb 下载Google官方镜像文件 [8.1. ...

  10. 不该被忽视的CoreJava细节(三)

    一.不该被遗忘的移位位运算 本文主要介绍移位运算(Shift Operation), 适当介绍一下其它相关的位运算. 甭说计算机刚发明那会,就连21世纪初那段日子,计算机内存都是KB/MB计算的.编写 ...