一、 信息生命周期管理简介

1. 概念

ILM(Information lifecycle management)这个概念诞生于上世纪60-70年代,由StorageTek(2010年被Oracle收购) 提出,EMC推广,是指从一个信息系统数据及其相关元数据产生和初始存储阶段到最后过时被删除时的一套综合管理方法。

可以根据各项数据标准(常用性、重要性等)自动把数据归到各层,并且自动完成数据在各层之间的移动。

2. 产生背景

  • 信息爆炸增长
  • 成本限制
  • 信息价值
  • 法律法规要求...

二、 Oracle中的ILM

1. 12c前的实现方法

① 实现步骤

  • 定义数据层级,确定分区策略 -- 按常用性、隐私性、重要性等分层
  • 为各数据等级确定存储层策略
  • 创建数据访问和移动策略
  • 定义和实行复杂策略

Data Retention(数据保留,保证某些数据未被删除 -- 用户权限限制)

Immutability(不变性,保证某些数据未被修改过 -- 证书与数字签名)

Privacy(数据隐私 -- VPD、数据加密)

Auditing(标准审计、细粒度审计)

Expiration(数据过期 -- 移动到归档数据库、数据删除)

② 缺点

  • 按常用性分级时,须由DBA判断哪些是冷数据
  • 分区移动策略实现较复杂
  • 分区移动不支持online操作
  • 分区维护(move,drop,truncate分区等)会导致索引失效

③ 实现测试

创建表空间
CREATE TABLESPACE ILM_HIGH_COST
DATAFILE '/data/ilm_high_cost.dbf' SIZE 1G
AUTOEXTEND ON NEXT 1G MAXSIZE 30G;CREATE  TABLESPACE ILM_LOW_COST
DATAFILE '/data/ilm_low_cost.dbf' SIZE 1G
AUTOEXTEND ON NEXT 10G MAXSIZE 30G;创建测试用户并授权
create user ilmtest identified by ilmtest default TABLESPACE ILM_HIGH_COST;
grant connect,resource to ilmtest;ALTER USER ilmtest QUOTA UNLIMITED ON ILM_HIGH_COST;
ALTER USER ilmtest QUOTA UNLIMITED ON ILM_LOW_COST;建分区表
CREATE TABLE ilmtest.ilm_table( ID VARCHAR2(120) primary key, time NUMBER(18,0)) partition by range(time)
interval (86400000) --一天
(partition p_day_1 values less than (1535731200000) --2018-09-01 00:00:00
);建索引
CREATE INDEX ilmtest.ilm_table_N2 ON ilmtest.ilm_table(time);导入测试数据查看分区情况
select table_name,partition_name from dba_tab_partitions where table_name='ILM_TABLE';手动移动分区,注意11g会锁表,move后索引会失效
ALTER TABLE ilmtest.ilm_table MOVE PARTITION SYS_P929 TABLESPACE ilm_low_cost COMPRESS;创建存储过程及job定期移动分区
略

2. 12c实现方法

① 12c的改进

  • 热图 HEAT MAP
  • 自动数据优化ADO
  • 在线move分区(支持online move操作且move后索引不失效)

② 热图

用于追踪Oracle DB数据访问(段级)及修改情况(行级和段级)

特点:

  • 启用简单,不需重启

ALTER SYSTEM SET HEAT_MAP = ON;

启用后数据访问情况将被追踪(system及sysaux中对象除外),启/禁用热图同时会启/禁用ADO

  • “热图”跟踪

跟踪数据段数据查询及修改时间

跟踪数据块修改时间

  • 全面性

区分索引lookup访问及全表扫描访问

自动排除维护任务访问:统计信息收集、DDL、备份、表重定义等

  • 高性能

对象级无成本

块级成本<< 5%

相关视图:

V$HEAT_MAP_SEGMENT – 展示实时段访问信息

ALL_,DBA_, USER_HEAT_MAP_SEGMENT – 展示最近段访问信息(V$视图每小时写入一次)

ALL_, DBA_,USER_HEAT_MAP_SEG_HISTOGRAM – 展示段访问信息

DBA_HEATMAP_TOP_OBJECTS – 展示最活跃对象

