12cR2 du Cloud vers Virtual Box

Vous le savez sans doute tous maintenant, la version 12cR2 d’Oracle est pour le moment uniquement disponible dans le Cloud au travers d’Oracle Database Cloud service; il est cependant facile d’obtenir un accès gratuit pour 30 jours et d’avoir à disposition cette distribution pour satisfaire une curiosité légitime et réaliser quelques tests.

On s’aperçoit cependant qu’un mois c’est très court, surtout si vos autres tâches vous accaparent et vous laissent peu de temps pour le reste.
Aussi, voici comment récupérer la distribution et la cloner sur un de vos serveurs.
Ce que j’ai utilisé est une VM VirtualBox basée sur Oracle Linux 6.6 et déjà configurée avec une version 12.1.0.2 (ce qui évite de se poser toutes les questions sur les pré-requis, qui a priori restent les mêmes). Bien entendu, l’usage de cette distribution ne sera que pour des tests d’évaluation et ne sera en aucun cas lié à l’utilisation en production d’une application.
 

Première étape : créer votre service base de données dans le Cloud Oracle

Faire une demande d’essai des services Oracle Cloud, si vous avez des doutes sur la démarche, reportez vous à notre précédent article sur le Paas Database.
Après validation et retour de vos identifiants de domaine, créer une instance « Oracle Database Cloud Service », choisir la version « Oracle Database 12c version 2 – Oracle Database Version 12.2.0.1 installé sur Oracle Linux 6.6 » et l’édition désirée, par exemple « Enterprise Edition – Performances extrèmes » qui contient toutes les options.
Entrer toutes les informations nécessaires dans le formulaire pour créer votre base de données en n’oubliant pas de générer vos clés SSH d’accès sécurisé.
Exemple:
formdbservice
Quelques minutes après la soumission du formulaire, vous avez le message de création de l’instance et les informations sur celle-ci, particulièrement l’adresse IP publique de connexion :
dbeleorcl

Deuxième étape : récupération du binaire 12.2.0.1

Création d’une arborescence de clonage depuis les binaires d’origine.
Connexion via l’adresse IP publique et votre clé privé via putty ou autre (pour moi MobaXterm).
La connexion se fait au travers du compte oracle (pas de mot de passe, votre clé sert d’authentification).

a) Création de l’arborescence de clonage

