Outils pour utilisateurs

Outils du site


enterprise_manager_em12c

Introduction

L'objectif ici est de décrire la mise en place complète d'un environnement Entreprise Manager version 12c nommé aussi em12c.

La mise en place se fera sur un serveur CentOS version 5.8 en 64bits.

La version de la base Oracle sera la 11.2.0.3 toujours en 64bits.

L'installation de em12c demande un soin particulier sur la configuration du noyau linux, les packages requis ainsi que sur la configuration de la base de données Oracle devant supporter le référentiel. La gestion correcte des noms de machines est vitale. Il importe d'avoir soit des fichiers /etc/hosts à jour ou une bonne gestion DNS. De nombreuses erreurs d'installation sont dues à un mauvaise résolution des noms.

Principe du GRID

Le GRID permet d'étendre les fonctionnalités disponibles individuellement avec le dataBase Control à un ensemble de base de données appelées des cibles.

Les informations sont disponibles via un simple navigateur web. La gestion de l'application web est assurée par un serveur J2EE Weblogic appelé service management. Les informations sont stockées dans une base de données Oracle dédiée, le référentiel.

Le schéma ci-dessous présente cette architecture.

Sur chaque cible, un agent envoie les informations au serveur weblogic qui sont stockées dans le référentiel. Le référentiel est une base de données Oracle pouvant être 10g ou 11g. Elle peut être située sur le même serveur que le service management ou à part via une liaison Thin JDBC.

Les communications entre les cibles et le service management ainsi que vers le navigateur web se font en http ou https ( valeur par défaut ).

Installation du serveur Linux

La version choisie sera centOS 5.8 en 64 bits. Le serveur dispose de la configuration suivante :

  • Processeur i3 Intel
  • RAM de 4Go ( en production mettre 8Go, la BD prend déjà 3Go et le serveur Weblogic est gourmand… )
  • Disque dur SATA de 160Go

Il sera procédé à une installation minimale ( package core ) de CentOS. Le disque dur sera partitionné ainsi :

Primaire
MontageType Taille
/bootExt2 100Mo
swap 4Go
/Ext3 2000Mo
Logique
MontageType Taille
/usrExt3 5Go
/usr/localExt3 5Go
/varExt3 2Go
/tmpExt3 2Go
/optExt3 10Go
/u01Ext3 30Go
/u02Ext3 30Go
/u03Ext3 30Go
/homeExt3 Le reste

L'adresse IP du serveur sera 192.168.1.100 et sera nommé adi100.adimcor.eu.

Important : Modifier le fichier /etc/hosts afin que le nom court ( adi100 ) et le FQDN du serveur ( adi100.adimcor.eu ) pointe bien sur l'IP fixe

127.0.0.1       localhost.localdomain localhost
192.168.1.100   adi100.adimcor.eu adi100

Sans cela lors de la configuration oms, le serveur ne pourra pas démarrer. Il y aura dans les logs une erreur de ce type :

opmnctl cmd error: Connexion adi100.adimcor.eu - ID de cluster de notification manquant

Une configuration correcte du DNS fait également l'affaire.

Rappel : Une gestion incorrecte des noms de machine est la source principale des erreurs d'installation.

Désactivation de fonctionnalités

Par défaut et malgré une installation minimale CentOS active les services iscsi qui sont inutiles ici.

chkconfig --del iscsi
chkconfig --del iscsid
service iscsi stop

Désactiver aussi la sécurisation selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

Activer ntp

Il est important que le serveur soit à l'heure en activant ntp

chkconfig ntpd on
ntpdate fr.pool.ntp.org
service ntpd start

Simuler une RedHat

Oracle vérifie la plate-forme, bien que CentOS soit une RedHat le fichier /etc/redhat-release n'existe pas.

echo "Red Hat Enterprise Linux Server release 5 (Tikanga) Update 8" > /etc/redhat-release

Paramètres noyau