DBA_HEATMAP_TOP_TABLESPACES – 展示最活跃表空间

DBMS_HEAT_MAP包提供更为灵活的信息展示,支持查看块、区、段、对象、表空间级热图信息,ADO用其过滤“热”块

SELECT * FROM TABLE(DBMS_HEAT_MAP.BLOCK_HEAT_MAP('SH','SALES')) WHERE ROWNUM < 10;SELECT SUBSTR(tablespace_name,1,16) Tblspace, min_writetime, min_ftstime
FROM TABLE(DBMS_HEAT_MAP.TABLESPACE_HEAT_MAP('EXAMPLE'));SELECT relative_fno, block_id, blocks, TO_CHAR(min_writetime, 'mm-dd-yy hh-mi-ss') Mintime,
TO_CHAR(max_writetime, 'mm-dd-yy hh-mi-ss') Maxtime,
TO_CHAR(avg_writetime, 'mm-dd-yy hh-mi-ss') Avgtime
FROM TABLE(DBMS_HEAT_MAP.EXTENT_HEAT_MAP('SH','SALES')) WHERE ROWNUM < 10;SELECT SUBSTR(owner,1,10) Owner, SUBSTR(segment_name,1,10) Segment,
SUBSTR(partition_name,1,16) Partition, SUBSTR(tablespace_name,1,16) Tblspace,
segment_type, segment_size FROM TABLE(DBMS_HEAT_MAP.OBJECT_HEAT_MAP('SH','SALES'));

③ 自动数据优化 ADO

ADO根据热图收集的信息,按照用户定义的策略自动压缩和在不同层级存储间移动数据

ADO 策略

压缩策略

create table t1 (C1 number, C2 varchar2(9)) partition by list(C2)
(partition p1 values(‘clerk’, ‘salesman’) ilm add policy column
store compress for archive high segment after 3 months of creation);ALTER TABLE sales MODIFY PARTITION sales_q1_2002
ILM ADD POLICY ROW STORE COMPRESS ADVANCED ROW
AFTER 30 DAYS OF NO MODIFICATION;

存储层策略

默认按表空间使用率(85%,25%)移动

ALTER TABLE sales MODIFY PARTITION sales_q1_1999
ILM ADD POLICY TIER TO my_low_cost_sales_tablespace;

图中设置TBS_PERCENT_FREE=55

自定义表空间使用率达到多少时移动

BEGIN
DBMS_ILM_ADMIN.CUSTOMIZE_ILM(DBMS_ILM_ADMIN.TBS_PERCENT_USED, 85):
DBMS_ILM_ADMIN.CUSTOMIZE_ILM(DBMS_ILM_ADMIN.TBS_PERCENT_FREE, 25):
END;

在上例中,当表空间达到用户定义的阈值 (85%) 时,数据库会自动将表空间中的极冷表/分区移至目标表空间(注意不会检查目标表空间剩余存储空间),直到表空间配额至少有25%的可用百分比。

可定义按函数策略移动(表空间级不支持)

CREATE OR REPLACE FUNCTION NOT_MODIFIED_CUSTOM (objn IN NUMBER) RETURN BOOLEAN
IS
days number:=0;
begin
select max(sysdate - SEGMENT_WRITE_TIME) into days from user_heat_map_segment where subobject_name = (select subobject_name from user_objects where object_id=objn);
-- For DEBUG purposes only
-- insert into ado_table select object_id,object_name,subobject_name,days, sysdate from user_objects where object_id=objn;
-- commit;
if (days>1) then return true; else return false; end if;
end;
/ALTER TABLE t MODIFY PARTITION P1 ILM ADD POLICY TIER TO ILM_LOW_COST ON NOT_MODIFIED_CUSTOM;

执行原理图

由于HEAP MAP在内存中的数据每一小时才写入到磁盘上,所以查看DBA_HEAT_MAP_SEGMENT一般是有延迟的。 实际数据存放在HEAT_MAP_STAT$字典基表上

3. 12.2新特性

① ADO支持In-Memory存储

ALTER TABLE sales_2015 ILM ADD POLICY NO INMEMORY AFTER 7 DAYS OF NO ACCESS;

