中国唯一一家专业只做ORACLE认证和DBA实训的甲骨文金牌合作企业

微信公众号新浪微博
免费咨询电话:400-0909-964
申请试听
当前位置: 网站首页 > 公开课 > Oracle 12c新特性系列专题-ILM信息生命周期管理

Oracle 12c新特性系列专题-ILM信息生命周期管理

文章来源: 更新时间:2019/5/28 14:41:34

在线老师点击咨询:

最新学讯:2018年近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

 随着Oracle database 12c的普及,数据库管理员 (DBA) 的角色也随之发生了转变。 Oracle 12c数据库对 DBA 而言是下一代数据管理。它让 DBA 可以摆脱单调的日常管理任务,能够专注于如何从数据中获取更多价值。未来我们会推出基于Oracle12c的技术文章,帮助DBA尽快掌握新一代数据库的新特性从而提高工作效率。这次分享的是来自于优秀的OCM讲师陈卫星的文章。    
    数据库Oracle Database 12c中引入了ILM(Information Lifecycle Management)信息生命周期管理和存储增强的特性。ILM的一个最重要部分是自动数据存放(Automatic Data Placement),简称ADP。

    存储增强方面 12c引入了在线移动数据文件的特性( Online Move Datafile), 该特性允许用户在线将一个有数据的数据文件在存储之间移动,且数据库保持打开并访问该文件。

数据生命周期

使用多层次的存储介质可以节省成本

ADO 实现流程

要为数据库中的数据移动实施信息生命周期管理(ILM)策略,可以使用热图(HeatMap)和自动数据优化(ADO)功能。



1、启用或者禁用热图(Heat Map)

  可以在系统或会话级别使用alter system或alter session声明使用heat_map子句启用和禁用热图跟踪:

ALTER SYSTEM SET HEAT_MAP = ON;

 启用热图后,内存活动跟踪模块将跟踪所有访问。不跟踪SYSTEM和SYSAUX表空间中的对象

ALTER SYSTEM SET HEAT_MAP = OFF;

  禁用热图时,内存活动跟踪模块不跟踪访问。heat_map初始化参数的默认值为off。

heat_map初始化参数还启用和禁用自动数据优化(ADO)。对于ADO,heat_map必须在系统级别启用。

 

 

2、通过Heat map 视图查看热图信息

/*查看总的热图段信息,只要监视的对象有操作,就会有热图信息:*/

SELECT SUBSTR(OBJECT_NAME,1,20),SUBSTR(SUBOBJECT_NAME,1,20), TRACK_TIME, SEGMENT_WRITE,  FULL_SCAN, LOOKUP_SCAN

FROM V$HEAT_MAP_SEGMENT;

查看用户下的热图段信息:

SELECT SUBSTR(OBJECT_NAME,1,20),SUBSTR(SUBOBJECT_NAME,1,20), SEGMENT_WRITE_TIME,  SEGMENT_READ_TIME, FULL_SCAN, LOOKUP_SCAN

FROM USER_HEAT_MAP_SEGMENT;

 

/*查看表空间的热图信息*/

SELECT SUBSTR(TABLESPACE_NAME,1,20), SEGMENT_COUNT

FROM DBA_HEATMAP_TOP_TABLESPACES ORDER BY SEGMENT_COUNTDESC;

 

3、使用 DBMS_HEAT_MAP查看相应的信息:

/* 查看某张表的热图信息 */

SELECT SUBSTR(segment_name,1,10) Segment, min_writetime,min_ftstime

FROM TABLE(DBMS_HEAT_MAP.OBJECT_HEAT_MAP('SH','SALES'));

 

/* 查看某个表空间热图的信息 */

SELECT SUBSTR(tablespace_name,1,16) Tblspace,min_writetime, min_ftstime

FROM TABLE(DBMS_HEAT_MAP.TABLESPACE_HEAT_MAP('USERS'));

 

/* 查看某张表的i/o如图 */

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

   FROMTABLE(DBMS_HEAT_MAP.EXTENT_HEAT_MAP('SCOTT','EMP')) 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'));

4、使用自动数据优化

   要实现ILM策略,可以使用自动数据优化(ADO)来自动压缩和移动数据库中不同存储层之间的数据。该功能包括创建为每一层指定不同压缩级别的策略的能力,以及控制何时发生数据移动的能力。


