12c ILM資料生命週期管理
首先,需要開啟heat map,用來跟蹤資料的訪問情況
SQL> alter system set heat_map = on;
System altered.
System altered.
測試資料
drop table p purge;
create table p (id int, name varchar2(150)) partition by range (id) (partition p1 values less than (100), partition p2 values less than (200)) tablespace t1;
insert into p values(20, 'ulooiuk');
insert into p values(80, 'vf sfdsafgaf');
insert into p values(90, 'AXSAXSD');
insert into p values(120, 'ulooiuk');
insert into p values(180, 'vf sfdsafgaf');
insert into p values(190, 'AXSAXSD');
create index i_p_id on p(id) local;
create index i_p_name on p(name) global;
commit;
create table p (id int, name varchar2(150)) partition by range (id) (partition p1 values less than (100), partition p2 values less than (200)) tablespace t1;
insert into p values(20, 'ulooiuk');
insert into p values(80, 'vf sfdsafgaf');
insert into p values(90, 'AXSAXSD');
insert into p values(120, 'ulooiuk');
insert into p values(180, 'vf sfdsafgaf');
insert into p values(190, 'AXSAXSD');
create index i_p_id on p(id) local;
create index i_p_name on p(name) global;
commit;
SQL> select partition_name, (select name from v$datafile where file# = file_id) name, extent_id, block_id, blocks from dba_extents e where segment_name = 'P';
PARTITION_NAME NAME EXTENT_ID BLOCK_ID BLOCKS
-------------------- -------------------------------------------------- ---------- ---------- ----------
P1 /u01/oradata/orcl/t1.dbf 0 1280 1024
P2 /u01/oradata/orcl/t1.dbf 0 128 1024
PARTITION_NAME NAME EXTENT_ID BLOCK_ID BLOCKS
-------------------- -------------------------------------------------- ---------- ---------- ----------
P1 /u01/oradata/orcl/t1.dbf 0 1280 1024
P2 /u01/oradata/orcl/t1.dbf 0 128 1024
設定策略
簡單測試一個資料的壓縮和舊遷移至其它表空間。
SQL> ALTER TABLE p
2 ILM ADD POLICY COMPRESS SEGMENT
3 AFTER 1 DAYS OF NO MODIFICATION;
Table altered.
SQL> ALTER TABLE p
2 ILM ADD POLICY
3 TIER TO ts2;
Table altered.
2 ILM ADD POLICY COMPRESS SEGMENT
3 AFTER 1 DAYS OF NO MODIFICATION;
Table altered.
SQL> ALTER TABLE p
2 ILM ADD POLICY
3 TIER TO ts2;
Table altered.
但是12c的heat map新特性對CDB無效。
官方文件有說明(Limitations and Restrictions With ADO and Heat Map: ADO and Heat Map are not supported with a multitenant container database (CDB).)
不過提示資訊很不友好,只是說heat map沒有啟用。
SQL> alter table p ilm add policy compress for archive high segment after 1 days of no modification;alter table p ilm add policy compress for archive high segment after 1 days of no modification
*
ERROR at line 1:
ORA-38342: heat map not enabled
檢視已定義的策略
SQL> select SUBSTR(policy_name,1,24), POLICY_TYPE, TABLESPACE, enabled from user_ilmpolicies;
SUBSTR(POLICY_NAME,1,24) POLICY_TYPE TABLESPACE ENABLED
------------------------ ------------- ------------------------------ -------
P1 DATA MOVEMENT YES
P2 DATA MOVEMENT YES
SUBSTR(POLICY_NAME,1,24) POLICY_TYPE TABLESPACE ENABLED
------------------------ ------------- ------------------------------ -------
P1 DATA MOVEMENT YES
P2 DATA MOVEMENT YES
SQL> select * from USER_ILMDATAMOVEMENTPOLICIES;
POLICY_NAM ACTION_TYPE SCOPE COMPRESSION_LEVEL TIER_TABLE TIER_STAT CONDITION_TYPE CONDITION_DAYS CUSTOM_FUNCTION
---------- ----------- ------- ------------------------------ ---------- --------- ---------------------- -------------- ------------------------------
P1 COMPRESSION SEGMENT ARCHIVE HIGH LAST MODIFICATION TIME 1
P2 STORAGE SEGMENT TS2 0
POLICY_NAM ACTION_TYPE SCOPE COMPRESSION_LEVEL TIER_TABLE TIER_STAT CONDITION_TYPE CONDITION_DAYS CUSTOM_FUNCTION
---------- ----------- ------- ------------------------------ ---------- --------- ---------------------- -------------- ------------------------------
P1 COMPRESSION SEGMENT ARCHIVE HIGH LAST MODIFICATION TIME 1
P2 STORAGE SEGMENT TS2 0
執行後,資料段就被壓縮了
SQL> select table_name, partition_name, compression from user_tab_partitions;
TABLE_NAME PARTITION_NAME COMPRESS
---------- ------------------------------ --------
P P2 ENABLED
P P1 ENABLED
TABLE_NAME PARTITION_NAME COMPRESS
---------- ------------------------------ --------
P P2 ENABLED
P P1 ENABLED
資料段都換了一個地方進行壓縮
SQL> select partition_name, (select name from v$datafile where file# = file_id) name, extent_id, block_id, blocks from dba_extents e where segment_name = 'P';
PARTITION_NAME NAME EXTENT_ID BLOCK_ID BLOCKS
------------------------------ -------------------------------------------------- ---------- ---------- ----------
P1 /u01/oradata/orcl/t1.dbf 0 5120 1024
P2 /u01/oradata/orcl/t1.dbf 0 6144 1024
PARTITION_NAME NAME EXTENT_ID BLOCK_ID BLOCKS
------------------------------ -------------------------------------------------- ---------- ---------- ----------
P1 /u01/oradata/orcl/t1.dbf 0 5120 1024
P2 /u01/oradata/orcl/t1.dbf 0 6144 1024
索引都有效
SQL> select index_name, status from user_indexes where table_name = 'P';
INDEX_NAME STATUS
-------------------------------------- --------
I_P_NAME VALID
I_P_ID N/A
SQL> select partition_name, status from user_ind_partitions where index_name = 'I_P_ID';
PARTITION_NAME STATUS
------------------------ --------
P1 USABLE
P2 USABLE
INDEX_NAME STATUS
-------------------------------------- --------
I_P_NAME VALID
I_P_ID N/A
SQL> select partition_name, status from user_ind_partitions where index_name = 'I_P_ID';
PARTITION_NAME STATUS
------------------------ --------
P1 USABLE
P2 USABLE
ILM引數
SQL> select * from dba_ilmparameters;
NAME VALUE
-------------------------------------------------- ----------------------------------------
ENABLED 1 是否允許
RETENTION TIME 30 ILM job歷史保留時間(天)
JOB LIMIT 2 同時能有多少ILM job執行。計算方法是“JOB LIMIT引數值*例項數*每個例項的CPU數”
EXECUTION MODE 2 online還是offline
EXECUTION INTERVAL 15 執行間隔,單位分鐘。
TBS PERCENT USED 85 當表空間使用率達到這個值,ILM認為它要滿了,會盡可能把資料移走。使它的空閒空間達到“TBS PERCENT FREE”
TBS PERCENT FREE 25
POLICY TIME 0
8 rows selected.
NAME VALUE
-------------------------------------------------- ----------------------------------------
ENABLED 1 是否允許
RETENTION TIME 30 ILM job歷史保留時間(天)
JOB LIMIT 2 同時能有多少ILM job執行。計算方法是“JOB LIMIT引數值*例項數*每個例項的CPU數”
EXECUTION MODE 2 online還是offline
EXECUTION INTERVAL 15 執行間隔,單位分鐘。
TBS PERCENT USED 85 當表空間使用率達到這個值,ILM認為它要滿了,會盡可能把資料移走。使它的空閒空間達到“TBS PERCENT FREE”
TBS PERCENT FREE 25
POLICY TIME 0
8 rows selected.
修改引數
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;
/
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;
/
也可以手工執行ILM任務
set serverout on
declare
tid number;
begin
dbms_ilm.execute_ilm(tid);
dbms_output.put_line(tid);
end;
/
declare
tid number;
begin
dbms_ilm.execute_ilm(tid);
dbms_output.put_line(tid);
end;
/
然後檢視執行結果
col job_name for a30
col comments for a30
col comments for a30
col COMPLETION_TIME for a30
col STATISTICS for a30
SQL> select * from USER_ILMRESULTS where task_id = 3;
TASK_ID JOB_NAME JOB_STATE START_TIME COMPLETION_TIME COMMENTS
---------- ------------------------------ ----------------------------------- ------------------------------ ------------------------------ ------------------------------
STATISTICS
------------------------------
3 ILMJOB132 COMPLETED SUCCESSFULLY 09-MAR-15 10.10.21.314846 AM 09-MAR-15 10.11.27.596074 AM
3 ILMJOB134 COMPLETED SUCCESSFULLY 09-MAR-15 10.10.21.319984 AM 09-MAR-15 10.11.24.671375 AM
SQL> select * from USER_ILMRESULTS where task_id = 3;
TASK_ID JOB_NAME JOB_STATE START_TIME COMPLETION_TIME COMMENTS
---------- ------------------------------ ----------------------------------- ------------------------------ ------------------------------ ------------------------------
STATISTICS
------------------------------
3 ILMJOB132 COMPLETED SUCCESSFULLY 09-MAR-15 10.10.21.314846 AM 09-MAR-15 10.11.27.596074 AM
3 ILMJOB134 COMPLETED SUCCESSFULLY 09-MAR-15 10.10.21.319984 AM 09-MAR-15 10.11.24.671375 AM
禁用、刪除ILM策略
alter table p ilm disable policy p1;
alter table p ilm delete policy p1;
alter table p ilm delete policy p1;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26239116/viewspace-1476292/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Elasticsearch ILM DSL 索引生命週期管理Elasticsearch索引
- Salesforce 生命週期管理(一)應用生命週期淺談Salesforce
- ElasticSearch-生命週期管理Elasticsearch
- 團隊管理生命週期
- Tomcat生命週期管理Tomcat
- Django ORM 資料庫生命週期DjangoORM資料庫
- 淺談資料庫生命週期資料庫
- npm scripts的生命週期管理NPM
- Elasticsearch索引生命週期管理方案Elasticsearch索引
- 敏捷應用生命週期管理敏捷
- 感知生命週期的資料 -- LiveDataLiveData
- 資料全生命週期管理應用平臺的組成
- 不同時期資料如何儲存?浪潮資訊提供全生命週期管理方案
- Flutter - 生命週期監聽和管理Flutter
- ReactJS 生命週期、資料流與事件ReactJS事件
- View生命週期與Activity生命週期的關係View
- akka-typed(1) - actor生命週期管理
- 元件生命週期管理和通訊方案元件
- Java實現生命週期管理機制Java
- 專案管理過程之生命週期 (轉)專案管理
- 固定資產生命週期管理的需求分析
- Spring生命週期管理之總結Spring
- PHP 生命週期PHP
- Flutter - 生命週期Flutter
- sessionStorag 生命週期Session
- Fragment生命週期Fragment
- Activity生命週期
- vue - 生命週期Vue
- React生命週期React
- ubuntu生命週期Ubuntu
- React 生命週期React
- vue生命週期Vue
- ElasticSearch生命週期管理-索引策略配置與操作Elasticsearch索引
- 產品生命週期管理PLM技術研究
- React 狀態管理:狀態與生命週期React
- Activity生命週期onDestroy
- Flutter -- Element生命週期Flutter
- Flutter 的生命週期Flutter