IEE分月表改造
IEE版本:5.1.40
需求:由于目前的IEE版本并不支持分区表,且删除历史数据效率很低,删除部分数据后空间释放方面也不理想。
现采用按月分表存放数据。这样卸载历史数据时,直接删除历史表即可。
改造步骤:
1.原表重命名为“原表名_YYYYMM”
YYYYMM代表当前年月,例如201505.
IEE查询某业务用户下的表名:
select table_name from information_schema.TABLES where table_type='BASE TABLE' and table_schema='db_name' ;
注:上面的db_name 替换为你实际的数据库名字.
原表重命名:
例如,原表是my_t1
重命名my_t1_201505
。
IEE重命名表的语法示例:
rename table my_t1 to my_t1_201505;
2.上传月表创建脚本到服务器
IEE按照月份来分表,不同月份数据入到不同的分月表中。
为了规范管理,统一将脚本上传到/root/get_ddl/
路径下,
每月底在IEE服务器上执行get_ddl.sh
脚本即可。
使用方法:
使用root用户
# cd /root/get_ddl
# sh get_ddl.sh
此脚本会自动获取本月相关表的表结构,在IEE库中建立下个月的表。如果新建表后有表结构修改,请在数据库中删除下月表后,重新执行脚本(请注意执行时间!)
附:IEE月表创建脚本
```
#!/bin/bash
#Usage: Create IEE Month Table, you can put this script in /root/get_ddl/.
#You need modify the IEE IP Address in the part of #1.1!
#ex: sh get_ddl.sh 2&> ./IEE_ddl.log
#Version: 2.0.0
#Author: O.o, Alfred Zhao
#Creation:2015-05-11
1. Define variable.
1.1 define your IEE IP Address.
host1="192.168.99.159"
pwd1="123321"
host2=""
pwd2=""
host3=""
pwd3=""
1.2 define other variable.
base=pwd
old_date=date +%Y%m
new_date=date +%Y%m --date='+1 month'
2. Create Folders
Directory: $base/tmp, $base/old_table_dir, $base/new_table_dir.
if [ -d tmp ]; then
echo 'go on'
else
echo 'mkdir tmp'
mkdir tmp
fi
if [ -d old_table_dir ]; then
echo 'go on'
else
echo 'mkdir old_table_dir'
mkdir old_table_dir
fi
if [ -d new_table_dir ]; then
echo 'go on'
else
echo 'mkdir new_table_dir'
mkdir new_table_dir
fi
3. Create tables
3.1 create parameter file table_name.
mysql-ib <$base/tmp/abc
select table_name from information_schema.TABLES where table_type='BASE TABLE' and table_schema='crnop' ;
exit
EOF
cat $base/tmp/abc|grep $old_date > $base/table_name
3.2 loop execute
while read Fileline
do
echo "use crnop;" > $base/tmp/$Fileline.sql
echo "show create table $Fileline" >> $base/tmp/$Fileline.sql
echo $Fileline > $base/tmp/Fileline
mysql-ib -N < $base/tmp/$Fileline.sql > $base/old_table_dir/tmp_$Fileline.sql
old_table_name=`cat $base/old_table_dir/tmp_$Fileline.sql | awk '{print $1}'`
sed 's/\\n//g' $base/old_table_dir/tmp_$Fileline.sql |awk '{$1="";print $0}' > $base/old_table_dir/old_$Fileline.sql
new_table_name_part=`awk -F'_' 'OFS="_"{$NF="";print}' $base/tmp/Fileline`
new_table_name=$new_table_name_part$new_date
echo "Old table name is :$old_table_name"
echo "New table name is :$new_table_name"
echo "use crnop;" > $base/new_table_dir/$new_table_name.sql
sed "s/$old_table_name/$new_table_name/g" $base/old_table_dir/old_$Fileline.sql >> $base/new_table_dir/$new_table_name.sql
if [ "$host1" != "" ]; then
echo "host1: $host1"
mysql-ib -u root -p$pwd1 -h$host1 < $base/new_table_dir/$new_table_name.sql
else
echo "host1 $host1 doesn't exist."
fi
if [ "$host2" != "" ]; then
echo "host2: $host2"
mysql-ib -u root -p$pwd2 -h$host2 < $base/new_table_dir/$new_table_name.sql
else
echo "host2 $host2 doesn't exist."
fi
if [ "$host3" != "" ]; then
echo "host3: $host3"
mysql-ib -u root -p$pwd3 -h$host3 < $base/new_table_dir/$new_table_name.sql
else
echo "host3 $host3 doesn't exist."
fi
done < $base/table_name
IEE分月表改造的更多相关文章
- 数据分表Mybatis Plus动态表名最优方案的探索
一.应用场景 大家在使用Mybatis进行开发的时候,经常会遇到一种情况:按照月份month将数据放在不同的表里面,查询数据的时候需要跟不同的月份month去查询不同的表. 但是我们都知道,Mybat ...
- Nodejs之MEAN栈开发(七)---- 用Angular创建单页应用(下)
上一节我们走通了基本的SPA基础结构,这一节会更彻底的将后端的视图.路由.控制器全部移到前端.篇幅比较长,主要分页面改造.使用AngularUI两大部分以及一些优化路由.使用Angular的其他指令的 ...
- mysql 案例 ~ 主从复制延迟之并行复制
一 概念说明 1 模型 并行复制是典型的生产者.消费者模式,Coordinator作为生产者,worker线程作为消费者. 2 Waiting for preceding transactio ...
- 记一次企业级爬虫系统升级改造(二):基于AngleSharp实现的抓取服务
爬虫系统升级改造正式启动: 在第一篇文章,博主主要介绍了本次改造的爬虫系统的业务背景与全局规划构思: 未来Support云系统,不仅仅是爬虫系统,是集爬取数据.数据建模处理统计分析.支持全文检索资源库 ...
- 四极耳机接线标准,N版耳机改造为i版耳机
(本文提到的都是3.5mm的耳机,2.5mm的没做验证) 现在的手机,以及大多数笔记本都开始使用“四极耳机”,也就是耳机上插头上有四个极.为了叙述方便,将耳机插头上的四个极从插头顶端到靠近电线的塑胶部 ...
- 1018Mysql分表分库
单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 单库多表 随着用户数量的增加,user表的数据量会越来越大,当数 ...
- SOA架构改造简单记录
前端支持PC.Mobile.H5三个平台 nginx做负载均衡,主备机,keepalived,检测脚本,master和slave切换时完成相关工作: web做集群,web仅仅是web,与后端服务模块采 ...
- 改造二叉树 (长乐一中模拟赛day2T1)
1.改造二叉树 [题目描述] 小Y在学树论时看到了有关二叉树的介绍:在计算机科学中,二叉树是每个结点最多有两个子结点的有序树.通常子结点被称作“左孩子”和“右孩子”.二叉树被用作二叉搜索树和二叉堆.随 ...
- 数据库分库分表(sharding)系列【转】
原文地址:http://www.uml.org.cn/sjjm/201211212.asp数据库分库分表(sharding)系列 目录; (一) 拆分实施策略和示例演示 (二) 全局主键生成策略 (三 ...
随机推荐
- XCode打包脚本
#!/bin/bash #for debug#请将 TARGET-NAME 改成项目的 TARGET 名称#放置于 .xcodeproj 同级目录中执行 target_name="xx&qu ...
- C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法
使用C#实现加减乘除算法经常被用作新手练习.本篇来分别体验通过委托.接口.匿名方法.泛型委托来实现. 使用委托实现 加减乘除拥有相同的参数个数.类型和返回类型,首先想到了使用委托实现. //创建一个委 ...
- HDU 3844 Mining Your Own Business
首先,如果图本来就是一个点双联通的(即不存在割点),那么从这个图中选出任意两个点就OK了. 如果这个图存在割点,那么我们把割点拿掉后图就会变得支离破碎了.对于那种只和一个割点相连的块,这个块中至少要选 ...
- AWVS漏洞测试-01节-AWVS的主要作用
AWVS漏洞工具简单介绍 AWVS全称: Acunetix Web Vulnerability Scanner 中文翻译就是:Acunetix网站攻击扫描器 扫描网站漏洞,通过网络爬虫Crawler的 ...
- dolby逝世:纪念一下
杜比公司的成立快50年了(1965),想想中国1965年在干啥.中国怎么可能有. 小科普一下,dolby的成功有3个时间点和技术,第一次是在英国开发了dolby B降噪技术,是用在早期的卡带降噪 ...
- Mac OSX系统下SVN客户端SCPlugin问题
装上SCPlugin后,Checkout老是出现这种错误: Server certificate verification failed: certificate issued for a diffe ...
- Java Arrays 排序
Java SDK中的排序分为两种情况: .对基础类型数组的排序,使用DualPivotQuicksort类 a.如果是对char.short数组的排序,因为byte.char.short分别为8bit ...
- 面向.Net程序员的dump分析
背景 Dump文件是进程的内存镜像.可以把程序的执行状态通过调试器保存到dump文件中.在 Windows 系统上, dump 文件分为内核 dump 和用户态 dump 两种.前者一般用来分析内核相 ...
- JavaScript 事件——“事件类型”中“复合事件”和“变动事件”的注意要点(转)
复合事件 复合事件是DOM3级事件中心添加的一类事件,用于处理IME的输入序列. compositionstart.compositionupdate.compositionend 复合事件有以下三中 ...
- 架设laravel
用laravel 架设的用户单点登录授权系统,git clone项目文件后,需要下面的方法初始化,纪录以供项目成员参考 错误信息:`Warning: require(/http/www.mywakav ...