oracle 基于时间错的 分区表
我们的zabbix 监控使用 oracle 作为存储, 因此,需要创建基于 基于时间戳的分区表,在此将操作过程记录如下
1. 创建,四个zabbix 最大的表的分区表
create table history_part
(
"ITEMID" NUMBER(20,0) NOT NULL ENABLE,
"CLOCK" NUMBER(10,0) DEFAULT '0' NOT NULL ENABLE,
"VALUE" NUMBER(20,4) DEFAULT '0.0000' NOT NULL ENABLE,
"NS" NUMBER(10,0) DEFAULT '0' NOT NULL ENABLE
)
PARTITION BY RANGE (CLOCK) INTERVAL (2592000)
(partition part_t01 values less than(1573401600));
CREATE TABLE "ZABBIX_SERVER"."HISTORY_UINT_PART"
( "ITEMID" NUMBER(20,0) NOT NULL ENABLE,
"CLOCK" NUMBER(10,0) DEFAULT '0' NOT NULL ENABLE,
"VALUE" NUMBER(20,0) DEFAULT '0' NOT NULL ENABLE,
"NS" NUMBER(10,0) DEFAULT '0' NOT NULL ENABLE
)
PARTITION BY RANGE (CLOCK) INTERVAL (2592000)
(partition part_t01 values less than(1573401600));
CREATE TABLE "ZABBIX_SERVER"."TRENDS_PART"
( "ITEMID" NUMBER(20,0) NOT NULL ENABLE,
"CLOCK" NUMBER(10,0) DEFAULT '0' NOT NULL ENABLE,
"NUM" NUMBER(10,0) DEFAULT '0' NOT NULL ENABLE,
"VALUE_MIN" NUMBER(20,4) DEFAULT '0.0000' NOT NULL ENABLE,
"VALUE_AVG" NUMBER(20,4) DEFAULT '0.0000' NOT NULL ENABLE,
"VALUE_MAX" NUMBER(20,4) DEFAULT '0.0000' NOT NULL ENABLE,
PRIMARY KEY ("ITEMID", "CLOCK"))
PARTITION BY RANGE (CLOCK) INTERVAL (2592000)
(partition part_t01 values less than(1573401600));
CREATE TABLE "ZABBIX_SERVER"."TRENDS_UINT_PART"
( "ITEMID" NUMBER(20,0) NOT NULL ENABLE,
"CLOCK" NUMBER(10,0) DEFAULT '0' NOT NULL ENABLE,
"NUM" NUMBER(10,0) DEFAULT '0' NOT NULL ENABLE,
"VALUE_MIN" NUMBER(20,0) DEFAULT '0' NOT NULL ENABLE,
"VALUE_AVG" NUMBER(20,0) DEFAULT '0' NOT NULL ENABLE,
"VALUE_MAX" NUMBER(20,0) DEFAULT '0' NOT NULL ENABLE,
PRIMARY KEY ("ITEMID", "CLOCK"))
PARTITION BY RANGE (CLOCK) INTERVAL (2592000)
(partition part_t01 values less than(1573401600));
第二步 迁移历史数据
本地不迁移了, 如果自己迁移,注意数据不能用
insert into select 方式,这样的数据量非常大,造成回滚段被占满
第三部 分区表和原始表 采用重命名方式对调
alter table trends rename to trends_nopart;
alter table trends_uint rename to trends_uint_nopart
alter table history rename to history_nopart;
alter table history_uint rename to history_uint_nopart
alter table trends_part rename to trends;
alter table trends_uint_part rename to trends_uint;
alter table history_part rename to history;
alter table history_uint_part rename to history_uint
第五 实际操作后,发现 还要建立history和history_uint的本地索引,删除历史数据
上面建表语句中发现,history 和history_uint 没有索引, 全表扫描,会造成 CPU 一直使用 100%, 以至于数据无法写入
创建2个表的索引:
CREATE INDEX idx_history_uint_part ON ZABBIX_SERVER.HISTORY_UINT(ITEMID, CLOCK) local;
CREATE INDEX idx_history_part ON ZABBIX_SERVER.HISTORY(ITEMID, CLOCK) local;
清空历史数据
truncate table history_nopart;
truncate table history_uint_nopart;
truncate table trends_nopart;
truncate table trends_uint_nopart;
oracle 基于时间错的 分区表的更多相关文章
- ORACLE调度之基于时间的调度(一)【weber出品】
一.调度的概述 这里我看到一篇对调度的概述觉得描述的比我好,但仅限于概述部分,其他部分我觉得我讲的比他好,于是发生以下事情: ************************华丽的转载******** ...
- Oracle之表空间基于时间点的恢复
记一次优化过程中:一次误操作,在不影响其他表空间的情况下:采用表空间基于时间点的恢复(TSPITR)方法恢复数据的过程. 1.TSPITR恢复原理 TSPITR目前最方便的方法是使用RMAN进行 ...
- 2019-9-9:渗透测试,基础学习,phpmyadmin getshell方法,基于时间的盲注,基于报错的注入,笔记
phpmyadmin getshell方法1,查看是否有导入导出设置 show global variables like '%secure-file-priv%';2,如果secure-file-p ...
- 【Oracle】rman基于时间点恢复
rman基于时间点恢复 场景: 由于某研究的误操作,导致财务模块的数据丢失,如何使用rman基于时间点恢复数据. 思路 1.克隆数据库的虚拟机,直接对数据库的数据进行恢复 RMAN> shutd ...
- 基于时间的 SQL注入研究
SQL注入攻击是业界一种非常流行的攻击方式,是由rfp在1998年<Phrack>杂志第54期上的“NT Web Technology Vulnerabilities”文章中首次提出的.时 ...
- Oracle 基于用户管理恢复的处理
================================ -- Oracle 基于用户管理恢复的处理 --================================ Oracle支持多种 ...
- Oracle大表改为分区表及表空间切换方案
Oracle大表改为分区表及表空间切换方案 一. 背景 由于之前数据库表和索引放在一个表空间导致表空间数据文件增长太快,文件数量即将达到Oracle表空间的限制,需要对表(没有分 ...
- 【RMAN】TSPITR--RMAN表空间基于时间点的自动恢复
[RMAN]TSPITR--RMAN表空间基于时间点的自动恢复 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...
- mysql基于“时间”的盲注
无需页面报错,根据页面响应时间做判断! mysql基于时间的盲注 =================================================================== ...
随机推荐
- C语言随笔3:指针定义、数据在地址中的大小端排列
指针变量:用于存放另一个变量的地址 (指针变量所占空间大小由操作系统决定32/64位 4/8字节 // 声明且定义:int *p=&a: 声明.定义:int *p: p= &a: ...
- import matplotlib.pyplot as plt出错
>>>import matplotlib.pyplot as plt /usr/lib/python2.7/dist-packages/matplotlib/font_manager ...
- Python(二):做题函数记录
一,10进制 转 2,8,16进制 bin(<int>) ,oct(<int>),hex(<int>) 输出示例 '0b10011010010' '0o2322' ...
- cpu io disk mem监控 python
import psutil def cpu_information(): #scputimes(user=26.9, nice=0.1, system=50.27, idle=8551.89, iow ...
- Selenium元素定位之页面检测技巧
我们在进行web自动化测试的时候进行XPath或者CSS定位,需要检测页面元素定位是否正确,如果用脚本去检测,那么效率是极低的. 一般网上推选装额外的插件来实现页面元素定位检测 如:firebug. ...
- iOS-image图片旋转方向
https://blog.csdn.net/qq_36557133/article/details/85760469 最近在做项目的时候发现资源包内的图片的方向不对,但也不想让UI切一个新图,所以需要 ...
- Presto入门介绍
(一)背景 MapReduce不能满足大数据快速实时adhoc查询计算的性能要求,Facebook2012年开发,2013年开源 (二)是什么 基于内存的并行计算,Facebook推出的分布式SQL交 ...
- Uva 136 丑数
n^2暴力就完事,但是上限要高,不然就算不到对应的1500,刘汝佳的写法更好. #include <bits/stdc++.h> using namespace std; const in ...
- 让 typora和word一样好用
让 typora和word一样好用 :https://github.com/itcastWsy/typora_copy_images typora是一款支持实时预览的markdown编辑器,作者在使 ...
- Python日期
1. datatime from datetime import datetime, date now = datetime.now() print(now) # 2020-01-20 01:24:0 ...