Les nouveautés d'Oracle 12c R2 dans les nuages

La voici la nouvelle version 12c R2 du moteur de base de données Oracle !
Nous l’attendions avec impatience, et elle est enfin disponible, mais pour l’instant seulement au travers du « Exadata Express Service« .
Et s’il n’est pas encore possible de la télécharger aux endroits habituels, vous pouvez vous inscrire pour une période d’essai gratuite de 30 jours.
Avant de rentrer dans le détail, voici ce que l’on peut déjà dire des nouveautés. Les secteurs sur lesquels les efforts les plus importants ont été fait sont les suivants :

1) Pluggable Database
2) In-Memory Database
3) Oracle Spatial
4) Oracle Sharding

Pluggable Database aka l’option Multitenant

Elément fondamental du changement d’architecture introduit dans la version 12c, la fonctionnalité montrait quelques limites dans son utilisation, particulièrement dans les contraintes de mise en lecture seule d’un PDB avant toute opération de clonage.
Voici les ajouts majeurs qui comblent les manques constatés dans les versions précédentes :

  • Clonage à chaud et refresh des conteneurs : plus de mise en lecture de la base source et une synchronisation rapide possible via l’application des redos du PDBs source.
  • Déplacement facilité des conteneurs : levée d’un certain nombre de restrictions, comme la différence possible dans les jeux de caractères utilisés par les PDB
  • Introduction de la notion de conteneurs applicatifs : ou le choix de décider de ce qui est commun et que l’on va partager avec les autres conteneurs PDB; d’où la possibilité de délivrer une application en une fois pour plusieurs environnements.
  • Notion de Proxy PDBs avec le référencement et l’accès de PDB situés dans d’autres CDBs qui ne seront que des liens vers le PDB de référence. Les ordres SQL effectués sur le proxy PDB étant envoyés et exécutés uniquement sur le PDB de référence.
  • Notion de PDB Lockdown Profile, ou la notion de profil de ressources que l’on associera à un ensemble de PDB, permettant plus de souplesse dans la gestion des ressources sur l’architecture; d’où l’intérêt grandissant d’utiliser le gestionnaire de ressources (niveau CDB et PDB) dans cette configuration.
  • La définition des zones de caches dédiées par PDB (SGA_TARGET par PDB). Vous pourrez reproduire en Multitenant les configurations optimisées pour chacune de vos bases critiques.

Oracle Database In-Memory

Concurrent féroce d’ Anna de SAP, arrivée dans le dernier patchset 12.1.0.2, la fonctionnalité s’étoffe avec :

  • Le stockage automatique et dynamique du résultat des fonctions ou expressions les plus utilisées (type déterministes et ne ramenant qu’une valeur) en tant que colonne virtuelle dans la zone In-Memory, s’appuyant sur la mise en place de prise des statistiques d’usage des fonctions via un nouveau mécanisme nommé ESS (Expression Statistics Store).
  • L’augmentation dynamique de la zone de cache mémoire allouée (la diminution n’est pas encore possible).
  • Un peuplement plus rapide au redémarrage (IM FastStart) au travers du stockage périodique de la zone sur un tablespace dédié (un nouveau tablespace à gérer pour les DBA).
  • La possibilité d’utiliser aussi In-Memory Database pour une base de secours en mode « Active Data Guard », laissant ainsi la possibilité de déporter les requêtes analytiques vers la base de secours alors que la base principale reste dédiée au transactionnel. Les informations dans les « redos » contiennent alors des metadonnées pour les objets taggés « In-Memory ».
  • L’utilisation avec ADO (Automatic Data Optimisation) et l’introduction de nouvelles politiques sur l’objet liées à sa présence ou non dans la zone In-Memory et à sa compression ou non dans la zone. Vous pourrez ainsi choisir en fonction de l’usage d’une table (via la cartographie d’usage « Heat Map ») si les données de celle-ci doivent être stockées dans « In-Memory Column Store » et avec quel taux de compression, puis la faire sortir de la zone si l’usage change ou si la table n’est plus accédée pendant un certain laps de temps.

Oracle Spatial et Graphique

Des nouveautés dans ce domaine bien spécifique mais toujours très porteur pour l’éditeur avec l’intégration de :

  • NFE (Network Feature Editing) API SDO_NET, modélisation de fonctionnalité sur un réseau. Par exemple, les restaurants et les hôtels pourront être définis dans des groupes différents sur une carte routière et posséder ainsi des propriétés différentes.
  • Le support des objets GeoJSON (données géographiques en « JavaScript Object Notation ») avec l’arrivée des deux fonctions SDO_UTIL.FROM_GEOJSON et SDO_UTIL.TO_GEOJSON
  • Intégration du langage algébrique pour les images comme API PL/SQL via les procédures et fonctions SDO_GEOR_RA.rasterMathOp, SDO_GEOR_RA.findCells, SDO_GEOR_RA.classify et SDO_GEOR_RA.rasterUpdates
  • Intégration de nouvelles fonctions de traitement des images comme le changement de projection (« Reprojection ») , la rectification, l’orthorectification, changement d’échelle, application de filtre, stretching, … ainsi que des fonctions de gestion de mosaïque virtuelle d’images.

Oracle Sharding