② ADO和heat map支持多租户架构,可在PDB中单独设置

https://oracle-base.com/articles/12c/heat-map-ilm-ado-12cr2

③ ADO支持按时间条件指定tier策略(但表空间必须为只读)

ALTER TABLE invoices MODIFY PARTITION invoices_2016_q4 ILM ADD POLICY TIER TO slow_storage_ts READ ONLY SEGMENT AFTER 6 MONTHS OF NO ACCESS;

4. 禁用和删除ILM ADO 策略

/* You can disable or delete an ADO policy in a table with the following */
ALTER TABLE sales_ado ILM DISABLE POLICY P1;
ALTER TABLE sales_ado ILM DELETE POLICY P1;/* You can disable or delete all ADO policies in a table with the following */
ALTER TABLE sales_ado ILM DISABLE_ALL;
ALTER TABLE sales_ado ILM DELETE_ALL;/* You can disable or delete an ADO policy in a partition with the following */
ALTER TABLE sales MODIFY PARTITION sales_q1_2002 ILM DISABLE POLICY P2;
ALTER TABLE sales MODIFY PARTITION sales_q1_2002 ILM DELETE POLICY P2;/* You can disable or delete all ADO policies in a partition with the following */
ALTER TABLE sales MODIFY PARTITION sales_q1_2000 ILM DISABLE_all;
ALTER TABLE sales MODIFY PARTITION sales_q1_2000 ILM DELETE_ALL;

5. ADO的增强

立即执行ADO策略(默认会在维护窗口执行)

declare
v_executionid number;
begin
dbms_ilm.execute_ILM (ILM_SCOPE => dbms_ilm.SCOPE_SCHEMA,
execution_mode => dbms_ilm.ilm_execution_online,
task_id => v_executionid);
end;
/

6. ADO相关视图

• (USER/DBA)_ILMPOLICIES – 查看ADO 策略及状态
• (USER/DBA)_ILMDATAMOVEMENTPOLICIES – ADO 策略细节
• (USER/DBA)_ILMOBJECTS – 策略、对象、继承信息和状态

• (USER/DBA)_ILMEVALUATION_DETAILS -- 策略评估结果记录

• (USER/DBA)_ILMTASKS –  任务及状态,每个task ID跟踪一个ADO评估/执行实例
• (USER/DBA)_ILMEVALUATIONDETAILS – 每个task的评估细节
• (USER/DBA)_ILMRESULTS –  ADO job状态及结果

• (USER/DBA)_ILMPARAMETERS -- ILM相关参数

7. 使用限制

  • Partition-level ADO and compression are supported for Temporal Validity except for row-level ADO policies that would compress rows that are past their valid time(access or modification).
  • Partition-level ADO and compression are supported for in-database archiving if partitioned on the ORA_ARCHIVE_STATE column.
  • Custom policies (user-defined functions) for ADO are not supported if the policies default at the tablespace level.
  • ADO does not perform checks for storage space in a target tablespace when using storage tiering.
  • ADO is not supported on tables with object types or materialized views.
  • ADO is not supported with index-organized tables or clusters.
  • ADO concurrency (the number of simultaneous policy jobs for ADO) depends on the concurrency of the Oracle scheduler. If a policy job for ADO fails more than two times, then the job is marked disabled and the job must be manually enabled later.
  • ADO has restrictions related to moving tables and table partitions

三、 Oracle分区部分新特性及注意事项

https://blog.csdn.net/Hehuyi_In/article/details/98249415

参考:

19c及11g官方文档  vldb-and-partitioning-guide

https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm/ilm_tiering/ilm_tiering.html

Example for ILM ADO Storage Tiering Policy on Table Partition (文档 ID 1966394.1)

Example for ILM ADO Storage Tiering Policy Using Custom PL/SQL Policy Function on Table Partition (文档 ID 1967038.1)

https://www.askmaclean.com/archives/12c-ilm.html

《partitioning-wp-12c-1896137》

《NoCOUG_201505_Kanagaraj_ILM》

《NoCOUG_201805_Lakshmanan_ADO》

《ilm-on-oracle11g-1-129053》

