Outils personnels

Oracle 11gR2 sur RedHat 7 64 bits

De wikiGite

RedHat sera ici installé sur une machine virtuelle VMWare. Adapter la procédure en fonction des besoins.

Installation RedHat 7

1. Télécharger la dernière image ISO RedHat sur https://access.redhat.com

2. Créer une VM

  • ressources : 16G RAM, 300G disque format dynamique
  • Faire pointer le lecteur cd vers l'ISO RedHat

3. Activer (booter) la VM

4. IMPORTANT : L'installateur graphique de RedHat ne s'affiche pas correctement par défaut dans la console VMWare. Au lancement :

  • Aller dans « Troubleshooting » / « install in basic graphic mode  »
  • Touche TABULATION
  • remplacer "xdriver=vesa" par "vga=794", valider.

Note : on a pas ce problème sur une VM KVM.

5. Sur l'écran « Installation summary », choisir la langue et le clavier

6. Paramétrer le réseau dans « Network & hostname » (sélectionner la carte et cliquer sur « Configure »)

7. Paramétrer les partitions dans « Installation destination »

8. Sélectionner le disque de destination, demander la création des partitions automatiquement, puis supprimer /home (l'assistant crée une partition /home distincte sur le reste du disque. On veut garder cette place pour un "/u01" qui contiendra Oracle)

9. Revenir sur l'écran d’accueil et cliquer sur « Begin installation »

10. Pendant l'installation, créer le mot de passe root, ne pas créer d'autre utilisateur.

Une fois le système installé et la VM redémarrée, s'y connecter en SSH.

11. Vérifier que la VM a accès à internet

12. Enregistrer le système auprèsde Redhat :

subscription-manager register 
Le système a été enregistré avec l'ID : xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx

13. Lister les souscriptions disponibles et noter le numéro « ID du pool »,

subscription-manager list --available 

14. Souscrire à ce pool (ID ci-dessus sans les tirets)

subscription-manager subscribe --pool=xxxxxxxxxxxxxxxxxxxxxxxxxx 

15. Vérification :

subscription-manager list --consumed 

16. Vérifier les dépôts activés

yum repolist all

le dépôt « rhel-7-server-rpms/7Server/x86_64 » doit être actif 17. Mettre le système à jour

yum update

Préparation de l'installation d'Oracle 11gR2 par YUM

Selon http://www.snapdba.com/2014/01/oracle-database-11gr2-11-2-0-4-installation-on-oracle-linux-6-4/ et http://www.snapdba.com/2013/03/oracle-linux-6-4-installation-64-bit : en activant les dépôt d'Oracle linux (ou en installant directement Oracle linux), les pré-requis peuvent être automatisés par

yum install oracle-rdbms-server-11gR2-preinstall

A valider ! Et voir ce que ça automatise par rapport au chapitre ci-dessous.

Installation d'Oracle 11gR2 manuellement

1. Télécharger les fichiers sur https://support.oracle.com (au minimum : fichiers 1 et 2 (database), 4 (client), et 7 (uninstall))

2. Installer les pré-requis (le dépôt additionnel « server-optional-rpms est nécessaire pour le paquet compat-libstdc++-33)

yum install yum-utils xauth unzip psmisc
yum-config-manager --enable rhel-7-server-optional-rpms 
yum install ksh binutils glibc compat-libstdc++-33 compat-libcap1 glibc-common glibc-devel glibc-headers elfutils-libelf elfutils-libelf-devel elfutils gcc gcc-c++ ksh libaio libaio-devel libgcc libstdc++-devel make libXi libXtst numactl-devel sysstat mksh unixODBC unixODBC-devel 

3. Formater et monter une partition LVM /u01 à partir de l'espace libre restant sur le disque.

4. Initialiser l'arborescence Oracle

mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1 

5. Créer groupes et utilisateur

groupadd -g 502 oinstall 
groupadd -g 503 dba 
groupadd -g 504 oper 
groupadd -g 505 asmadmin # UTILE ?? 
useradd -u 502 -g oinstall -G dba,oper -d /u01 -s /bin/bash oracle11 
passwd oracle11 	

6. Changer les droits de /u01

chown -R oracle11:oinstall /u01 
chmod -R 775 /u01 

7. Adapter les paramètres système pour Oracle

vi /etc/sysctl.d/99-sysctl.conf 

ajouter :

#### Oracle 11g Kernel Parameters #### 
fs.suid_dumpable = 1 
fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.shmall = 2097152 
kernel.shmmax = 4294967296 
kernel.shmmni = 4096 
# semaphores: semmsl, semmns, semopm, semmni 
kernel.sem = 250 32000 100 128 
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default=4194304 
net.core.rmem_max=4194304 
net.core.wmem_default=262144 
net.core.wmem_max=1048586 


vi /etc/security/limits.conf

ajouter :

#### oracle User Settings 4 Oracle 11g #### 
oracle11              soft    nproc   2047 
oracle11              hard    nproc   16384 
oracle11              soft    nofile  4096 
oracle11              hard    nofile  65536 
oracle11              soft    stack   10240 
oracle11              hard    stack   32768 

appliquer les paramètres :

/sbin/sysctl -p 

8. Désactiver SELINUX et le firewall local

systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config

modifier :

SELINUX=disabled 

9. Se connecter sous l'utilisateur Oracle (attention aux espaces autour du « - »)

su - oracle11 
vi .bashrc

ajouter :

# Oracle Settings 
TMP=/tmp; export TMP 
TMPDIR=$TMP; export TMPDIR 
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE 
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME 
PATH=$ORACLE_HOME/bin:$PATH; export PATH 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

9.1. Sur RH7 et bash, c'est .bash_profile qui est lancé en interactif. Créer .bash_profile :

vi .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

NOTE : Sur linux, en interactif (connexion à une console ou ssh), c'est .bash_profile qui est exécuté. En non-interactif (cron, su -c, etc.) c'est .bashrc qui est exécuté.

IMPORTANT : charger ces configurations avant de lancer l'installation !

source .bash_profile

10. dézipper les archives oracle (par exemple dans /u01/install), donner les droits à oracle11

chown -R oracle11.oinstall  /u01/install/database 

11. Lancer l'installation

cd /u01/install/database 
./runInstaller

NOTE : l'installation est graphique. Ne pas oublier « xhost + » et « ssh -X » si client linux, ou Xming si client Windows.

Répondre Y si l'avertissement suivant s'affiche :

Vérification de l'écran : doit être configuré pour afficher au moins 256 couleurs 
   >>> Impossible d'exécuter la vérification automatique des couleurs d'affichage à l'aide de la commande /usr/bin/xdpyinfo. Vérifiez que la variable DISPLAY est définie.    Echec <<<< 
Echec de la vérification de certaines exigences. Vous devez répondre à ces exigences pour pouvoir poursuivre l'installation, Voulez-vous poursuivre ? (o/n) [n]

12. Passer les différents écrans graphiques avec le bouton « suivant » :

  • ne pas donner d'adresse électronique, décocher "recevoir les mises à jour..." > suivant (valider l'avertissement)
  • ignorer les mises à jour > suivant (valider "ne pas être averti....")
  • installer le logiciel uniquement > suivant (les bases de données seront créées individuellement plus tard)
  • bases mono-instance (« single instance ») > suivant
  • langues anglais+français > suivant
  • Standard Edition > suivant
  • vérifier les chemins ORACLE_BASE et ORACLE_HOME > suivant
  • vérifier chemin oraInventory (créé automatiquement) et groupe > suivant
  • vérifier groupes dba,oper > suivant