Ajouter les lignes suivantes au fichier /etc/sysctl.conf

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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 = 1048576

La documentation Oracle demande aussi des valeurs spécifiques pour kernel.shmmax et kernel.shmall. les valeurs par défaut dans CentOS 5.8 étant supérieures, elles ne seront pas modifiées.

Activer les paramètres noyau

sysctl -p

Packages requis

Une fois l'installation basique, il faut rajouter un certain nombres de packages

yum -y install compat-libstdc++-296 compat-libstdc++-33 \
make elfutils-libelf-devel glibc-devel \
glibc-headers gcc gcc-c++ \
libaio-devel  sysstat unixODBC \
unixODBC-devel xorg-x11-deprecated-libs unzip \
pdksh setarch rng-utils

Afin de pouvoir procéder à une installation en mode graphique, il faut aussi installer au minimum la couche X-Window. L'installation se fera ensuite par export display via ssh sur un client X.

yum -y groupinstall "Système X Window"

La connexion en export display depuis un client X est simple, par exemple depuis un client Ubuntu

ssh -X root@192.168.1.100

Tester avec la commande xclock.

Si le poste est sous windows télécharger l'utilitaire putty et le serveur xming. Paramétrer putty pour autoriser la gestion X11 ( Connection → SSH → X11 et chocher Enable X11 forwarding )

Installation Oracle

Créer le user oracle au niveau linux ainsi que les groupes nécessaires.

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
passwd oracle

Comme mot de passe oracle, pour la maquette, mettre manager11 ( en production choisir un mot de passe plus fort ).

Rajouter les lignes suivantes dans /etc/security/limits.conf

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

Modifier le fichier /etc/pam.d/login et ajouter la ligne suivante :

session required pam_limits.so

Editer le fichier /etc/profile et ajouter les lignes suivantes :

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

Créer les répertoires

mkdir -p /u01/app/oracle
mkdir -p /u02/app/oracle
mkdir -p /u03/app/oracle
chown -R oracle:oinstall /u01 /u02 /u03

Binaires Oracle

Pour la base du référentiel, il est possible d'utiliser les versions de Oracle de 10g à 11g. J'ai choisi la version la plus à jour au moment de la rédaction de cet article. Toutefois si vous n'avez pas de compte My Oracle Suport, la version 11.2.0.2 disponible sur le site oracle convient.

Depuis le site My Oracle Support charger les binaires de la version 11.2.0.3 qui comprend 2 fichiers .zip :

  • p10404530_112030_Linux-x86-64_1of7.zip
  • p10404530_112030_Linux-x86-64_2of7.zip

Les copier dans le répertoire /home et les décompresser

mkdir -p /home/ora11g
cd /home/ora11g
unzip /home/p10404530_112030_Linux-x86-64_1of7.zip
unzip /home/p10404530_112030_Linux-x86-64_2of7.zip

Depuis le site oracle, charger les bianire de em12c, il sont au nombre de 3 :

  • em12_linux64_disk1.zip
  • em12_linux64_disk2.zip
  • em12_linux64_disk3.zip

Les copier dans le répertoire /home et les décompresser

mkdir -p /home/ora11g/em12c
cd /home/ora11g/em12c
unzip home/em12_linux64_disk1.zip
unzip home/em12_linux64_disk2.zip
unzip home/em12_linux64_disk3.zip

Installation Logiciel database Oracle

Se connecter en X en tant que oracle sur le serveur

ssh -X oracle@192.168.1.100

Lancer l'installation du logiciel oracle sans créer de base de données ( installer le logiciel uniquement ) en suivant l'assistant graphique

/home/ora11g/database/runInstaller

En fin d'installation, exécuter en tant que root les deux scripts suivants :

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh

Pour le second script, accepter le choix proposé soit /usr/local/bin

Post-installation

Une fois les binaires oracle en place, activer l'environnement had-oc dans le fichier .bash_profile

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG=FRENCH_FRANCE.UTF8 

