Maintenant que la version 12c est descendue des nuages, il faut envisager son implémentation partout dans le SI. Il faut prévoir les différentes tâches à réaliser et déterminer les impacts. Mais avant d’envisager une refonte complète ou partielle de son infrastructure avec la mise en place d’une architecture mutualisée “Multitenant”, cette première série se concentre sur une mise à niveau « traditionnelle » d’une base de données Oracle. Cela permet de bénéficier des avancées du support, de commencer à expérimenter la version dans des conditions réelles et de profiter pleinement des nouvelles fonctionnalités.
Ce premier épisode commence donc par la mise en place du décor et des personnages qui nous accompagneront tout au long cette aventure.
Vous vous en êtes sans doute déjà rendu compte, nous sommes très fans d’Oracle VM pour x86! Pour accélérer les tests, les faciliter tout en permettant de challenger les performances des systèmes, nous avons donc naturellement utilisé une machine virtuelle 64-bit avec Oracle Linux 6.4 sur une infrastructure OVM 3.2. Ce premier article explore l’installation des logiciels et les créations des bases de données associées. Evidemment pour représenter des scénarios proches de la réalité, toutes les opérations ont été réalisées en mode silencieux.
La machine virtuelle
Nos machines virtuelles sont construites à partir du modèle OVF Oracle Linux 6 Update 4 “paravirtualized x86_64 V38315-01”, téléchargé depuis Oracle Software Delivery Cloud.
Note:
Vous pouvez évidemment et désormais utiliser un raccourcis pour installer une base de données 12c ) partir du modèle « Oracle VM Templates for Oracle Database – Single Instance and RAC 12cR1 (12.1.0.1.0) – Oracle Linux (64 bit), V38984-01 and V38985-01 » également téléchargeable sur Oracle Software Delivery Cloud.
Le serveur logique est configuré au départ avec 2 CPU, 2Go de RAM , 2Go de swap, un pseudo disque externe de 60Go sur lequel toutes les opérations seront faites (système de fichier ext4 monté sur /u01). L’avantage d’utiliser un template Oracle est en dehors de ne pas avoir l’installation du système d’exploitation à faire, d’avoir la configuration de “yum” déjà faite et pointant vers les serveurs publics de l’éditeur (/etc/yum.repos.d/public-yum-ol6.repo).
La mise en place des pré requis est alors rapide et simple via une seule commande :
yum install oracle-rdbms-server-11gR2-preinstall
Note:
On peut trouver sur le dépôt public la version du rpm pour la 12c oracle-rdbms-server-12cR1-preinstall, ce n’est cependant pas celle utilisée ici du fait qu’on installe les 2 versions d’Oracle sur le système.
Une base de données Oracle 11g Release 2
Pour faciliter la comparaison, nous avons installé une base de données 11g Release 2 sur le système. Le script ci-dessous crées les répertoires et droits appropriés :
# chmod 777 /u01 # su - oracle $ mkdir -p /u01/distrib/db112 $ mkdir -p /u01/app/oracle/product $ mkdir /u01/app/oracle/oradata $ chown -R oracle:dba /u01/app
Nous avons transferé et extrait les binaires de la version 11.2.0.3, c’est à dire le patchset 10404530 :
p10404530_112030_x86_64_1of7.zip p10404530_112030_x86_64_2of7.zip
Une fois dézippés, nous avons installé les binaires à l’aide des commandes ci-dessous :
$ export DISTRIB=/u01/distrib/db112/database $ cd $DISTRIB $ ./runInstaller -silent -ignoreSysPrereqs \ > -ignorePrereq -responseFile /u01/distrib/db112/database/response/ee_install.rsp \ > oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall \ > SELECTED_LANGUAGES=en ORACLE_BASE=/u01/app/oracle \ > ORACLE_HOME=/u01/app/oracle/product/11.2.0.3 \ > oracle.install.db.InstallEdition=EE \ > oracle.install.db.DBA_GROUP=dba \ > oracle.install.db.OPER_GROUP=dba \ > DECLINE_SECURITY_UPDATES=true INVENTORY_LOCATION=/u01/app/oracle
Les messages ci-dessous demandent l’exécution des scripts en tant que root :
As a root user, execute the following script(s): 1. /u01/app/oracle/orainstRoot.sh 2. /u01/app/oracle/product/11.2.0.3/root.sh Successfully Setup Software.
Il faut vérifier l’absence de problème :
# grep -i err /u01/app/oracle/logs/installActions2013-06-28_03-19-36AM.log \ |grep -v gif |grep -v INFO| grep -v disasterRecovery|grep -v OVERRIDE
Il ne doit y avoir aucune ligne ramenée, sinon il faut analyser le fichier de log de plus près.
Enfin, nous avons utilisé un script crdb_ora112.sh pour créer la base de données associée au logiciel à l’aide de la commande ci-dessous :
# # Creating ora112 database using dbca in silent mode # export ORACLE_HOME=/u01/app/oracle/product/11.2.0.3 export PATH=$ORACLE_HOME/bin:$PATH dbca -silent -responseFile NO_VALUE \ -createDatabase -templateName General_Purpose.dbc \ -gdbName ora112 -sid ora112 -SysPassword easy_4U \ -SystemPassword easy_4U -emConfiguration LOCAL \ -dbsnmpPassword easy_4U -sysmanPassword easy_4U \ -storageType FS -datafileDestination /u01/app/oracle/oradata \ -redoLogFileSize 200 -sampleSchema true \ -characterSet AL32UTF8 -totalMemory 740
Note
L’ensemble de la commande doit être sur une seule ligne ou séparée par un back-slash pour permettre que tous les paramètres soient pris en compte.
La création de la base de données ressemble à ce qui suit :
$ ./crdb_ora112.sh Copying database files 1% complete 3% complete 11% complete 18% complete 26% complete 37% complete Creating and starting Oracle instance 40% complete 45% complete 50% complete 55% complete 56% complete 57% complete 60% complete Completing Database Creation 66% complete 70% complete 73% complete 85% complete 96% complete 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ora112/ora112.log" for further details. Vérification : $ grep -i err /u01/app/oracle/cfgtoollogs/dbca/ora112/ora112.log
Comme vous pouvez le vérifier, aucun problème n’apparait lors de l’installation non plus. Le listener par défaut est créé avec la base de données et la console :
$ ps -ef |grep smon oracle 10690 1 0 04:07 ? 00:00:01 ora_smon_ora112 oracle 18391 6298 0 05:35 pts/0 00:00:00 grep smon $ ps -ef |grep lsnr oracle 9981 1 0 04:02 ? 00:00:00 /u01/app/oracle/product/11.2.0.3/bin/tnslsnr $ emctl status dbconsole Oracle Enterprise Manager 11g Database Control Release 11.2.0.3.0 Copyright (c) 1996, 2011 Oracle Corporation. All rights reserved. https://easydirtech.easyteam.fr:1158/em/console/aboutApplication Oracle Enterprise Manager 11g is running. ------------------------------------------------------------------ Logs are generated in directory /u01/app/...
Pour terminer, nous aurions du arrêter la base de données ora112 afin d’éviter tout conflit avec l’installation de la version 12c :
$ . oraenv ORACLE_SID = [oracle] ? ora112 The Oracle base has been set to /u01/app/oracle $ lsnrctl stop $ sqlplus / as sysdba SQL> shutdown immediate $ emctl stop dbconsole
Base de données Oracle 12c Release 1
L’installation des binaires de la version 12.1.0.1 ressemble fortement à celle de la 11g. Nous avons transféré et extrait la distribution disponible sur OTN dans /u01/distribs/db121:
linuxamd64_12c_database_1of2.zip linuxamd64_12c_database_2of2.zip
Note:
Il s’agit bien des fichiers pour le logiciel base de données linux x86 64 bits
L’utilisation du mode silencieux s’appuie sur le fichier de réponse db_install.rsp disponible sous $DISTRIB/database/response. Celui-ci présente quelques modifications qui sont induites par les nouvelles fonctionnalités, voici celles repérées :
- Plus de choix dans la sélection possible des options en cas de version Enterprise, les choix pour OLAP, Datamining, OLS, Partitionnement et RAT on disparus, ceci sera développé prochainement dans un épisode dédié de la série;
- Définition du nom des groupes pour les privilèges BACKUPDBA, DGDBA et KMDBA, d’ou l’apparition de nouvelles variables dans la ligne de commande;
- Configuration spécifique pour les base de données RAC avec la précision du choix de la configuration (ADMIN_MANAGED, POLICY_MANAGED) , le nom de la pool de serveur et la cardinalité dans le cas de la gestion POLICY_MANAGED , épisode “RAC Database 12c” ;
- Changement pour les options de la base de données créée par défaut (oracle.install.db.*) :
- La configuration avec l’option Multitenant , container ou PDB (pluggable Database), et le mot de passe associé (oracle.install.db.config.starterdb.password.PDBADMIN), dont vous pouvez déjà trouver des éléments dans d’autres séries de notre blog en français;
- Le fait que la configuration ASMM ne soit plus celle par défaut;
- L’absence des schémas d’exemple et en fin la modification de la configuration des outils d’administration avec le remplacement de Database Control par Database Express et la modification de la manière de se connecter au Cloud Control.
Ce qui nous donne au final un script de création similaire mais cependant légèrement différent :
$ ./runInstaller -silent -ignoreSysPrereqs > -ignorePrereq -responseFile $DISTRIB/response/ee_install.rsp > oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall > SELECTED_LANGUAGES=en ORACLE_BASE=/u01/app/oracle > ORACLE_HOME=/u01/app/oracle/product/12.1.0.1 > oracle.install.db.InstallEdition=EE > oracle.install.db.DBA_GROUP=dba > oracle.install.db.OPER_GROUP=dba > oracle.install.db.BACKUPDBA_GROUP=dba > oracle.install.db.DGDBA_GROUP=dba > oracle.install.db.KMDBA_GROUP=dba > DECLINE_SECURITY_UPDATES=true
L’inventaire étant déjà créé et configuré, il n’y a que le script pour les droits et propriétaire demandé sur l’ORACLE_HOME:
$ The installation of Oracle Database 12c was successful. Please check 'silentInstall2013-06-28_09-10-54AM.log' for more details. As a root user, execute the following script(s): 1. /u01/app/oracle/product/12.1.0.1/root.sh Successfully Setup Software.
Moins d’informations sont présentes dans le fichier log et sur la fenêtre de lancement. Voici le contenu de celui-ci quand cela ce déroule bien :
silentInstall2013-06-28_09-10-54AM.log The installation of Oracle Database 12c was successful.
Une fois le logiciel installé, nous pouvons créer la base de données 12c. Bien que l’objectif soit surtout d’étudier la mise à niveau des bases de données de versions précédentes vers la version 12c, nous allons d’abord valider que l’installation se déroule correctement en créant une base nommée ora121. Voici le contenu du script ayant servi à cette création :
# # Creating the ora121 database using dbca in silent mode # export ORACLE_HOME=/u01/app/oracle/product/12.1.0.1 export PATH=$ORACLE_HOME/bin:$PATH dbca -silent -responseFile NO_VALUE \ -createDatabase -templateName General_Purpose.dbc \ -createAsContainerDatabase false -gdbName ora121 \ -sid ora121 -SysPassword easy_4U -SystemPassword easy_4U \ -emConfiguration DBEXPRESS -dbsnmpPassword easy_4U \ -storageType FS -datafileDestination /u01/app/oracle/oradata \ -redoLogFileSize 200 -sampleSchema true -characterSet AL32UTF8 \ -totalMemory 740
Noter les changements comme :
- -createASContainerDatabase false,
- -emConfiguration DBEXPRESS et la disparition du mot de passe pour le compte SYSMAN.
L’exécution du script ressemble à ce qui suit :
$ ./crdb_ora12.1.sh Copying database files 1% complete 3% complete 11% complete 18% complete 26% complete 37% complete Creating and starting Oracle instance 40% complete 45% complete 50% complete 55% complete 60% complete 61% complete 62% complete 65% complete Completing Database Creation 69% complete 73% complete 76% complete 88% complete 91% complete 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ora121/ora121.log" for further details.
Note
Pas d’erreur détectée dans le fichier de log, cependant, la base en 11.2 n’ayant pas été arrêtée préalablement nous avons constaté que le memory_target de 760M n’a pas pu être configuré. L’assistant s’est débrouillé et a décidé de passer en ASMM, permettant ainsi le bon déroulement de la création de la base. Il vaut mieux être certain d’avoir assez de mémoire à disposition pour les deux bases, ou n’en faire qu’une seule à la fois.
DBCA n’a pas créé le listener de la base 12c. Cette erreur est peut être dû à la présence d’une autre installation sur notre serveur, il faudrait le vérifier en partant d’une machine vierge. Pour le créer, nous avons utilisé l’assistant netca, en mode silencieux, avec au préalable une légère modification du fichier de réponse netca.rsp, en supprimant Oracle Names des possibilités de résolutions de nom :
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
Devenant :
NAMING_METHODS={"TNSNAMES","HOSTNAME"}
Dans l’environnement de notre base ora121 , la commande de création est alors la suivante :
$ . oraenv ORACLE_SID = [ora112] ? ora121 The Oracle base remains unchanged with value /u01/app/oracle $ netca -silent -responsefile /home/oracle/netca.rsp Parsing command line arguments: Parameter "silent" = true Parameter "responsefile" = /home/oracle/netca.rsp Done parsing command line arguments. Oracle Net Services Configuration: Profile configuration complete. Oracle Net Listener Startup: Running Listener Control: /u01/app/oracle/product/12.1.0.1/bin/lsnrctl start LISTENER Listener Control complete. Listener started successfully. Listener configuration complete. Oracle Net Services configuration successful. The exit code is 0
Nous avons maintenant sur notre serveur de test une base ora112 en version 11.2.0.3, une base de données ora121 en version 12.1.0.1 ainsi que les listeners et outils d’administration associés. Tout est prêt et en place pour l’épisode suivant “tâches de pré-mise à jour”, à venir rapidement…
1 réflexion sur “Voyage vers la base de données Oracle 12c – Episode 1”
Pour en savoir plus sur l’installation de la Database 12c, vous pouvez suivre le cours dont le descriptif est disponible sur ce lien :
https://easyteam.fr/formation-oracle/Catalogue/oracle-database-12c-installation-et-mise-a-niveau-D77766
Les commentaires sont fermés.