13. A la validation, le message indiquant un swap trop petite (< RAM) peut être ignoré; de même le message indiquant « pdksh » manquant peut être ignoré aussi (le package « ksh » le remplace).

S'il n'y a que ces 2 avertissements, cocher "ignorer tout" et valider.

NOTE RedHat7 : en cas d'erreur

"Erreur lors de l'appel de la cible 'agent nmhs' du fichier Make"
  • laisser l'installateur en attente
  • aller en console dans le répertoire /u01/app/oracle/product/11.2.0.4/sysman/lib
  • éditer ins_emagent.mk avec vi
  • chercher MK_EMAGENT_NMECTL, remplacer la ligne  :
$(MK_EMAGENT_NMECTL) 

par

$(MK_EMAGENT_NMECTL) -lnnz11 
  • sauver, revenir à l'installateur et cliquer « réessayer  »

14. A la fin de l'installation, exécuter en "root" les 2 scripts indiqués

Installation du patch 11.2.0.4.1

1. Le patch « DATABASE_PATCH_SET_11.2.0.4.1 » est disponible sur support.oracle.com sous le nom « p17478514_112040_Linux-x86-64.zip ».

2.Télécharger aussi la dernière version d'Opatch (11.2.0.3.5 = p6880880_112000_Linux-x86-64.zip).