Sourcer le fichier .bash_profile et tester une connexion sqlplus

. .bash_profile
sqlplus /nolog

SQL*Plus: Release 11.2.0.3.0 Production on Mer. Mai 2 11:04:56 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

SQL> exit

Paramétrer Oracle*Net

Configurer le listener ( listener.ora ) et la méthode de résolution de noms (sqlnet.ora ) par netca ou en éditant les fichiers directement

Listener

Editer le fichier $ORACLE_HOME/network/admin/listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
     (ADDRESS=(PROTOCOL = TCP)(HOST = adi100.adimcor.eu )(PORT = 1521))
    )
  )

Démarrer le listener

lsnrctl start

Méthode de résolution

Editer le fichier $ORACLE_HOME/network/admin/sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES)

Seule la méthode via tnsnames.ora sera utilisée.

Créer la base référentiel

Il s'agit d'une base Oracle standard qui stokera l'ensemble des informations du GRID. Sa configuration demande un soin et des paramètres particuliers.

  • Ne pas utiliser memory_target ( en 11g )
  • La shared pool area doit faire au minimum 600Mo
  • Le nombre de curseurs doit être entre 300 et 400
  • Les redo-logs doivent faire 300Mo
  • Le tablespace undo doit être en autoexend
  • Le calcul automatique des statistiques optimizeur doit être désactivé

Répertoires

Créer les répertoires suivants :

mkdir -p /u01/app/oracle/admin/GRID/pfile
mkdir -p /u01/app/oracle/oradata/GRID
mkdir -p /u02/app/oracle/oradata/GRID
mkdir -p /u03/app/oracle/oradata/GRID

Fichiers de paramètres

Editer le ficher /u01/app/oracle/admin/GRID/pfile/initGRID.ora

db_name = GRID
db_block_size = 8192
control_files = '/u01/app/oracle/oradata/GRID/control01.ctl','/u02/app/oracle/oradata/GRID/control02.ctl','/u03/app/oracle/oradata/GRID/control03.ctl'
sga_target=2G
pga_aggregate_target=1G
shared_pool_size=600M
processes=300
job_queue_processes=20
session_cached_cursors=400
open_cursors=400

Créer le lien symbolique sous $ORACLE_HOME/dbs

cd $ORACLE_HOME/dbs
ln -s /u01/app/oracle/admin/GRID/pfile/initGRID.ora initGRID.ora

Créer le fichier de mot de passe. Très important sinon il sera impossible de se connecter depuis em12c.

cd $ORACLE_HOME/dbs
orapwd file=orapwGRID password=manager11

Création de la base de données

Création du script createGRID.sql

create database GRID
character set AL32UTF8
national character set AL16UTF16
logfile
group 1 ('/u01/app/oracle/oradata/GRID/redo01a.log','/u02/app/oracle/oradata/GRID/redo01b.log' ) size 300M ,
group 2 ('/u01/app/oracle/oradata/GRID/redo02a.log','/u02/app/oracle/oradata/GRID/redo02b.log' ) size 300M ,
group 3 ('/u01/app/oracle/oradata/GRID/redo03a.log','/u02/app/oracle/oradata/GRID/redo03b.log' ) size 300M
datafile '/u01/app/oracle/oradata/GRID/system01.dbf' size 500M autoextend on next 100M maxsize 2G extent management local
sysaux datafile '/u01/app/oracle/oradata/GRID/sysaux01.dbf' size 500M autoextend on next 100M maxsize 2G
undo tablespace UNDO_TBS datafile '/u02/app/oracle/oradata/GRID/undo_tbs01.dbf' size 500M autoextend on next 100M maxsize 2G
default temporary tablespace TEMP tempfile '/u03/app/oracle/oradata/GRID/temp01.dbf' size 1G autoextend on next 100M maxsize 10G;

Se connecter sqlplus en sysdba

