Oracle 19c, ou presque & In-Memory gratuit, ou presque

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. 🙂