4.1、管理自动数据优化策略

    在使用SQL语句创建和更改表时,可以在行、段和表空间粒度级别上为ADO指定策略。

    通过为ADO指定策略,您可以自动在数据库中的不同存储层之间移动数据。这些策略还允许您为每一层指定不同的压缩级别,并控制何时发生数据移动。

  可以使用关键字group、row或segment为一组相关对象或段或行级别指定ADO策略的作用域。

   可应用于组策略的压缩的默认映射为:

  • COMPRESS ADVANCED:在堆表上,索引映射到标准压缩,LOB段映射到低级压缩。

  • COMPRESS FORQUERY LOW/QUERY HIGH:在堆表上,索引映射到标准压缩和LOB段映射到中级压缩。

  • COMPRESS FORARCHIVE LOW/ARCHIVE HIGH:在堆表上,索引映射到标准压缩和LOB段映射到高级等压缩。

    无法更改压缩映射。组只能应用于段级策略。存储分层策略仅适用于段级别,不能在行级别指定。

    自动数据优化(ADO)支持具有InMemory、InMemoryMecompress和No InMemory策略类型的内存列存储(IM列存储)。

    下面是使用no inmemory子句从IM列存储中逐出对象的示例:

ALTER TABLE sales_2015 ILM ADD POLICY NO INMEMORY

      AFTER 7 DAYSOF NO ACCESS;

    user/dba_ilmdatamovementpolicies和v$heat_map_段视图包括有关内存列存储的ADO策略的信息。v$im_adotasks和v$im_adotaskdetails视图包含有关内存列存储区中ADO组件操作的审核信息。

    您可以使用pl/sql_函数选项自定义策略,该选项提供确定何时执行策略的能力。在 pl/sql_函数选项仅适用于段级策略。例如:

CREATE OR REPLACE FUNCTION my_custom_ado_rules (objn INNUMBER) RETURN BOOLEAN;

ALTER TABLE sales_custom ILM ADD POLICY COMPRESS ADVANCEDSEGMENT

      ONmy_custom_ado_rules;


4.2、建表时设置ILM ADO 策略

ILM 的语法主要如下:

 

 

 

 ilm_clause

ILM

{ ADD POLICY ilm_policy_clause

| { DELETE | ENABLE | DISABLE } POLICY ilm_policy_name

| DELETE_ALL | ENABLE_ALL | DISABLE_ALL

}

ilm_policy_clause

{ ilm_compression_policy | ilm_tiering_policy }

ilm_compression_policy

{ table_compression { SEGMENT | GROUP }

  { { AFTERilm_time_period OF { { NO ACCESS } | { NO MODIFICATION } | CREATION } }

  | { ONfunction_name } }

}

|

{ ROW STORE COMPRESS ADVANCED ROW AFTER ilm_time_periodOF NO MODIFICATION }

ilm_tiering_policy

{ TIER TO tablespace [ SEGMENT | GROUP ] [ ONfunction_name ] }

|

{ TIER TO tablespace READ ONLY [ SEGMENT | GROUP ]

  { { AFTERilm_time_period OF { { NO ACCESS } | { NO MODIFICATION } | CREATION } }

  | { ONfunction_name } } }

ilm_time_period

integer { { DAY | DAYS } | { MONTH | MONTHS } | { YEAR |YEARS } }

使用ILM ADD POLICY子句和CREATE TABLE语句创建带有ILM ADO策略的表。

/* 创建一个ILM ADO策略的表 */

CREATE TABLE sales_ado

 (PROD_ID NUMBERNOT NULL,

  CUST_ID NUMBERNOT NULL,

  TIME_ID DATE NOTNULL,

  CHANNEL_ID NUMBERNOT NULL,

  PROMO_ID NUMBERNOT NULL,

  QUANTITY_SOLDNUMBER(10,2) NOT NULL,

  AMOUNT_SOLDNUMBER(10,2) NOT NULL )

 PARTITION BY RANGE(time_id)

 ( PARTITIONsales_q1_2012 VALUES LESS THAN (TO_DATE('01-APR-2012','dd-MON-yyyy')),

   PARTITIONsales_q2_2012 VALUES LESS THAN (TO_DATE('01-JUL-2012','dd-MON-yyyy')),

   PARTITIONsales_q3_2012 VALUES LESS THAN (TO_DATE('01-OCT-2012','dd-MON-yyyy')),

   PARTITIONsales_q4_2012 VALUES LESS THAN (TO_DATE('01-JAN-2013','dd-MON-yyyy')) )

  ILM ADD POLICY COMPRESS FOR ARCHIVE HIGH  --需要exadata,普通机器不支持

      SEGMENT  AFTER 12 MONTHS OF NO ACCESS;