export ORACLE_SID=GRID
sqlplus "/ as sysdba"
SQL> startup nomount;
SQL> create spfile from pfile;
SQL> shutdown immediate;
SQL> startup nomount;
SQL> start createGRID:

Tables du dictionnaire

Toujours sous sqlplus en mode sysdba.

SQL> start $ORACLE_HOME/rdbms/admin/catalog.sql
SQL> start $ORACLE_HOME/rdbms/admin/catproc.sql

Ces deux scripts sont assez longs, il faut compter 15 à 20 minutes.

Mot de passe sys et system

Toujours sous sqlplus en mode sysdba.

SQL> alter user sys identified by manager11;
SQL> alter user system identified by manager11;

Finalisation

Sortir de sqlplus et se reconnecter en system pour lancer le script pupbld.sql

sqlplus system/manager11
SQL> start $ORACLE_HOME/sqlplus/admin/pupbld.sql
SQL> exit;

Configuration client Oracle*Net

Editer le fichier $ORACLE_HOME/network/admin/tnsnames.ora

GRID =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = adi100.adimcor.eu)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = GRID)
    )
  )

Editer le fichier $ORACLE_HOME/network/admin/listener.ora et ajouter les lignes suivantes pour l'enregistrement statique de la base dans le listener.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = GRID)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = GRID)
    )
  )

Installation em12c

L'installation est assez longue, près de 2 heures sur le serveur de la maquette. Il est mis en place un serveur Weblogic, un JDK, puis 3 tablespaces sont créés dans la base référentiel ainsi qu'un grand nombre de tables et de procédure stockées.

Les 3 tablespaces créés :

  • mgmt.dbf : Mesures collectées.
  • mgmt_ecm_depot1.dbf : Informations sur la connexion aux cibles.
  • mgmt_ad4j.dbf : Informations sur la gestion JVM.

L'installation graphique se fait en étant connecté Oracle

ssh -X oracle@192.168.1.100
/home/ora11g/em12c/runInstaller

Il faut désactiver la réception des mise à jour par metalink

Il faut aussi ignorer les mises à jour.

Choisir comme répertoire d'installation : /u01/app/oracle/product/MiddleWare. Il est important que le nom du répertoire choisi comporte le mot middleware et qu'il soit vide.

Dans l'écran types d'installation, choisir : Créer un système Entreprise manager Simple

Dans l'écran suivant donner comme mot de passe du compte administration ( sysman ) le même que sys soit manager11

La configuration de la base référentiel reste classique.

  • Hôte : adi100.adimcor.eu
  • Port : 1521 ( listener )
  • Service : GRID
  • Mot de passe de sys : manager11 ( il s'agit ici du mot de passe mis en place par orapwd )

L'assistant demande de désactiver le job des statistiques, accepter ce choix.

En fin d'installation exeécuter en tant que root le script : /u01/app/oracle/product/MiddleWare/oms/allroot.sh en acceptant le répertoire par défaut et en écrasant les anciennes versions des fichiers.

On accède à l'interface du GRID via l'url : https://192.168.1.100:7801/em. Connexion en sysman/manager11

Après l'acceptation de la licence, il faut chosir sa page d'accueil. Le plus simple est de prendre récapitulatif. Il est possible de la changer à postériori.

Arrêt et démarrage du GRID

Il faut gérer 4 services :

  • Listener
  • Base référentiel
  • OMS ( Oracle Management Service )
  • Agent

Variables d'environnement

Afin de faciliter l'arrêt et le démarrage du GRID, positionner dans le fichier .bash_profile du user oracle les variables suivantes :

export OMS_HOME=$ORACLE_BASE/product/MiddleWare/oms
export AGENT_HOME=$ORACLE_BASE/product/MiddleWare/agent/agent_inst

Arrêt

Serveur OMS

$OMS_HOME/bin/emctl stop oms -all

Agent

$AGENT_HOME/bin/emctl stop agent

Base référentiel

export ORACLE_SID=GRID
sqlplus "/ as sysdba"
SQL> shutdown immediate;
SQL> exit;

Listener

lsnrctl stop

Démarrage

Listener

lsnrctl start

Base référentiel

export ORACLE_SID=GRID
sqlplus "/ as sysdba"
SQL> startup;
SQL> exit;

Serveur OMS

$OMS_HOME/bin/emctl start oms

Agent

$AGENT_HOME/bin/emctl start agent

Automatiser le démarrage

Oracle installe sous /etc/init.d le script gcstartup, il est alors simple d'automatiser complètement le démarrage du GRID via le fichier /etc/oratab

GRID:/u01/app/oracle/product/11.2.0/dhhome_1:Y
*:/u01/app/oracle/product/MiddleWare/oms:Y
*:/u01/app/oracle/product/MiddleWare/agent/agent_inst:Y

Pour la base GRID, il faut créer un script de lancement. Editer un fichier /etc/init.d/oracle

# chkconfig: 235 80 20
# description: ajout de service auto pour start/stop oracle
#!/bin/bash
ORACLE_OWNER=oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
case $1 in
  start)
    echo -n "Démarrage Oracle DB:"
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
  ;;
  stop)
    echo -n "Arrêt Oracle DB:"
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
  ;;
  *)
    echo "Usage: $0 {start|stop}"
  ;;
