zabbix mysql 迁移 增加分区
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 迁移 增加分区的更多相关文章
- Zabbix历史数据库迁移 及分区
https://blog.csdn.net/hkyw000/article/details/78971201?utm_source=blogxgwz6
- zabbix使用mysql数据库 对表分区
zabbix删除历史数据 mysql 表自动分区.删除 ----2016年终总结 二 zabbix清理历史数据是个比较蛋疼的问题,尤其在监控数据较多时,一方面无法彻底释放历史数据空间,一方面数据库删除 ...
- MySQL每天自动增加分区
有一个表tb_3a_huandan_detail,每天有300W左右的数据.查询太慢了,网上了解了一下,可以做表分区.由于数据较大,所以决定做定时任务每天执行存过自动进行分区. 1.在进行自动增加分区 ...
- MySQL迁移[转]
http://dbarobin.com/2015/09/15/migration-of-mysql-on-different-scenes/ MySQL 迁移方案概览 MySQL 迁移无非是围绕着数据 ...
- MySQL的表分区详解
这篇文章主要介绍了MySQL的表分区,例如什么是表分区.为什么要对表进行分区.表分区的4种类型详解等,需要的朋友可以参考下 一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysq ...
- MySQL的表分区(转载)
MySQL的表分区(转载) 一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表 ...
- mysql管理---表分区
一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分 ...
- 删除mysql数据库中表分区数据
删除mysql数据库中表分区数据 zabbix 几个大表创建了分区,由于磁盘空间告警,特将3月前的分区给予删除. 1.查看表的数据占用磁盘空间情况 2.登录mysql中,查看表的分区情况. 3.删除表 ...
- MySQL针对Swap分区的运维注意点
Linux有很多很好的内存.IO调度机制,但是并不会适用于所有场景.对于运维人员来说,Linux比较让人头疼的一个地方是:它不会因为MySQL很重要就避免将分配给MySQL的地址空间映射到swap上. ...
随机推荐
- .netcore中无法使用System.Drawing --解决方案
问题重现: 无法正常使用 解决方法: 安装System.Drawing.Common的NuGet就能正常使用了 操作之后: 这个是.netcoe中的解决办法,.net framework解决方案中添 ...
- python之Selenium库的使用
一 什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并 ...
- js 设置 cookie
function setCookie(name,value){ var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Day ...
- matplotlib 知识点11:绘制饼图(pie 函数精讲)
饼图英文学名为Sector Graph,又名Pie Graph.常用于统计学模块. 画饼图用到的方法为:matplotlib.pyplot.pie( ) #!/usr/bin/env python # ...
- Ubuntu ls可以查看到文件,图形界面却看不到
解决方法:图形界面 Ctrl + h ,就可以显示出来隐藏文件
- PHP中文手册1
1.入门 关于换行 PHP 会在输出时自动删除其结束符 ?>后的一个换行.该功能主要是针对在一个页面中嵌入多段 PHP 代码或者包含了无实质性输出的 PHP 文件而设计,与此同时也造成了一些疑惑 ...
- Dos窗口一闪而过,如何查看错误?
问:Dos窗口一闪而过,如何查看错误? 答:在执行程序最后追加pause或者read(,),即可查看错误信息.
- *.rpm is not signed解决
1.# yum install qemu*报错如下:Package qemu-kvm-tools-0.12.1.2-2.113.el6.x86_64.rpm is not signed2.解决# vi ...
- 对CSRF的理解及防范
对CSRF的理解: 假定a是一个银行网站, b是一个危险网站. 当用户在访问a, 并且session并未结束的情况下, 去访问b网站, b网站就可以通过隐藏的url或者是表单来伪造用户对a的get或者 ...
- css3动画-加载中...
写几个简单的加载中动画吧. 像前面三种都是相当于几个不同的点轮流来播放同一动画:变大变小.css3里面有一个用于尺度变换的方法:scale(x,y):定义 2D 缩放转换,改变元素的宽度和高度. 第四 ...