后面最后两行可以用下面行替代:

  ILM ADD POLICY COMPRESS

  SEGMENT AFTER 12MONTHS OF NO ACCESS;

 

/* 查看当前 ILM ADO 策略 */

SELECT SUBSTR(policy_name,1,24) POLICY_NAME, policy_type,enabled

       FROMUSER_ILMPOLICIES;

 

POLICY_NAME             POLICY_TYPE   ENABLE

------------------------ ------------- ------

P1                      DATA MOVEMENT YES

 

4.3、添加表的ILM策略:

/* 30天如果没有修改,则增加行级压缩策略 */

ALTER TABLE sales MODIFY PARTITION sales_q1_2002

  ILM ADD POLICYROW STORE COMPRESS ADVANCED ROW

  AFTER 30 DAYS OFNO MODIFICATION;

 

/* 6个月如果没有修改,则增加段级的压缩策略 */

ALTER TABLE sales MODIFY PARTITION sales_q1_2001

  ILM ADD POLICYCOMPRESS FOR ARCHIVE HIGH SEGMENT

  AFTER 6 MONTHS OFNO MODIFICATION;

 

/* 12月如果没有访问,则增加段级的压缩策略 */

ALTER TABLE sales MODIFY PARTITION sales_q1_2000

      ILM ADDPOLICY COMPRESS FOR ARCHIVE HIGH SEGMENT

      AFTER 12MONTHS OF NO ACCESS;

 

/* 增加策略把数据移动到另外一个表空间*/

/* that is on low cost storage media */

ALTER TABLE sales MODIFY PARTITION sales_q1_1999

  ILM ADD POLICY

  TIER TOmy_low_cost_sales_tablespace;

 

ALTER TABLE sales

ILM ADD POLICY TIER TO users READ ONLY

SEGMENT  AFTER  3  DAYSOF NO ACCESS;

 

/* 查看当前的策略 */

SELECT SUBSTR(policy_name,1,24) POLICY_NAME, policy_type,enabled

   FROMUSER_ILMPOLICIES;

 

POLICY_NAME             POLICY_TYPE   ENABLE

------------------------ ------------- ------

P1                      DATA MOVEMENT YES

P2                      DATA MOVEMENT YES

P3                      DATA MOVEMENT YES

P4                      DATA MOVEMENT YES

P5                      DATA MOVEMENT YES

4.4、禁用和删除ILM ADO策略

    使用带alter table语句的ILM disable policy或ILM delete policy子句禁用或删除ILM ADO策略。

    您可以禁用或删除ADO的ILM策略,如下面示例中的SQL语句所示。有时,如果这些策略与要添加的新策略冲突,您可能需要删除现有的ILM策略

/* 禁用或者删除表上指定的ADO策略 */

ALTER TABLE sales_ado ILM DISABLE POLICY P1;

ALTER TABLE sales_ado ILM DELETE POLICY P1;

 

/* 禁用或者删除所有表上的ADO策略 */

ALTER TABLE sales_ado ILM DISABLE_ALL;

ALTER TABLE sales_ado ILM DELETE_ALL;

 

/* 禁用或者删除某个指定分区表上的策略 */

ALTER TABLE sales MODIFY PARTITION sales_q1_2002 ILMDISABLE POLICY P2;

ALTER TABLE sales MODIFY PARTITION sales_q1_2002 ILMDELETE POLICY P2;

 

/* 禁用或者删除分区上所有的ADO策略 */

ALTER TABLE sales MODIFY PARTITION sales_q1_2000 ILMDISABLE_all;

ALTER TABLE sales MODIFY PARTITION sales_q1_2000 ILMDELETE_ALL;

