我们的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. 一起了解 .Net Foundation 项目 No.4

    .Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. BenchmarkDotN ...

  2. n阶高精度乘法,(求高阶阶乘)

    先来复习一下小学数学 : 大家还记不记得小学算多位数的乘法是怎么算的? 卖个关子,大家一定要好好想想! 好了,别管到底还能不能想起来我们都要一块复习一下: 我们借助一下源自百度的图片 来复习下 相信大 ...

  3. web开发中 前端模板->JavaScript->Controller->JavaScript相应 的交互方式

    首先画张图了解当下流行的phpweb 数据交互套路: 1,模板与JavaScript的交互 给HTML标签赋予onlick事件,点击后触发js方法,jQuery收集页面信息,分析信息. 2,js与co ...

  4. 【visio】数据可视化 - 形状数据

    visio在对数据处理方面也是有一整套的设施,用户可以用visio存储.管理对象数据,利用数据驱动图形设计,让数据形象化,并在团队沟通的时候清晰地展示数据,沟通数据. 1.属性 每个图形都可以设置多个 ...

  5. 使用pyaudio播放无损音乐(wav)

    安装pyaudio sudo apt-get install python-pyaudio python3-pyaudio pip3 install pyaudio 执行第二步可能会遇到如下错误: 根 ...

  6. weinre 真机调试

    1.在任意文件夹 安装weinre cnpm -g install weinre 2.启动 weinre --httpPort 8009 --boundHost -all- 3.在你的页面中加入 本机 ...

  7. swing开发一个修改项目数据库连接参数配置文件

    我们在开发web项目中,经常有properties配置文件配置数据库连接参数,每次修改的时候还要去找到配置文件,感觉有点麻烦,就用swing做了个小工具修改参数,运行界面如下: =========== ...

  8. Visual Studio 2017进行Python开发环境的搭建,使用VS2017进行python代码的编写。

    Visual Studio 2017进行Python开发环境的搭建,使用VS2017进行python代码的编写. 前提:已经安装过VS2017且进行过配置. 第一部分: Python环境的搭建: 建议 ...

  9. HDU 6631 line symmetric 计算几何

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6631 题意:共\(T\)组数据,每组数据给出\(n\)个点的坐标,这\(n\)个点按顺序给出,相邻的点 ...

  10. Windows Server 2016安装.NET Framework 3.5

    1.打开“服务器管理器” 2.点击“添加角色和功能” 3.点击“下一步” 4.点击“下一步” 5.点击“下一步” 6.点击“下一步” 7.勾选“.NET Framework 3.5功能”,点击“下一步 ...