[oracle@ELEORCL dbhome_1]$ cp -Rp /u01/app/oracle/product/12.2.0/dbhome_1 /u01/app/oracle/product/12.2.0_clone
cp: cannot open `/u01/app/oracle/product/12.2.0/dbhome_1/root.sh.bkup' for reading: Permission denied

b) Génération du package tar compressé pour le transfert

[oracle@ELEORCL dbhome_1]$ cd /u01/app/oracle/product/12.2.0_clone
[oracle@ELEORCL 12.2.0_clone]$ tar -cvf /u01/source12.2.tar .
[oracle@ELEORCL u01]$ du -sh source12.2.tar
8.0G    source12.2.tar
[oracle@ELEORCL u01]$ gzip source12.2.tar
[oracle@ELEORCL u01]$ du -sh source12.2.tar.gz
3.7G    source12.2.tar.gz

c) Transfert du package résultant sur votre serveur

Commande « scp » pour réaliser le transfert, avec MobaXterm l’outil est intégré et on navigue graphiquement dans les arborescences cibles ou destinations.
Le taux de transfert dans mon cas a été d’un peu plus de 30Mo/mn soit moins de 2h30 pour récupérer le package des 3,7 Go.
 

Troisième étape : création ORACLE HOME 12cR2

Se baser sur les informations contenues dans la note MOS : « Cloning An Existing Oracle Database 12c Release 1 (12.1.0.x) RDBMS Installation Using OUI (Doc ID 1493677.1) »

a) Décompression et décompactage du binaire dans le répertoire ORACLE_HOME de destination

Pour moi : /u03/app/oracle/product/12.2

$ gunzip /temp/source12.2.tar.gz
$ mkdir /u03/app/oracle/product/12.2
$ cd /u03/app/oracle/product/12
$ tar xvf /temp/source12.2.tar

b) Clonage pour initialisation du nouvel ORACLE_HOME

Utilisation des binaires de la version 12.1 : pour cela, noter qu’un relink des exécutables est réalisé pendant l’opération :

$ . oraenv
ORCL121
$ cd $ORACLE_HOME/clone/bin
$ perl clone.pl ORACLE_HOME="/u03/app/oracle/product/12.2" ORACLE_HOME_NAME="OraDBHome122" ORACLE_BASE="/u01/app/oracle" OSDBA_group=oinstall OSOPER_GROUP=oinstall
./runInstaller -clone -waitForCompletion  "ORACLE_HOME=/u03/app/oracle/product/12.2" "ORACLE_HOME_NAME=OraDBHome122" "ORACLE_BASE=/u01/app/oracle" "OSDBA_group=oinstall" "oracle_install_OSOPER=oinstall" -silent -paramFile /u03/app/oracle/product/12.2/clone/clone_oraparam.ini
Démarrage d'Oracle Universal Installer...
Vérification de l'espace temporaire : doit être supérieur à 500 Mo.   Réel 8235 Mo    Succès
Vérification de l'espace de swap : il doit être supérieur à 500 Mo.   Réel 6015 Mo    Succès
Préparation du lancement d'Oracle Universal Installer à partir de /tmp/OraInstall2016-12-22_03-38-48PM. Veuillez patienter...Le journal de cette session d'installation se trouve dans :
 /u01/app/oraInventory/logs/cloneActions2016-12-22_03-38-48PM.log
..................................................   5% Terminé.
..................................................   10% Terminé.
..................................................   15% Terminé.
..................................................   20% Terminé.
..................................................   25% Terminé.
..................................................   30% Terminé.
..................................................   35% Terminé.
..................................................   40% Terminé.
..................................................   45% Terminé.
..................................................   50% Terminé.
..................................................   55% Terminé.
..................................................   60% Terminé.
..................................................   65% Terminé.
..................................................   70% Terminé.
..................................................   75% Terminé.
..................................................   80% Terminé.
..................................................   85% Terminé.
..........
Copier les fichiers en cours.
Réussite de Copier les fichiers
Lier les fichiers binaires en cours.
Réussite de Lier les fichiers binaires
Fichiers de configuration en cours.
Réussite de Fichiers de configuration
Configurer l'inventaire en cours.
Réussite de Configurer l'inventaire
Réussite de Terminer la configuration
L'opération clonage de OraDBHome122 a réussi.
Pour plus de détails, consultez '/u01/app/oraInventory/logs/cloneActions2016-12-22_03-38-48PM.log'.
Configurer Oracle Base en cours.
Réussite de Configurer Oracle Base
..................................................   95% Terminé.
En tant qu'utilisateur root, exécutez les scripts suivants :
	1. /u03/app/oracle/product/12.2/root.sh
..................................................   100% Terminé.

A noter que l’utilisation de la commande « runInstaller.sh » comme précisé dans la note MOS n’a pas fonctionné (blocage et sortie sans message du code java).

c) Mise en place des droits

Avec une connexion « root » , exécution du fichier demandé :

[root@ele1ole6 ~]# /u03/app/oracle/product/12.2/root.sh
Check /u03/app/oracle/product/12.2/install/root_ele1ole6_2016-12-22_15-47-56-891239433.log for the output of root script
[root@ele1ole6 ~]# cat /u03/app/oracle/product/12.2/install/root_ele1ole6_2016-12-22_15-47-56-891239433.log
Performing root user operation.
The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u03/app/oracle/product/12.2
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Oracle Trace File Analyzer (TFA) is available at : /u03/app/oracle/product/12.2/suptools/tfa/release/tfa_home/bin/tfactl

Avant dernière étape: nettoyage des fichiers de configuration réseaux

Les fichiers « listener.ora » et « sqlnet.ora » provenant du Cloud Oracle sont configurés pour utiliser le cryptage sur le réseau et il y a le nom du serveur dans le fichier « listener.ora ».
Ce n’est pas forcément votre souhait, pour le modifier :

  • Supprimer la ligne « SSL_VERSION=1.0 » du fichier « listener.ora »
  • Modifier le nom HOST de la définition LISTENER dans le même fichier
  • Supprimer le fichier « sqlnet.ora » ou enlever les lignes relatives au cryptage.

Le listener peut ensuite être démarré sans erreur.
 

Dernière étape: créer votre base de données en version 12.2

Configurer $ORACLE_HOME et $PATH correctement, démarrer « dbca ».
Le reste, vous connaissez, et bonne nouvelle, il n’est pas encore obligatoire de créer une base en configuration « multitenant », l’architecture classique reste possible.
basecreatedok
Base créée, vous pouvez vous y connecter et vous voyez que l’entête correspond à la version choisie lors de la création de votre service dans le cloud ORACLE :

[oracle@ele1ole6 bin]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Thu Dec 22 17:46:43 2016
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connecte a :
Oracle Database 12c EE Extreme Perf Release 12.2.0.1.0 - 64bit Production

Maintenant, plus de limite de temps pour tester et envisager vos migrations. En attendant pour démarrer le projet que la distribution soit disponible sur les canaux habituels… ou en prenant un abonnement puisque les nuages ne sont pas seulement là pour rêver.
Petite mise à jour:
En date de début février Oracle a annoncé les dates de la mise à disposition des versions On-Premise de la 12CR2.
Les voici extraites de la note MOS en référence.
On-Premise Engineered Systems
Exadata 15-Feb-2017
Supercluster 15-Feb-2017
Oracle Database Appliance 1HCY2017
On-Premise Server Releases (includes client)
Linux x86-64 15-Mar-2017
Oracle Solaris SPARC (64-bit) 15-Mar-2017
IBM AIX on POWER Systems Q2CY2017
HP-UX Itanium Q2CY2017
Release Schedule of Current Database Releases (Doc ID 742060.1)