4.5、指定段级的ADO压缩策略

    可以使用段级压缩分层策略在表中的段级指定压缩。

    结合行级压缩分层策略,您可以对数据库中数据的存储和管理方式进行细粒度控制。

    下面示例说明了如何为ADO创建策略,以在Sales_ADO表上强制实施压缩和存储分层策略,从而反映以下业务需求:

    1.  大量数据加载

    2.  OLTP应用场景

    3.  6个月没有更新后则进行压缩或者归档

    4.  移到廉价的存储上

/* 6个月如果没有修改,则增加段级压缩 */

ALTER TABLE sales_ado ILM ADD POLICY

  COMPRESS FORARCHIVE HIGH

  SEGMENT  AFTER 6 MONTHS OF NO MODIFICATION;

or

ALTER TABLE sales_ado ILM ADD POLICY

  COMPRESS 

  SEGMENT  AFTER 6 MONTHS OF NO MODIFICATION

 

Table altered.

 

/* 增加存储级的策略 */

ALTER TABLE sales_ado ILM ADD POLICY

  TIER TOmy_low_cost_tablespace;

or

ALTER TABLE sales_ado

ILM ADD POLICY TIER TO example READ ONLY

SEGMENT  AFTER  180 DAYS OF NO ACCESS;

 

 

SELECT SUBSTR(policy_name,1,24) POLICY_NAME, policy_type,enabled

  FROMUSER_ILMPOLICIES;

 

POLICY_NAME             POLICY_TYPE   ENABLED

------------------------ ------------- -------

...

P6                      DATA MOVEMENT  YES

P7                      DATA MOVEMENT  YES

 

4.6、指定ADO的行级压缩层

    除了基本和高级压缩之外,自动数据优化(ADO)策略还支持混合柱状压缩(HCC)。

  无论表的压缩类型如何,都可以在任何表上定义HCC行级策略。当段的其他部分有DML活动时,来自冷块的行可以用HCC压缩。

    对于非HCC表的HCC策略,如果行位于HCC压缩单元(CU)中,则在更新期间可能会发生行移动。此外,与行移动的其他用例类似,索引维护对于更新引用已移动行的索引条目是必需的。

    Oracle数据库12C版本1(12.1)支持行级策略:但是,数据库必须具有12.2或更高的兼容性才能使用HCC行级压缩策略。

 

/* 创建一个使用HCC行级压缩的策略 */

ALTER TABLE employees_ilm

   ILM ADD POLICYCOLUMN STORE COMPRESS FOR QUERY

   ROW  AFTER 30 DAYS OF NO MODIFICATION;

 

/* 创建一个使用高级行级压缩的策略 */

ALTER TABLE sales_ado

  ILM ADD POLICYROW STORE COMPRESS ADVANCED

  ROW   AFTER 60 DAYS OF NO MODIFICATION;

 

SELECT policy_name, policy_type, enabled

   FROMUSER_ILMPOLICIES;

 

POLICY_NAME             POLICY_TYPE   ENABLE

------------------------ ------------- -------

...

P8                      DATA MOVEMENT YES

 

/* 查询相关ADO信息 */
select o.OBJECT_NAME,o.OBJECT_TYPE,o.INHERITED_FROM,i.POLICY_NAME,i.ACTION_TYPE,i.SCOPE,i.COMPRESSION_LEVEL,i.TIER_TABLESPACE,i.CONDITION_TYPE,i.CONDITION_DAYS,o.ENABLED
 from DBA_ilmdatamovementpolicies i,DBA_ilmobjects o
 where i.POLICY_NAME=o.POLICY_NAME
 and o.OBJECT_OWNER='SCOTT'
 and o.OBJECT_NAME='SALES_ADO';
 

5、管理ILMADO参数

    您可以使用在DBM_ ILM_ADMI包中使用CUSTOMIZE_ILM 过程设置的ILM ADO参数自定义ADO环境。

    您可以使用DBA_ILMPARAMETERS视图显示参数。例如,下面的查询显示ADO相关参数的值。

SQL> SELECT NAME, VALUE FROM DBA_ILMPARAMETERS;
 
---------------------------------------------------------------- ----------
ENABLED                                                                   1
RETENTION TIME                                                           30
JOB LIMIT                                                                 2
EXECUTION MODE                                                            2
EXECUTION INTERVAL                                                       15
TBS PERCENT USED                                                         85
TBS PERCENT FREE                                                         25
POLICY TIME                                                               0
ABSOLUTE JOB LIMIT                                                       10
DEGREE OF PARALLELISM                                                     4