Une nouveauté complète pour l’éditeur présentant une architecture éclatée des données des tables sur plusieurs bases de données distinctes, soit un partitionnement horizontal des données.
Chaque base de données dans cette configuration constitue ce qui est appelé un « Shard » que l’on peut traduire par un fragment. L’ensemble des fragments constituant la base de données logique ou pour Oracle « Shared Database » (SDB).
Chaque fragment comprend donc un sous-ensemble différent des données des mêmes tables. Les bénéfices attendus par Oracle pour cette nouvelle architecture sont :

  • Une évolutivité illimitée (Extrême dans les présentations Marketing), on peut dans l’absolu ajouter autant de fragment que l’on souhaite.
  • Une isolation complète des fragments les uns par rapport aux autres. Un problème d’accès ou de performance à l’un des fragments n’impacte pas du tout les autres.
  • Une distribution souple des données permettant des localisations spécifiques respectant la proximité ou les contraintes légales.
  • Des mises à jour en mode « Rolling » un fragment après l’autre permettant d’évaluer les impacts sur une partie seulement des données.
  • Adaptabilité complète au modèle « Cloud Database ».

Se posant en concurrent des bases NoSQL sur le modèle du partitionnement horizontal, Oracle maintient cependant les bénéfices d’une base de données relationnelle : Entités Relationnelles, propriétés ACID, SQL et API de programmation, type de données complexes, compression, haute disponibilité, …

Et les autres …

Il reste bien sûr de nombreuses nouveautés du côté du moteur, et parmi celles-ci, quelques-unes qui peuvent retenir l’attention (la liste n’est pas exhaustive et chaque consultant d’EASYTEAM a ses favoris) :

  • APEX en version 5.0
  • L’historique des commandes SQL*Plus : celle-là, tout le monde l’attendait depuis des années !
  • L’amélioration de la globalisation (gestion des différents langages) via le support d’unicode 7.0, de nouvelles fonctions de comparaison de chaines dépendant du langage présent sur la colonne, la mise en place du jeu de caractère AL32UTF8 comme défaut pour les bases.
  • L’amélioration du support de JSON (JavaScript Object Notation), des APIs .NET, Java et XML.
  • Amélioration sur les vues Matérialisées qui peuvent être interrogées même si elles sont dans un état instable (stale).
  • L’identifiant des objets (tables, indexes, …) n’est plus limité à 30 octets mais à 128 octets.
  • Séparation des informations statiques des dynamiques dans les répertoires d’installation ORACLE_HOME, ce qui va permettre de faire plus facilement des mises à jour sans arrêter la base de données
  • Utilisation dans SQL*Plus des fonctionnalité de pré-fetching, arrray fetching et « statement caching » via les nouvelles directives : SET PREFETCH, SET LOBPREFETCH et SET STATEMENTCACHE
  • Implémentation de vues et de statistiques spécifiques pour la fonctionnalité DRCP (Database Resident Connection Pooling), pour une meilleure optimisation du pool de connexions.
  • Pour Data Guard sur une configuration RAC, il est maintenant possible d’utiliser plusieurs instances pour l’application des redo (processus MRP sur plusieurs instances).
  • Autre nouveauté Data Guard, la nouvelle commande RMAN RECOVER DATABASE NOLOGGING qui permet de réparer les blocs marqués « UNRECOVERABLE » à cause d’une opération de chargement en mode NOLOGGING sur la base principale.
  • Amélioration pour les opérations de redéfinition en ligne : redémarrage possible, rollback possible, vue V$ONLINE_REDEF pour suivre le déroulement, temps d’invalidation des curseurs réduits, verrou exclusif supprimé pendant la phase FINISH_REDEF_TABLE
  • Déplacement en ligne sans blocage des opérations DML des tables non partitionnées.
  • Commande RESTORE+RECOVER dans RMAN pour réaliser les opérations en une étape.
  • La commande RECOVER TABLE de RMAN réalise un test de l’espace disponible sur la destination avant de démarrer (au lieu de dérouler tout le processus et de se terminer par une erreur système).
  • Présence d’un assistant pour déterminer la bonne méthode de calcul des statistiques sur les bases : Génération d’un rapport de suggestion pour l’amélioration de la méthode de calcul utilisée, basé sur ce qui est en œuvre et sur les bonnes pratiques.
  • Possibilité de définir des instances de type READ_ONLY dans une base de données RAC : nouveau paramètre INSTANCE_MODE
  • La base de données peut faire office de serveur NFS, elle répondra aux requêtes NFS clientes et stocke les fichiers et les metadonnées.
  • Compression avancée des index, nouveau mode de compression qui permet un taux de compression significatif, ce qui n’était pas vraiment le cas avec le mode disponible.
  • Pré-création des processus serveur, pour améliorer le temps de connexion.
  • Amélioration et nouvelles possibilités pour l’outil de collecte TFA (Trace File Analyzer), utilisé pour Oracle Clusterware, Oracle Grid Infrastructure et RAC. Il possède maintenant une interface Web et des options de diagnostics évolués (collecte sur incident par exemple).
  • Présence d’une vue nommée V$INDEX_USAGE_INFO pour déterminer si les index présents sont utilisés et à quelle fréquence.
  • Évolution de EM Express, l’outil graphique pour les DBA sur une base 12c, ajout de plusieurs fonctions : Gestion des plans de ressources, Gestion SPA (SQL Plan Analyzer).
  • Le SPLIT des miroirs ASM comme le font les autres gestionnaires de volumes, la possibilité de casser temporairement le mirroring ASM pour réaliser des sauvegardes.
  • Outil de défragmentation pour les systèmes de fichier ACFS, comme quoi c’est sans doute utile !

Vous trouverez la liste complète dans la documentation déjà disponible, comme « Oracle Database New Features Guide« , ainsi qu’au début de chaque manuel de documentation avec les changements introduits par version.
Dans le cadre de vos migrations futures, regardez aussi le chapitre 8 du Guide de migration.
Avec la participation d’EASYTEAM au programme Beta, nous nous sommes penchés plus particulièrement sur certains secteurs comme le multitenant ou les nouveautés liées à l’utilisation de « In-Memory » et nous sommes prêts dès aujourd’hui à implémenter avec vous ces nouvelles architectures sur vos projets, n’hésitez pas à nous contacter.