esac

Le rendre exécutable

chmod 0755 /etc/init.d/oracle

Activer les niveaux d'exécution

chkconfig --add oracle
chkconfig --level 2345 oracle on

Déploiement des agents

Bien qu'il soit possible de déployer les agents sur les cibles depuis l'interface GRID, le déploiement manuel présente des avantages. Oracle fournit un script dédié pour cela : agentDeploy.sh

Récupération de l'agent

Il faut récupérer l'ensemble du logiciel agent depuis la console GRID. Pour cela depuis le serveur où est installé le GRID lancer les commandes suivantes ( user oracle )

$OMS_HOME/bin/emcli login -username=sysman -password=manager11

Demander ensuite la synchronisation

$OMS_HOME/bin/emcli sync

Puis demander la liste des agents disponibles

$OMS_HOME/bin/emcli get_supported_platforms
Getting list of platforms ...
Check the logs at /home/oracle/agent.log
About to access self-update code path to retrieve the platforms list..
Getting Platforms list  ...
-----------------------------------------------
Version = 12.1.0.1.0
 Platform = Linux x86-64
-----------------------------------------------
Platforms list displayed successfully.

Récuperer un fichier .zip qui contiendra l'ensemble des eléments pour déployer l'agent, par exemple pour un serveur Linux 64 bits

$OMS_HOME/bin/emcli get_agentimage -destination=$HOME -platform="Linux x86-64" -version=12.1.0.1.0

Ceci génère alors dans la home directory du user oracle un fichier 12.1.0.1.0_AgentCore_nnn.zip ( nnn est un chiffre quelconque et aléatoire, lors de la maquette il était égal à 46. ) qu'il faut transférer sur le serveur à superviser.

Installation de l'agent

Sur le serveur à superviser, décompresser le fichier .zip transféré précédement( le fichier fait environ 280Mo ). Puis lancer l'installation.

unzip 12.1.0.1.0_AgentCore_46.zip -d $HOME/agtImg
cd $HOME/agtImg
./agentDeploy.sh AGENT_BASE_DIR=/u01/app/oracle/product/agent12c OMS_HOST=adi100.adimcor.eu EM_UPLOAD_PORT=4901 AGENT_REGISTRATION_PASSWORD=manager11 -ignorePrereqs

Il est impératif que le serveur cible résolve le nom adi100.adimcor.eu et qu'il puisse accèder au port 4901. L'option -ignorePrereqs est utile si la cible est sous une distribution Linux autre que redHat, par exemple Debian ou Ubuntu.

enterprise_manager_em12c.txt · Dernière modification: 2015/02/22 10:46 par admin