5.1、使用自定义的ADO 设置

SQL> BEGIN
  2  DBMS_ILM_ADMIN.CUSTOMIZE_ILM(DBMS_ILM_ADMIN.TBS_PERCENT_USED, 85);
  3  DBMS_ILM_ADMIN.CUSTOMIZE_ILM(DBMS_ILM_ADMIN.TBS_PERCENT_FREE, 25);
  4  END;
  5  /
 
SQL> BEGIN
  2  DBMS_ILM_ADMIN.CUSTOMIZE_ILM(DBMS_ILM_ADMIN.ABS_JOBLIMIT, 10);
  3  END;
  4  /

 tbs_percent_used参数的值指定当表空间被认为已满时表空间配额的百分比。默认值为85%。

    tbs_percent_free参数的值指定表空间的目标可用百分比。默认值为25%。

    对于tbs_percent*参数的值,ADO尽最大努力,但不能保证。当表空间配额的百分比达到所使用的tbs_percent_used的值时,ADO开始移动数据,使表空间配额的空闲百分比接近tbs_percent_free的空闲值。例如,假设tbs_percent_used设置为85,tbs_percent_free设置为25,并且表空间将变为90%满。然后,ADO启动移动数据的操作,使表空间配额至少有25%的可用空间,这也可以解释为小于表空间配额的75%。

    如果在增加ADO策略的时候把过期的数据移动的其它表空间,那么什么时候开始移动数据,跟表空间的上面两个ADO参数有关。


5.2、使用视图监视ADO策略

    可以使用DBAILM*和用户ILM*视图查看和监视与数据库对象相关联的ADO策略,从而更容易根据需要更改策略.

·        DBA/USER_ILMDATAMOVEMENTPOLICIES 视图显示特定于ADO的ILM策略的数据移动相关属性的信息

·        DBA/USER_ILMTASKS 视图显示存储过程EXECUTE_ILM 的任务id号

·        DBA/USER_ILMEVALUATIONDETAILS 视图显示特定任务的详细信息和策略。

·        DBA/USER_ILMOBJECTS 视图显示所有的ADO对象和策略。


6、企业案例:

请思考下面的问题,是否能够得出正确的判断呢,我们会在后面的分享中告诉大家

Which three tasks can be automaticallyperformed by the Automatic Data Optimization feature of Information lifecycleManagement (ILM)?

 

A. Tracking the most recent read time for atable segment in a user tablespace

B. Tracking the most recent write time fora table segment in a user tablespace

C. Tracking insert time by row for tablerows

D. Tracking the most recent write time fora table block

E. Tracking the most recent read time for atable segment in the SYSTEM tablespace

F. Tracking the most recent write time fora table segment in the SYSAUX tablespace


本篇文章作者介绍:Oracle金牌讲师

北京优技教育科技有限公司
培训机构创始人、Oracle技术首席讲师

自2000年就职于CUUG从事于Oracle的授课和维护工作,经过多年辗转于2006年再度回到CUUG担任Oracle技术讲师,多年的Oracle工作经验,坚持不懈的学习Oracle新的技术,通过举办Oracle技术沙龙(总共累积50多场),向广大Oracle爱好者传播最新、主流的Oracle技术,为推广Oracle认证做了很多工作,每年培训出众多的Oracle技术人才,为Oracle技术推广和Oracle认证普有着杰出的贡献和突出影响力。

“Oracle WDP项目为个人学习Oracle技术提供了良好的学习途径,对Oracle的普及起到了巨大的作用,很多人通过这个途径学到了Oracle的技术,找到了满意的工作,实现了人生的价值。”


本文地址:http://www.cuug.com.cn/gongkaike/21527531731.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内最悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的最新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
海淀校区:北京市海淀区紫竹园路88号紫竹花园D座703(CUUG)
全国免费咨询电话:400-0909-964
电话:010-59426307 010-59426319 邮政编码:100089
部分信息来源于网络,如有错误请联系指正!
官方订阅号
官方服务号
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号 京公网110108006275号
如果您有什么问题,请点击此处进行即时沟通;