cd $ORACLE_HOME
unzip /ora11ginst/OPatch/Patch\ 6880880/p6880880_112000_Linux-x86-64.zip

et répondre « A » (« All »)

3. Décompresser le patch et lancer la vérification

unzip p17478514_112040_Linux-x86-64.zip
cd 17478514
opatch prereq CheckConflictAgainstOHWithDetail -ph ./

4. Si la vérification répond « Prereq "checkConflictAgainstOHWithDetail" passed. », lancer la mise à jour

opatch apply

« Entrée » sur « Adresse électronique/nom utilisateur : », et « O » sur « Voulez-vous ne pas être informé des problèmes de sécurité ([O]ui, [N]on) [N] ? »

Clone de la machine virtuelle RH7 (si nécessaire)

Stopper la VM, la cloner. Lancer la VM clonée, modifier l'adresse IP et /etc/hostname. Vérifier la souscription :

subscription-manager refresh 

En cas de problème, la refaire :

subscription-manager clean 
subscription-manager unregister 
subscription-manager register

Création des bases de données

Le programme Oracle ayant été installé seul (sans création de base), lancer d'abord "netca" pour créer un LISTENER, puis "dbca" pour créer les bases.

Suivre les écrans de création de la base (les options dépendent des besoins de la base, à voir individuellement).

Après création d'une base, si la console DBCONSOLE a été installée (par défaut), on y accède par :

https://176.100.3.145:1158/em

L'initialisation de l'environnement Oracle en console se fait par :

/usr/local/bin/oraenv

Démarrage-arrêt automatique du listener et des bases :

  • modifier /etc/oratab, mettre "Y" (en bout de ligne) pour les bases à lancer/arrêter automatiquement
  • créer un fichier /etc/systemd/system/dboracle.service contenant :
[Unit] 
Description=Oracle Autostart Service 
After=syslog.target network.target 

[Service] 
Type=simple 
RemainAfterExit=yes 
User=oracle11 
Group=oinstall 
ExecStart=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart /u01/app/oracle/product/11.2.0/dbhome_1 
ExecStop=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut /u01/app/oracle/product/11.2.0/dbhome_1 

[Install] 
WantedBy=multi-user.target 

Activer le démarrage automatique des bases Oracle :

systemctl enable dboracle.service

Si nécessaire, le démarrage manuel de bases est possible par :

$ORACLE_HOME/bin/dbstart $ORACLE_HOME 

Et l'arrêt des bases:

$ORACLE_HOME/bin/dbshut $ORACLE_HOME

Ressources

http://linux-tutorial-for-beginners.blogspot.fr/2013/04/linux-fedora-18-gnome3-howto-install-gettingstarted-oracle-11g-r2-database.html

http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#BHCHBHDB