Bonjour à tous,

J'effectue actuellement un audit et j'ai la chance de travailler pour la première fois de ma vie sur un Exadata X6, sous Oracle 12cR1 (12.1.0.2).

Le client a fait des choses très compliquées en terme de développement, notamment sur une table de Log qu'il a partitionné de cette manière :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
  CREATE TABLE table_de_log
   (	....
	"TIM_DAT_CRE_ENR" TIMESTAMP (6) NOT NULL, 
	...
   ) 
 ROW STORE COMPRESS ADVANCED 
 PARTITION BY RANGE ("TIM_DAT_CRE_ENR") INTERVAL (NUMTODSINTERVAL(1,'DAY')) 
(PARTITION "P_DEFAULT"  VALUES LESS THAN (TIMESTAMP' 9999-12-31 00:00:00')) ;

Avec la clause INTERVAL, le client devrait bénéficier de la création automatique d'une partition par jour. Sauf que cela ne marche pas car son point de transition est trop haut, car fixé au 31/12/9999.

Du coup, il a créé un code PL/SQL très complexe (à base de Sql dynamique en plus) pour :
- créer les nouvelles partitions journalières à l'avance, via un Shell qui se déclenche chaque WE sous l'ordonnanceur,
- compresser la partition datant de 14 jours en HCC, en Archive High



Pour ma part, je découvre la fonctionnalité ILM (Information Lifecycle Management) en 12c, avec ADO (Automatic Data Organisation).
J'ai remplacé sa table et tout son fatras de code PL/SQL par cette syntaxe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
  CREATE TABLE table_de_log
   (	....
	"TIM_DAT_CRE_ENR" TIMESTAMP (6) NOT NULL, 
	...
   ) 
 ROW STORE COMPRESS ADVANCED 
 PARTITION BY RANGE (TIM_DAT_CRE_ENR) INTERVAL (NUMTODSINTERVAL (1, 'DAY')) 
 (PARTITION P_20200910  VALUES LESS THAN (TIMESTAMP' 2020-09-11 00:00:00'))
 ILM ADD POLICY COLUMN STORE COMPRESS FOR ARCHIVE HIGH SEGMENT
 AFTER 1 DAYS OF CREATION ;
Du coup, le partitionnement automatique fonctionne, car le point de transition est fixé au 10/09/2020, date de ses premières données de Log.

Concernant la police ILM, j'attends que la plage de maintenance se déclenche cette nuit sur l'instance Oracle pour vérifier que mes partitions sont bien en compression HCC de type Archive High, et non plus en compression OLTP avancée.

Ma question porte maintenant sur la durée de rétention des données. En admettant que l'on souhaite dropper les partitions trop anciennes, est-ce que ILM est prévu pour prendre cela en charge ?

En effet, je n'ai pas trouvé d'informations sur ce sujet. ILM sert à automatiser certaines tâches comme la compression des données, le déplacement des segments dans d'autres tablespaces pour changer de stockage (passer du SSD à du SAS), mais rien sur la purge de données.

Pouvez-vous me confirmer ce point SVP ?

Un grand merci d'avance.