Oracle ILM相关(Information lifecycle management)相关推荐

  1. 数据生命周期管理(Lifecycle Management)

    概述: oracle的生命周期管理叫做Information Lifecycle Management(ILM) SQL server的生命周期管理叫做Database Lifecycle Manag ...

  2. Elasticsearch Index Lifecycle Management (ILM)

    0 - 前言 Elastic Stack 6.6版本的发布,带来了很多新功能,比如: Index Lifecycle Management Frozen Index Geoshape based on ...

  3. PLM,是一个英文缩写,有2个含义,一是表示产品生命周期管理(product lifecycle management,PLM),...

    (product lifecycle management)产品生命周期管理 根据业界权威的CIMDATA的定义,PLM是一种应用于在单一地点的企业内部.分散在多个地点的企业内部,以及在产品研发领域具 ...

  4. 关于 Oracle ACFS 相关知识的简单学习

    作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,很高兴又和大家见面了 ...

  5. J0ker的CISSP之路:复习-Information Security Management(4)

    文章同时发表在:[url]http://netsecurity.51cto.com/art/200710/57991.htm[/url] 在<J0ker的CISSP之路>系列的上一篇文章里 ...

  6. oracle adjusting parallel,Oracle 并行相关的初始化参数

    Oracle数据库并行操作,特别是在RAC环境,一定程度上能够提升数据库的性能,所以对相关的初始化参数的了解是必要的,这篇文章将根据实际的案例讨论Oracle数据库的部分并行参数. Oracle数据库 ...

  7. J0ker的CISSP之路:复习-Information Security Management(2)

    本文同时发表在:[url]http://netsecurity.51cto.com/art/200709/57320.htm[/url] 在<J0ker的CISSP之路>系列的上一篇文章& ...

  8. ALM(application lifecycle management)应用程序生命周期管理

    ALM(application lifecycle management)应用程序生命周期管理 似乎挺有用. ============================================= ...

  9. Something of Information Security Management

    1.信息安全管理基本概念,管理的目标.对象的基本内容.必要性. 信息安全管理是指通过制定和实施一系列的管理措施,保护信息系统中的信息资源免受各种威胁和风险的侵害,确保信息系统的安全.可靠.高效运行.信 ...

最新文章

  1. 乔春洋:网上品牌战略
  2. 日历,日期类(copy)
  3. PAT甲级1023 Have Fun with Numbers:[C++题解]高精度加法和两个vector大小比较
  4. linux查看机器品牌信息,dmidecode查看linux硬件信息
  5. php lmpl,tjx-cold: 用于根据配置模板,快速生成controller,service,serviceimpl 代码
  6. C/C++:Windows编程—Windows RPC 传递自定义数据类型、自定义数据类型数组、指针数组
  7. zabbix4.2学习笔记系列
  8. java多线程activemq,ActiveMQ消息多线程并发处理
  9. 如何防止线程死锁java_Java 并发编程:如何防止在线程阻塞与唤醒时死锁
  10. A New Start
  11. 36个数据分析方法与模型
  12. 牙医管家口腔管理软件DSD微笑设计3.8版本更新
  13. 【相濡以沫、相忘于江湖】
  14. erp知识基础-会计
  15. 大疆机甲大师Python开发: 两只老虎
  16. 数据结构堆Heap实现思路
  17. Java小程序——模仿Win系统画板
  18. 请给我一本防爆仓秘籍@中本葱
  19. php版本纯静态什么意思,什么是php数据库?与纯静态空间有什么关系?
  20. flash cache tier下放flush实验

热门文章

  1. 易语言浏览本地html,简单的易语言读取网页文本程序
  2. NginxWebUI--强大的nginx可视化配置工具
  3. 【数据库架构】NewSQL和PGXC
  4. Tab页的两种写法 - jeesite记录
  5. node 拦截器拦截请求下载电子书以及等待前端渲染操作、浏览器操作
  6. 五四青年节。无奋斗,不青春!
  7. 介绍 GBase 8c产品架构
  8. 微信小程序tabBar改变图片大小方法
  9. 如何在 Mac 上录制屏幕?mac录屏教程分享
  10. 机房收费管理系统之退卡