1 – Introduction
Nous n’allons pas re-détailler ici le fonctionnement ni la plus-value de l’option In-Memory Database (ex-TimesTen, full intégré au RDBMS depuis la version 12c), mais simplement parler, une fois n’est pas coutume, d’une option Enterprise Edition passée partiellement gratuite (ou plutôt « incluse dans le prix », terme plus exact), à l’instar du Multitenant (limité à 3 PDB), Advanced Security (Native Network Encryption HORS DataGuard) ou Advanced Compression (Basic Compression) : c’est suffisamment rare pour le souligner.
Vous l’aurez compris, il s’agit en fait d’une des nombreuses fonctionnalités d’une option qu’il devient possible d’utiliser sans avoir à acquérir la licence de l’option. De là à dire que c’est purement marketing pour attirer le chaland… mais autant en profiter !
2 – Implémentation
Initialement prévu pour la 20c, on peut finalement bénéficier de ce « cadeau » depuis de la version 19.8 (soit le RU JUL2020 de la 19c).
La mise en œuvre est des plus simples, car ne nécessite que de valoriser 2 paramètres d’instance :
- INMEMORY_FORCE = BASE_LEVEL
- INMEMORY_SIZE=xx
Les restrictions (et oui, le Père Noël n’existe pas, faut-il le rappeler) sont :
- un niveau BASIC
- une limitation à 16Go de la mémoire cache InMemory par instance (par non-CDB, CDB ou nœud RAC)
- la compression « Query Low » systématique
- la fonctionnalité « Automatic InMemory » est désactivée
- le « Tracking » des colonnes est en niveau « Basic » plutôt que « Column Store »
- sur Exadata, la fonctionnalité « CellMemory » est désactivée
Donc, pour vous mâcher le travail, la mise en œuvre se fait ainsi :
$ . oraenv<<<MyInst $ sqlplus / as sysdba <<-EOF alter system set inmemory_force=basic_level scope=spfile; alter system set inmemory_size=16G scope=spfile; shutdown immediate startup EOF
Ou en RAC/Restart :
$ . oraenv<<<MyInst $ sqlplus / as sysdba <<-EOF alter system set inmemory_force=basic_level scope=spfile; alter system set inmemory_size=16G scope=spfile; col value new_value db_unique_name select value from v\$parameter where name='db_unique_name'; !srvctl stop database -db &&db_unique_name !srvctl start database -db &&db_unique_name EOF
3 – Conclusion
Enjoy free features 😉
Et si vous avez besoin de vous former sur Oracle Database 19c, découvrez notre offre de formations officielles Oracle. 🙂