我们的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 基于时间错的 分区表的更多相关文章

  1. ORACLE调度之基于时间的调度(一)【weber出品】

    一.调度的概述 这里我看到一篇对调度的概述觉得描述的比我好,但仅限于概述部分,其他部分我觉得我讲的比他好,于是发生以下事情: ************************华丽的转载******** ...

  2. Oracle之表空间基于时间点的恢复

    记一次优化过程中:一次误操作,在不影响其他表空间的情况下:采用表空间基于时间点的恢复(TSPITR)方法恢复数据的过程. 1.TSPITR恢复原理    TSPITR目前最方便的方法是使用RMAN进行 ...

  3. 2019-9-9:渗透测试,基础学习,phpmyadmin getshell方法,基于时间的盲注,基于报错的注入,笔记

    phpmyadmin getshell方法1,查看是否有导入导出设置 show global variables like '%secure-file-priv%';2,如果secure-file-p ...

  4. 【Oracle】rman基于时间点恢复

    rman基于时间点恢复 场景: 由于某研究的误操作,导致财务模块的数据丢失,如何使用rman基于时间点恢复数据. 思路 1.克隆数据库的虚拟机,直接对数据库的数据进行恢复 RMAN> shutd ...

  5. 基于时间的 SQL注入研究

    SQL注入攻击是业界一种非常流行的攻击方式,是由rfp在1998年<Phrack>杂志第54期上的“NT Web Technology Vulnerabilities”文章中首次提出的.时 ...

  6. Oracle 基于用户管理恢复的处理

    ================================ -- Oracle 基于用户管理恢复的处理 --================================ Oracle支持多种 ...

  7. Oracle大表改为分区表及表空间切换方案

    Oracle大表改为分区表及表空间切换方案 一.            背景 由于之前数据库表和索引放在一个表空间导致表空间数据文件增长太快,文件数量即将达到Oracle表空间的限制,需要对表(没有分 ...

  8. 【RMAN】TSPITR--RMAN表空间基于时间点的自动恢复

    [RMAN]TSPITR--RMAN表空间基于时间点的自动恢复 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...

  9. mysql基于“时间”的盲注

    无需页面报错,根据页面响应时间做判断! mysql基于时间的盲注 =================================================================== ...

随机推荐

  1. MyBatis(2)——增删改查

    增删改查: 1.在实体类的映射文件中增加insert.update.delete标签与数据库语句,例如 <!-- 会去获取到对应的实体类的getter方法 --> <insert i ...

  2. vue项目依赖的安装

    npm install element-ui --save npm install vuex  --save npm install axios  --save npm install moment ...

  3. Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:

    创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...

  4. 安卓开发:图片的显示Mode

    安卓开发中将图片放置在ImageView中展示,涉及到图片显示的模式,跟iOS开发中UIView的contentMode属性是一个意思,在安卓UI元素中使用的属性是scaleType,其中枚举值的效果 ...

  5. Ubuntu16 nginx 配置 Let's Encrypt 免费ssl

    每篇一句 Some of us get dipped in flat, some in satin, some in gloss. But every once in a while you find ...

  6. 学习笔记(25)- NLP的几个概念

    NLP的几个概念 从技术研究的角度,简单介绍自然语言处理的几个概念 1. 对抗学习 主要指对抗生成网络. 2个主要构成:判别器.生成器 判别模型尽可能提取特征正确率增加的模型,生成模型尽可能" ...

  7. dropna fillna

    # NaN 浮点类型   np.nan+1 =>nan Python type(None)  // NoneType类型 不能参与运算 import pandas as pd from pand ...

  8. HDU 1312 Red and Black(经典DFS)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 一道很经典的dfs,设置上下左右四个方向,读入时记下起点,然后跑dfs即可...最后答 ...

  9. mui 进行父子页面传值以及接收

    1.在父级页面进行传值 (my) mui.openWindow({ url: 'a.html', id: 'a', extras: { my: 'listpub' },}); 2.自己页面接收值 mu ...

  10. UIDocumentPickerViewController和UIDocumentInteractionController

    UIDocumentPickerViewController和UIDocumentInteractionController UIDocumentPickerViewController 补充一下,U ...