Monday, September 07, 2009

CREATION D'UNE ACTIVE DATA GUARD
(UNE PROCEDURE COMPACTE)


I - Introduction
Comme il est indiqué dans le titre de cet article, les tests dont nous vous livrons le compte-rendu, ne sont possibles que sur Oracle Database 11g. Nous avons utilisé la release 11.1.0.6.
Ce sont les nombreuses améliorations apportées par Oracle avec Oracle Database 11g qui ont facilité et simplifié la tâche et permis de rendre la procédure (et en particulier le script rman de création de la standby) aussi compacte.

II - Pré-requis
i) Les bases de données de production (primaire) et standby doivent s'exécuter dans la même release d'Oracle Database 11g, Enterprise Edition
ii) L'option Oracle Active Data Guard doit être installée (Elle est payante et pas présente dans la vue v$option)
iii) La base de données primaire doit être en mode archive log.

III - Configuration de tests
BD primaire BD standby
Serveur bund01 bund02
Base de données prod stdby


IV - Les étapes

Etape 1 : Activer l'option "force logging" sur la base de données primaire
SQL> alter database force logging ;
Database altered.

Etape 2 : S'assurer que la base de données primaire utilise un fichier spfile
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/prod/spfileprod.ora

Etape 3 : Créer des standby redo logs sur la base de données primaire avec des numéros de groupes dans la continuité du dernier numéro de groupe des redo logs
SQL> col member for a40
SQL> select GROUP#, MEMBER from v$logfile ;
GROUP# MEMBER
---------- ------------------------------------------------------------
3 +DATA/prod/onlinelog/group_3.266.696684409
3 +DATA/prod/onlinelog/group_3.267.696684415
2 +DATA/prod/onlinelog/group_2.264.696684397
2 +DATA/prod/onlinelog/group_2.265.696684403
1 +DATA/prod/onlinelog/group_1.262.696684385
1 +DATA/prod/onlinelog/group_1.263.696684391

SQL> alter database add standby logfile group 4 ('+DATA/prod/sby_log01_01.rdo','+DATA/sby_log01_02.rdo') size 50M;
Database altered.

SQL> alter database add standby logfile group 5 ('+DATA/prod/sby_log02_01.rdo','+DATA/sby_log02_02.rdo') size 50M;
Database altered.

SQL> alter database add standby logfile group 6 ('+DATA/prod/sby_log03_01.rdo','+DATA/sby_log03_02.rdo') size 50M;
Database altered.

Attention : il est possible de placer les standby redo logs directement dans le répertoire +DATA. Cependant cela entraîne des conflits comme le montrent les messages suivants que nous avons expérimentés :
RMAN-05536: auxiliary logfile name +DATA/sby_log01_01.rdo conflicts with a file used by the target database
RMAN-05536: auxiliary logfile name +DATA/sby_log01_02.rdo conflicts with a file used by the target database
RMAN-05536: auxiliary logfile name +DATA/sby_log02_01.rdo conflicts with a file used by the target database
RMAN-05536: auxiliary logfile name +DATA/sby_log02_02.rdo conflicts with a file used by the target database
RMAN-05536: auxiliary logfile name +DATA/sby_log03_01.rdo conflicts with a file used by the target database
RMAN-05536: auxiliary logfile name +DATA/sby_log03_02.rdo conflicts with a file used by the target database


Etape 4 : Mettre à jour le fichier tnsnames du serveur primaire
Il s'agit d'ajouter les lignes suivantes :
STDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = bund02 )(PORT = 1521))
(CONNECT_DATA =
(SID = stdby)
)
)

Etape 5 : Copier le fichier de mots de passe de la base de données primaire dans le répertoire $ORACLE_HOME/dbs de la standby en lui donnant le nom orapwstdby.
[oracle@bund01 dbs]$ scp -P22 orapwprod oracle@bund02:/u01/app/oracle/product/11.1.0/db_1/dbs/orapwstdby
The authenticity of host 'bund02 (192.168.1.130)' can't be established.
RSA key fingerprint is a3:55:7e:58:c4:66:9d:2f:77:f3:20:2b:c9:75:f5:c7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bund02,192.168.1.130' (RSA) to the list of known hosts.
oracle@bund02's password:
orapwprod
[oracle@bund01 dbs]$

Etape 6 : Mettre à jour les fichiers listener.ora et tnsnames.ora du serveur standby
Il faut leur ajouter les lignes suivantes.
Listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(global_dbname = stdby)
(oracle_home = /u01/app/oracle/product/11.1.0/db_1)
(sid_name = stdby)
)
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1)
(PROGRAM = extproc)
)
)

tnsnames.ora
STDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = bund02.knmc.local )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stdby)
)
)

PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = bund01.knmc.local )(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = prod)
)
)

Etape 7 : Créer le fichier initstdby.ora sur le serveur standby (bund02)
Le fichier doit être stocké dans le répertoire $ORACLE_HOME/dbs et ne contient qu'une seule ligne avec le paramètre db_name. Il faut bien noter que le db_name de la standby est le même que pour la primaire.
db_name=prod

Etape 8 : Sur la standby, créer les répertoires et sous-répertoires devant contenir les fichiers de trace d'audit
Ces créations doivent être faites dans le répertoire $ORACLE_BASE/admin. Les répertoires et sous-répertoires sont : $ORACLE_BASE/admin/stdby, $ORACLE_BASE/admin/stdby/adump

[oracle@bund02 admin]$ mkdir –p stdby/adump

Etape 9 : Sur la primaire, créer le fichier rman de création de la standby.
[oracle@bund01 db_1]$ cat create_stdby.rman
connect target sys/oracleMdp@prod
connect auxiliary sys/ oracleMdp @stdby
run {
allocate channel p1 type disk ;
allocate auxiliary channel s1 type disk ;
duplicate target database for standby from active database
spfile
parameter_value_convert 'prod','stdby'
set db_unique_name='stdby'
set db_file_name_convert='/prod/','/stdby/'
set log_file_name_convert='/prod/','/stdby/'
set control_files='+DATA/stdby/control01.ctl','+DATA/stdby/control02.ctl'
set log_archive_max_processes='5'
set fal_client='stdby'
set fal_server='prod'
set standby_file_management='AUTO'
set log_archive_config='dg_config=(prod,stdby)'
set log_archive_dest_2='service=prod lgwr async valid_for=(online_logfiles, primary_role) db_unique_name=stdby'
set log_archive_dest_state_2='enable'
set log_archive_format='stdby_%t_%s_%r.arc'
;
sql channel p1 "alter system set log_archive_config=' 'dg_config=(prod,stdby' '";
sql channel p1 "alter system set log_archive_dest_2=' 'service=stdby lgwr async valid_for=(online_logfiles, primary_role) db_unique_name=prod' '";
sql channel p1 "alter system set log_archive_max_processes=5";
sql channel p1 "alter system set fal_client=''prod' '" ;
sql channel p1 "alter system set fal_server=''stdby' '";
sql channel p1 "alter system set standby_file_management=AUTO";
sql channel p1 "alter system set log_archive_dest_state_2=enable"
sql channel p1 "alter system archive log current" ;
sql channel s1 "alter database recover managed standby database using current logfile disconnect" ;
}


Etape 10 : Sur le serveur standby, mettre à jour les variables d'environnements et démarrer la standby avec l'option nomount
[oracle@bund02 db_1]$ export ORACLE_SID=stdby
[oracle@bund02 db_1]$ export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
[oracle@bund02 db_1]$ sqlplus / as sysdba
SQL> startup nomount

Etape 11 : Sur le serveur primaire, exécuter le script rman
[oracle@bund01 db_1]$ rman cmdfile=create_stdby.rman log=create_stdby.log

Notes
i) Le script de création effectue les actions suivantes :
- Arrêter la base standby et la re-démarrer avec le fichier spfile nouvellement créé
- Créer un fichier standby controlfile sur le serveur primaire et la copier sur le serveur standby
- Créer une base de données clone sur le serveur standby à l'aide d'Oracle RMAN cloning
- Convertir la base de données clonée en base de données standby physique.

ii) Le processus de creation de la standby physique peut prendre un certain temps, fonction de la taille de la base de données primaire.
iii) le fichier de log se termine par un message d'erreur que l'on peut ignorer
sql statement: alter system archive log current

released channel: p1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of sql command at 09/06/2009 03:11:04
RMAN-06033: channel s1 not allocated


Recovery Manager complete.

iv) Pour une raison que nous n'avons pas pu déterminer, la standby n'est pas mise en mode "récupération managée".

Etape 12 : Paramétrer Active Data Guard sur le serveur standby
Voir notre précédent post.

Et voilà la simplification que les nombreuses améliorations apportées par Oracle 11g dans Oracle Data Guard ont rendu possible. Mais il y a une autre simplification tout aussi importante. Elle concerne l'utilisation de Dataguard pour le rafraîchissement des environnements de pré-production, de tests et de développement. Cette simplification est portée par une nouvelle fonctionnalité qui porte le nom de snapshot standby. Nous traiterons ce sujet dans notre prochain post.
A bientôt donc …

Labels: , ,

ACTIVE DATA GUARD
VERIFICATION ET PARAMETRAGE DE L'ACTIVE DATA GUARD SOUS ORACLE DATABASE 11G

Jusqu'à la version 10.2 d'Oracle, les bases de données standby physiques ne pouvaient fonctionner que dans deux modes exclusifs :
- Ouverture en lecture seule pour permettre que les utilisateurs puissent exécuter des requêtes d'intérrogation et ainsi décharger en partie la base de données de production.
- Ouverture en récupération managée pour permettre l'application des données de redo que la standby reçoit de la base de données de production.
L'inconvénient majeur de ce fonctionnement en deux modes exclusifs l'un de l'autre est que lorsque la standby physique est en lecture seule, les fichiers de log sont accumulés pour n'être appliqués qu'une fois que la standby est remise dans le mode "récupération managée".
C'est, entre autres, pour cette raison qu'Oracle a introduit l'Active Dataguard en 11g. Cette nouvelle fonctionnalité permet aux utilisateurs d'avoir un accès en lecture seule aux bases de données standby physiques pendant que le transport des logs et leur application continuent sur ces mêmes bases de données.
"Active Data Guard" est mentionnée comme une nouvelle option payante dans les brochures du produit Oracle Database 11g.
Et on pourrait s'attendre à la retrouver dans la vue v$option lorsque cette option est activée. Or il n'en est rien. Il se pose dès lors la question de savoir comment vérifier la présence de cette option et comment la paramétrer/activer.
C'est l'objet du présent article.

Vérification d'Active Data Guard
La vérification de la présence de l'option "Active Data Guard" se fait sur la standby database à l'aide de la requête ci-dessous.
SQL> SELECT 'Active Data Guard is Enabled' ADG
2 FROM v$MANAGED_STANDBY A, V$DATABASE B
3 WHERE A.PROCESS LIKE 'MRP%' AND B.OPEN_MODE='READ ONLY';

ADG
----------------------------
Active Data Guard is Enabled

Si cette requite affiche comme réponse "Active Data Guard Enabled" (comme c'est le cas ci-dessus) alors on peut en conclure qu'Active Data Guard est "activée.
Si par contre la réponse est "no rows selected" comme ci-dessous, alors l'option n'est pas activée et il faudra la paramétrer.
SQL> SELECT 'Active Data Guard is Enabled' ADG
2 FROM v$MANAGED_STANDBY A, V$DATABASE B
3 WHERE A.PROCESS LIKE 'MRP%' AND B.OPEN_MODE='READ ONLY';

no rows selected


Paramétrage d'Active Data guard
Plusieurs étapes sont nécessaires pour paramétrer Active Data Guard.

1°) Vérifier si la standby est en récupération managée
SQL> select process, status from v$managed_standby ;
PROCESS STATUS
--------- ------------
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
MRP0 APPLYING_LOG
6 rows selected.

2°) Si c'est le cas comme dans l'exemple ci-dessus (la présence du processus MRP0 l'atteste), arrêter la récupération managée et vérifier l'effectivité de l'arrêt.
SQL> alter database recover managed standby database cancel ;
Database altered.
SQL> select process, status from v$managed_standby ;
PROCESS STATUS
--------- ------------
ARCH CONNECTED
ARCH CONNECTED
ARCH CLOSING
ARCH CONNECTED
ARCH CONNECTED
RFS IDLE
RFS IDLE
RFS IDLE
8 rows selected.

3°) Ouvrir la standby avec la commande alter et l'option open
SQL> alter database open
Note : Une solution alternative consiste à arrêter la standby et à la re-démarrer comme une bd classique
SQL> shutdown
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 857903104 bytes
Fixed Size 1303272 bytes
Variable Size 486542616 bytes
Database Buffers 364904448 bytes
Redo Buffers 5152768 bytes
Database mounted.
Database opened.

4°) Re-démarrer la récupération managée avec l'option "using current logfile".
SQL> alter database recover managed standby database using current logfile disconnect ;
Database altered.

5°) vérifier que la récupération managée a démarré et que l'Active Dataguard est "activée"
SQL> select process, status from v$managed_standby ;
PROCESS STATUS
--------- ------------
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
MRP0 APPLYING_LOG
6 rows selected.

SQL> SELECT 'Active Data Guard is Enabled' ADG
2 FROM v$MANAGED_STANDBY A, V$DATABASE B
3 WHERE A.PROCESS LIKE 'MRP%' AND B.OPEN_MODE='READ ONLY';

ADG
----------------------------
Active Data Guard is Enabled

Voilà comment gérer la nouvelle fonctionnalité "Active Data Guard" dans Oracle Database 11g.
Nous verrons dans notre prochain post, une procédure compacte (simplifiée) de mise en place d'une configuration "Active Data Guard".
A bientôt donc !

Sunday, September 06, 2009

DATAGUARD ET RAFRAICHISSEMENT DES ENVIRONNEMENTS
(3E PARTIE)
Cet article a été rédigé en collaboration avec M. Akli IMARAZENE, Consultant et DBA.

V - Les étapes de la deuxième phase
Il s'agit de réintégrer la base de pré-production et de tests dans son rôle de standby database.

Etape 1 : Re-démarrer la database activée avec les options mount et force et procéder à son flashback jusqu'au restore point
SQL> startup mount force
SQL> archive log list ;
SQL> flashback database to restore point bf_app_test ;

Etape 2 : Convertir la database activée en physical standby database et la re-démarrer avec les options mount et force
SQL> alter database convert to physical standby ;
SQL> startup mount force

Etape 3 : Lancer la récupération managée sur la standby
SQL> alter database recover managed standby database disconnect ;

Etape 4 : Activer le transport des logs archivés depuis la primary vers la standby et noter le numéro de séquence courante sur la primary
Sur la primary
SQL> alter database set log_archive_dest_state_2=enable scope=both ;
SQL> select database_role, open_mode from v$database ;
SQL> alter system switch logfile ;
SQL> archive log list ;

Etape 5 : Vérifier que les logs archivés sont bien appliqués sur la standby
SQL> select database_role, open_mode from v$database ;
SQL> archive log list ;

Etape 6 : Vérifier l'application des logs archivés en temps réel dans le fichier d'alertes de la standby database
$ tail –f /u01/app/oracle/product/10.2.0/db_1/dbs/alertstbyprod.log

Dans l'un de nos prochains posts, nous verrons comment Oracle a permis de simplifier davantage cette même procédure dans Oracle Database 11g avec la nouvelle fonctionnalité snapshot standby.

Webographie
Oracle Data Guard Concepts and Administration 10g Release 2 (10.2) – Chapter 12.6 : Using a Physical Standby Database for Read/Write Testing and Reporting

Fin ./.

Labels: , ,

DATAGUARD ET RAFRAICHISSEMENT DES ENVIRONNEMENTS
(2E PARTIE)
Cet article a été rédigé en collaboration avec M. Akli IMARAZENE, Consultant et DBA.

IV - Les étapes de la première phase

Etape 1 : S'assurer que la primary et la standby databases sont synchronisées
i) Sur la primary
$ export ORACLE_SID=iprod
$ export ORACLE_BASE=/u01/app/oracle
$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
$ sqlplus / as sysdba
SQL> archive log list
SQL> select database_role, open_mode from v$database ;

ii) Sur la standby
$ export ORACLE_SID=stbyprod
$ export ORACLE_BASE=/u01/app/oracle
$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
$ sqlplus / as sysdba
SQL> archive log list
SQL> select database_role, open_mode from v$database ;

Les lignes "Current log sequence" des commandes "archive log list" doivent afficher le même numéro de séquence sur les deux bases de données.

Etape 2 : S'assurer que la standby database applique bien les redo logs
i) Sur la primary
SQL> alter system switch logfile ;
SQL> archive log list

ii) Sur la standby
SQL> archive log list

Les lignes "Current log sequence" des commandes "archive log list" doivent afficher le même numéro de séquence sur les deux bases de données.

Etape 3 : Activer la flashback database sur la standby database
Sur la standby
SQL> alter system set db_recovery_file_dest_size=5G scope=both ;
SQL> alter system set db_recovery_file_dest='/u01/app/oracle/flashback' scope=both ;
SQL> show parameter db_recovery
SQL> shutdown immediate ;
SQL> startup mount ;
SQL> alter database flashback on

Etape 4 : Arrêter l'application des redos sur la standby database et y créer un restore point
SQL> alter database recover managed standby database cancel ;
SQL> create restore point bf_app_test guarantee flashback database ;

Etape 5 : Archiver le log courant sur la primary database afin d'avoir les archived logs jusqu'au SCN du restore point et différer le transport des redo logs vers la standby database
SQL> alter system archive log current ;
SQL> archive log list ;
SQL> show parameter log_archive_dest_state_2
SQL> alter system set log_archive_dest_state_2=DEFER ;
SQL> show parameter log_archive_dest_state_2

Etape 6 : Activer la physical standby database (la transformer en base de données classique), mettre son mode de protection en "maximize performance" et l'ouvrir
SQL> alter database activate standby database ;
SQL> startup mount force ;
SQL> alter database set standby database to maximize performance ;
SQL> alter database open ;

A partir de maintenant, les équipes de tests et de développement peuvent disposer de la base de données pour leurs tests de la journée.

A suivre …

Labels: , ,

DATAGUARD ET RAFRAICHISSEMENT DES ENVIRONNEMENTS
(1ERE PARTIE)

Cet article a été rédigé en collaboration avec M. Akli IMARAZENE, Consultant et DBA.


I - Introduction

Une configuration Dataguard a deux fonctions principales :
- Assurer la protection des données de l'entreprise ;
- Concourir à la haute disponibilité de la base de données de production par la capacité de la base de secours (standby) à participer à une permutation de rôles avec la base de production (primary) lors de maintenances planifiées ou suite à une panne de la base de données de production.
Il y une troisième fonction beaucoup moins connue que l'on peut faire jouer à une configuration Dataguard : celle de servir au rafraîchissement des bases de données de pré-production, de tests et/ou de développement.
Il y a quelques jours, un ami et collègue m'expliquait toutes les difficultés qu'il a eues à faire accepter par ses collègues DBAs et sa hiérarchie la mise en œuvre d'une configuration Dataguard pour assurer le rafraîchissement d'une base de données de tests malgré l'argument incontestable que constitue l'extraordinaire gain en temps que cela allait procurer au quotidien.
La réaction des collègues et de la hiérarchie de mon collègue est d'autant plus surprenante que la maîtrise de la mise en œuvre d'une configuration Dataguard n'est pas une tâche insurmontable et que de toutes les manières la mise en œuvre sera précédée de tests approfondis devant déboucher sur une procédure écrite qui servira de base à un transfert de compétences à tous les DBAs de l'équipe.
Dans cet article, nous nous fixons comme objectif de décrire dans ses grandes lignes une procédure de rafraîchissement d'une base de données de tests à l'aide d'une configuration Dataguard.
Nous supposons que le lecteur maîtrise la mise en place d'une configuration Dataguard car ceci ne sera pas traité dans le présent article.
Nous commencerons par présenter la configuration Dataguard qui servira de base à nos propos ; ensuite nous décrirons les différentes étapes à franchir pour aboutir au résultat escompté.

II - Présentation de la configuration Dataguard
Notre configuration comprend une base de données de production dite primary database et une base de données de tests (la base de données qui a besoin d'être rafraîchie tous les matins) qui va jouer le rôle de base de données secours, dite standby database.
Primary Database
db_name : prod
instance_name : iprod
db_unique_name : uprod

Standby Database
db_name : prod
instance_name : stbyprod
db_unique_name : usprod

III - Principe d'utilisation d'une configuration Dataguard pour le rafraîchissement
Durant toutes les nuits, la standby database joue son rôle de base secours. Il reçoit les archive logs générés sur la primary database et les applique au fil de l'eau.
Tous les matins, le DBA en charge de la gestion de cette configuration exécute les actions suivantes :
- Activer la fonctionnalité flashback database sur la standby database ;
- Arrêter l'application des données de redo sur la standby database ;
- Créer un restore point sur la standby database ;
- Archiver le redo log courant sur la primary database ;
- Différer le transport des redo logs vers la standby database ;
- Transformer la standby database en base de données classique pouvant être utilisée pour des tests avec des opérations de lecture/écriture et enfin l'ouvre et la met à la disposition des équipes de tests.

Tous les soirs, le même DBA lance le rafraîchissement de la base de tests après avoir procédé à un flashback pour annuler toutes les mises à jour faites par les équipes de tests et après l'avoir réintégré dans son rôle de standby database. Les actions menées sont, dans l'ordre :
- Procéder au flashback de la base de données de tests jusqu'au restore point ;
- Convertir la base de données de tests en physical standby database et le mettre en mode récupération manager;
- Activer le transport des logs archivées vers la standby database où ils seront appliqués

A suivre …

Labels: , ,

Thursday, September 03, 2009

Installation d'une machine virtuelle à l'aide d'Oracle VM Manager
(A partir de l'image iso du dvd OEL disponible via http)


Dans ce bref post, nous nous contentons de livrer la trame (les grandes lignes et les remarques) de l'installation d'une machine virtuelle à l'aide d'Oracle VM Manager à partir de l'image iso du DVD d'Oracle Enterprise Linux rendu disponible via un partage http.

I - Installation et démarrage du serveur apache
# yum install httpd
# service httpd start


II - Création d'un point de montage dans l'arborescence du daemon httpd et montage de l'image iso sur Oracle VM Server
# cd /var/www/html
# mkdir oelr5u3
# mount –o ro,loop /OVS/tmp/Enterprise-R5-U3-Server-i386-dvd.iso oelr5u3
# ls –l oelr5u3


III - Arrêt du firewall sur Oracle VM Server et vérification de l'accessibilité de l'image iso depuis le navigateur d'une autre machine du réseau LAN
# service iptables stop
# service iptables status
Vérification à partir d'un navigateur d'un poste local du LAN http://192.168.10.100/oelr5u3

IV - Création de la machine virtuelle à l'aide d'Oracle VM Manager
Pour une description synthétique de la création d'une nouvelle machine virtuelle à partir du support d'installation, nous invitons le lecteur à consulter le chapitre 6 "managing Virtual machines", sous-chapitre "Creating a new virtual machine from installation media" (Oracle VM Manager user's guide Release 2.1) à l'adresse http://download.oracle.com/docs/cd/E11081_01/doc/doc.21/e10901/vm.htm.

V - Remarques
i) Pendant la phase d'installation des binaires, Le clavier azerty (français) était très mal pris en charge par la console vnc. Il fallait une très grande gymnastique et une bonne dose de devinette pour trouver les bonnes touches. Les caractères 2 et 3 étaient tout simplement introuvables.

ii) Lors de l'installation, le système sera re-démarré plusieurs fois et à chaque fois, la console vnc se ferme automatiquement ; il faut la rouvrir.

iii) Une fois l'installation terminée le clavier français était mieux pris en charge. Par contre la connexion par putty prend beaucoup de temps (plusieurs minutes).
Mais la souris est toujours mal pris en charge par la console vnc.

iv) La création d'une machine virtuelle à l'aide d'Oracle VM Manager ne semble pas faire bon ménage avec la présence d'un deuxième repository monté et rendu disponible via ocfs2. Oracle VM Manager constatant que le deuxième repository dispose de plus d'espace, tente d'y stocker les fichiers de la nouvelle machine en cours de création. Mais pour une raison que nous n'avons pas réussi à déterminer, le serveur physique hébergeant Oracle VM Server redémarre automatique. Ceci constitue à notre avis un bug reproductible puisqu'il s'est produit plusieurs fois lors de nos tests.

En guise de conclusion provisoire sur Oracle VM
Nous arrivons aux termes de notre première série d'articles consacrés à la mise en œuvre de la technologie Oracle VM qui est au cœur du concept de déploiement rapide d'applications d'infrastructures. Les enjeux sont énormes : outre la consolidation des serveurs, le gain de temps dans le déploiement des bases de données peut être important. Nous reviendrons certainement sur le sujet dès qu'il y aura des nouveautés importantes.
Dans nos prochains post, nous traiterons de l'utilisation d'une configuration Dataguard pour le rafraîchissement des bases de données de pré-production, de tests et de développement.
A très bientôt donc.

Labels: ,

Installation d'une machine virtuelle à l'aide de l'utilitaire virt-install
(A partir de l'image iso du dvd OEL)


Nous continuons notre exploration de la technologie Oracle VM. Dans le présent article, nous verrons comment installer une machine virtuelle motorisée par Oracle Enterprise Linux 5 Update 3.
Nous utilisons pour ce faire, le fichier image du dvd d'Oracle Enterprise Linux et l'outil virt-install. Ensuite nous ferons prendre en charge la machine nouvellement créée par Oracle VM Manager.

Etape 1 : télécharger OEL 5 Update 3 dans son format dvd et le mettre à disposition sur Oracle VM Server
i) Téléchargement du fichier image
Il faut se rendre sur le site d'Oracle e-delivery (http://edelivery.oracle.com/EPD/GetUserInfo/get_form?caller=LinuxWelcome). Le fichier image iso du dvd d'OEL5.3 recherché est compressé dans un fichier archive.
L'archive a les caractéristiques suivantes :
- Nom : V15414-01zip
- Libellé : Enterprise Linux Release 5 Update 3 for x86 (32 Bit) - DVD
- Taille : 2.7 Go
Après l'avoir téléchargé, déplaçons l'archive dans un répertoire dédié créé pour les besoins de notre test et dézippons-la.
# mkdir /OVS/tmp
# mv /root/V15414-01zip /OVS/tmp/
# cd /OVS/tmp
# unzip V15414-01zip
Il en résulte le fichier image proprement dit (Enterprise-R5-U3-Server-i386-dvd.iso). Pour économiser de la place disque, nous pouvons supprimer l'archive
# rm –f V15414-01zip

ii) Montage du fichier image sur un point de montage dédié (/tmp/oel5u3)
Créons ensuite un point de montage pour le fichier image et montons
# mount -o rw,loop /OVS/tmp/Enterprise-R5-U3-Server-i386-dvd.iso /tmp/oel5u3/

Etape 2 : Configurer le serveur NFS sur Oracle VM Server
La configuration que nous présentons ci-dessous est assez simple (juste ce qu'il faut). Le lecteur souhaiter approfondir la configuration d'un serveur NFS en prenant en compte en compte la problématique sécurité pourra consulter l'article détaillé publié par Gregory R. Kriehn à l'adresse http://optics.csufresno.edu/~kriehn/fedora/fedora_files/f7/howto/nfs.html.
i) Mettre à jour le fichier /etc/exports en y insérant le répertoire à partager et les adresses IP des machines autorisées à y accéder.
# cat /etc/exports
/tmp/oel5u3 192.168.10.100(rw,no_root_squash) 192.168.10.110(rw,no_root_squash) 192.168.10.10(rw,no_root_squash)

ii) Metrre à jour le fichier /etc/hosts.allow en y insérant les adresses IP des machines autorisées à bénéficier des services NFS en face des différents processus daemons participant aux services NFS
# cat /etc/hosts.allow
lockd:192.168.10.100,192.168.10.110,192.168.10.10
mountd:192.168.10.100,192.168.10.110,192.168.10.10
rpcbind:192.168.10.100,192.168.10.110,192.168.10.10
rquotad:192.168.10.100,192.168.10.110,192.168.10.10
statd:192.168.10.100,192.168.10.110,192.168.10.10


iii) Arrêter le firewall et re-démarrer les services portmap, nfslock et nfs afin de faire prendre en compte les modifications effectuées
[root@ovs01 ~]# service iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]

[root@ovs01 ~]# service nfslock restart
Stopping NFS locking: [ OK ]
Stopping NFS statd: [ OK ]
Starting NFS statd: [ OK ]


[root@ovs01 ~]# service portmap restart
Stopping portmap: [ OK ]
Starting portmap: [ OK ]


[root@ovs01 ~]# service nfs restart
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]

iv) Vérifier que le répertoire /tmp/oel5u3 est bien mis à disposition par le serveur NFS (une seule des deux commandes aurait suffi)
[root@ovs01 ~]# exportfs
/tmp/oel5u3 192.168.10.100
/tmp/oel5u3 192.168.10.110
/tmp/oel5u3 192.168.10.10


[root@ovs01 ~]# showmount -e
Export list for ovs01.knmc.local:
/tmp/oel5u3 192.168.10.110,192.168.10.10,192.168.10.100



Etape 3 : Exécuter l'utilitaire virt-install
Compte tenu du nombre de paramètres, nous avons préféré saisir la commande correspondante dans un fichier (create_vm.sh) que nous avons rendu exécutable.
[root@ovs01 ~]# cat create_vm.sh
virt-install \
--name vm01 \
--ram=1024 \
--file=/OVS/running_pool/vm01/system.img \
--file-size=10 \
--location=nfs:192.168.10.100:/tmp/oel5u3 \
--keymap=fr


Récapitulons les paramètres
Nom de la machine virtuelle à créer : vm01
Taille de la mémoire physique : 1024 Mo
Nom du fichier disque à allouer à la machine : =/OVS/running_pool/vm01/system.img
Taille du fichier disque à allouer : 10 Go
Emplacement où les binaires d'Oracle Enterprise Linux 5.3 sont mis à disposition : répertoire /tmp/oel5u3 du serveur NFS ayant comme adresse IP 192.168.10.100
Clavier utilisé : clavier de type français (azerty).

[root@ovs01 tmp]# ./create_vm.sh

Would you like to enable graphics support? (yes or no) yes

Starting install...
libvir: Xen Daemon error : GET operation failed:

VNC Viewer Free Edition 4.1.2 for X - built Jan 21 2009 14:35:26
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.

Wed Aug 26 05:28:29 2009
CConn: connected to host localhost port 5901
CConnection: Server supports RFB protocol version 3.8
CConnection: Using RFB protocol version 3.8
TXImage: Using default colormap and visual, TrueColor, depth 16.
CConn: Using pixel format depth 6 (8bpp) rgb222
CConn: Using ZRLE encoding

Wed Aug 26 05:29:17 2009
CConn: Throughput 14285 kbit/s - changing to hextile encoding
CConn: Throughput 14285 kbit/s - changing to full colour
CConn: Using pixel format depth 16 (16bpp) little-endian rgb565
CConn: Using hextile encoding

Wed Aug 26 05:33:47 2009
CConn: Throughput 20000 kbit/s - changing to raw encoding
CConn: Using raw encoding


Précisions importantes relatives à l'exécution de virt-install
i) Lors de l'exécution de l'utilitaire virt-install le message d'erreur suivant est affiché. Mais on peut l'ignorer :
libvir: Xen Daemon error : GET operation failed:

ii) Le re-démarrage suivant de la machine virtuelle nouvellement créée peut afficher les messages suivants que l'on peut également ignorer :
libvir: xen Daemon error: internal error domain information incomplete, missing kernel
Entity: line25: parser error : Opening and ending tag mismatch: os line 5 and domain

Entity: line26: parser error : Premature end of data in tag domain line 1


iii) L'exécution de virt-install inclut la phase d'installation d'Oracle Enterprise Linux qui ne comporte aucune difficulté particulière. Pour faire simple, nous avons choisi d'utiliser le serveur DHCP pour faire affecter une adresse IP à la nouvelle machine. Nous avons constaté qu'il en résultait que la nouvelle machine avait comme hostname new-host-20. Le curseur sur la nouvelle machine n'était pas très précis. En réalité, il y avait deux curseurs dans les fenêtres vnc.
Pour changer le hostname de la machine, on peut utiliser l'un des deux méthodes suivantes :
- Modifier les fichiers /etc/sysconfig/network et /etc/hosts et re-démarrer la machine
(# service network restart)
- Modifier le fichier /etc/hosts et rediriger la commande echo "" dans le fichier /proc/sys/kernel/hostname ; par exemple
# echo "vm01" > /proc/sys/kernel/hostname


iv) Contrairement au fichier disque (system.img) qui est stocké dans le répertoire /OVS/running_pool/vm01, le fichier de configuration de la nouvelle machine virtuelle créée à l'aide de virt-install est localisé dans le répertoire /etc/xen et a pour nom vm01 (le même nom que la machine).
v) Il peut s'avérer nécessaire de re-démarrer la nouvelle machine une ou deux fois avant que le clavier français ne devienne vraiment opérationnel.
vi) Oracle VM Manager ne prend pas en charge par défaut la nouvelle machine. Une procédure complémentaire est nécessaire pour cela. C'est l'objet de l'étape suivante.



Etape 4 : Eteindre la nouvelle machine et l'importer dans Oracle VM Manager
i) Arrêter la nouvelle machine après avoir noté son domain-id
[root@ovs01 vm01]# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 585 4 r----- 624.1
OVM_EL5U3_X86_OVM_MANAGER_PVM 1 2048 2 -b---- 355.4
vm01 2 1024 1 -b---- 415.0

[root@ovs01 vm01]# xm shutdown –w 2
Domain 2 terminated
All domains terminated
[root@ovs01 vm01]#

ii) Copier le fichier de configuration de la machine dans le répertoire /OVS/running_pool/vm01 en renommant la copie en vm.cfg.
# cp –p /etc/xen/vm01 /OVS/running_pool/vm01/vm.cfg
iii) Importer la nouvelle machine dans Oracle VM Manager en utilisant le menu Resources et le sous-menu "Virtual Machine Images"
iv) Approuver/valider la machine virtuelle ainsi importée.


Conclusion
Nous venons de vous montrer comment utiliser l'utilitaire virt-install pour créer une machine virtuelle sur un serveur Oracle VM Server à partir du fichier image dvd des binaires d'Oracle Enterprise Linux 5.3. Nous regrettons que cet utilitaire gère autrement le fichier de configuration de la machine virtuelle créée. Cependant il n'y a pas de difficulté particulière à l'importer dans Oracle VM Manager.
Dans notre prochain post, nous verrons comment créer une machine virtuelle toujours à partir d'un fichier image d'Oracle Enterprise Linux mais directement à l'aide d'Oracle VM Manager, ce qui nous éviterait d'avoir à l'importer ensuite dans Oracle VM Manager.

Labels: ,

Monday, August 24, 2009

Installation d'une machine virtuelle
(A partir d'un template intégrant OEL5.2 et Oracle database 11g)


Comme promis dans mon avant-dernier post, je vous décris ci-après mes tests.

Rappels
Nom du bundle à télécharger : V15511.zip
Nom du template : OVM_EL5U2_X86_ORACLE11G_PVM.tgz
Avertissement :
Une fois dézippé, le bundle du template fait un peu plus de 31 Go
Et il faut disposer d'un espace disque égal à au moins deux fois la taille du bundle sur Oracle VM Server du fait de la nécessité d'avoir sur Oracle VM Server le template et la machine virtuelle à créer à partir du template au moins jusqu'à la fin de la création de la machine virtuelle.

1°) Installer le template sur Oracle VM Server
i) Télécharger le bundle et le placer dans le répertoire /OVS/seed_pool d'Oracle VM Server
ii) Dézipper le bundle
# cd /OVS/seed_pool
# unzip V15511.zip
On obtient l'archive du template : OVM_EL5U2_X86_ORACLE11G_PVM.tgz
iii) Supprimer le fichier du bundle pour économiser de l'espace disque
# cd /OVS/seed_pool
# rm –f V15511.zip


iv) Extraire le contenu de l'archive du bundle
# cd /OVS/seed_pool
# tar –xvzf OVM_EL5U2_X86_ORACLE11G_PVM.tgz
Il en résulte le sous-répertoire OVM_EL5U2_X86_ORACLE11G_PVM dans le répertoire /OVS/seed_pool. Ce sous-répertoire contient tous les fichiers du template.
v) vérifier que le template est bien en place
[root@ovs01 ~]# cd /OVS/seed_pool/OVM_EL5U2_X86_ORACLE11G_PVM/
[root@ovs01 OVM_EL5U2_X86_ORACLE11G_PVM]# ls -l
total 31930697
-rw-r--r-- 1 root root 26214401024 Jan 19 2009 oracle11g_x86_asm.img
-rw-r--r-- 1 root root 474 Feb 2 2009 README
-rw-r--r-- 1 root root 6482630656 Feb 2 2009 System.img
-rw-r--r-- 1 root root 437 Aug 21 17:30 vm.cfg
-rw-rw-rw- 1 root root 353 Aug 21 17:24 vm.cfg.orig
[root@ovs01 OVM_EL5U2_X86_ORACLE11G_PVM]#

2°) Se connecter à Oracle VM manager et importer le template
i) Avec son navigateur préféré, se connecter à Oracle VM manager à partir de son poste de travail de travail Windows XP par exemple. L'URL ressemble à ceci : https://192.168.10.100:4443/OVS
ii) Importer dans Oracle VM Manager le template installé sur Oracle VM Server
Onglet Resources -> sous-onglet "Virtual Machine Template" -> bouton Import.
Le wizard d'import démarre avec son premier écran
Sélectionner le bouton radio "Select from Server Pool (Discover and Register)" puis cliquer sur Next.
Renseigner les différents champs qui s'afficher sur l'écran suivant (certaines valeurs sont à sélectionner dans une courte liste déroulante) :
Server Pool Name : seed_pool
Virtual Machine Template name : OVM_EL5U2_X86_ORACLE11G_PVM
Operating System : Oracle Enterprise Linux 5
Virtual Machine System Username : root
Virtual Machine System Username password : ovsroot
Cliquer sur le bouton Next après avoir vérifié tous les renseignements fournis.
L'écran de confirmation s'affiche. Cliquer sur le bouton Confirm.
Au bout d'un instant, le template apparaît sur une ligne dans le tableau de l'écran "Virtual Machine Template".

3°) Approuver/valider le nouveau template importé
Onglet "Virtual machine template"
Sélectionner (en cliquant sur le bouton radio correspondant) le template nouvellement importé.
Cliquer sur le bouton Approve. L'écran "View Virtual Machine Template" s'affiche. Cliquer de nouveau sur le bouton Approve de ce dernier écran.


4°) Créer la nouvelle machine à partir du template importé et validé.
Nous allons appeler la nouvelle machine (à créer) BUND01.
Onglet "Virtual Machines" -> Bouton "Create Virtual Machine".
Le wizard de création de la machine virtuelle démarre avec son premier écran.
Sélectionner le bouton radio "Create virtual machine based on virtual machine template" puis cliquer sur Next.
Sélectionner seed_pool pour Server Pool et auto pour Preferred Server ; puis cliquer sur Next.
Sur l'écran source, sélectionner le template OVM_EL5U2_X86_ORACLE11G_PVM ; puis cliquer sur Next.
L'écran "Machine Information" s'affiche. Renseigner les différents champs sans cocher la case à cocher "Enable High Availability") :
Virtual Machine name : BUN01
Console password : MdPC0ns0le (ceci n'est qu'un exemple)
Ajouter deux interfaces réseau à la machine en cliquant deux fois sur le bouton Add. Puis cliquer sur le bouton Next.
L'écran de confirmation s'affiche. Cliquer sur le bouton Confirm.
L'écran "Virtual machines" s'affiche avec dans le tableau des machines, une nouvelle ligne correspondant à la nouvelle machine virtuelle en cours de création. Dans la colonne Status on voit s'afficher Creating.
La création de la machine virtuelle peut prendre plusieurs dizaines de minutes. Il est conseillé de cliquer de temps en temps sur le bouton Refresh.
Une fois créée, la machine virtuelle passe à l'état "Powered Off".
En cas de problème, cliquer sur le lien Show de la colonne Details sur la ligne correspondant à la machine et puis sur le chiffre sous forme de lien présent en face du libellé Log dans la zone de d'informations qui s'affiche.

5°) Démarrer la machine virtuelle et finaliser sa configuration
Cliquer sur l'onglet "Virtual Machines".
Sélectionner la machine BUND01 en cliquant sur le bouton radio de la colonne select de la ligne lui correspondant.
Cliquer sur le sous-onglet "Power On". Le status de la machine passe de "Powered Off" à Initializing. Au bout de quelques secondes il passe à Running.
Dès que le status passe à Running, cliquer sur le sous-onglet Console et se connecter à la console de la machine. Démarrer alors l'interview de configuration. Il ressemble à ce qui suit (extraits) :
Regenerating pu2date uuid
Setting Oracle validated configuration parameters
Configuring network
Use DHCP ? y/n [n] (Commentaire : saisir n ou appuyer sur la touché )
Static IP : 192.168.10.120 (Commentaire : ceci n'est qu'un exemple ; saisissez l'addresse de votre réseau local que vous souhaitez affecter à la nouvelle machine).
Netmask : 255.255.255.0
Default gateway IP : 192.168.10.1
DNS server IP : 192.168.10.1
Hostname : bund01
….
Orcale database Configuration
This will configure on-boot properties of Oracle Database
The following will determine …
Do you want relink binaries ? y/n [n] n (ou )
Specify the http port that will be used for Oracle Application Express [8080] :
Specify a port that will be used for the database listener [1521] :
Specify a password to be used for database accounts. Note that the same password will be used for SYS, SYSTEM and ADMIN for APEX. Oracle recommends the use of different passwords for each database account. This can be done after initial configuration : MdP0db
Confirm the password : MdP0db
Do you want Oracle Database to be started on boot (y/n) [y] :
Running orainstRoot.sh and root.sh …
Changing permissions of /u01/app/OraInventory to 770.
Changing groupname of /u01/app/OraInventory to dba
The execution of the script is complete.
Running Oracle 11g root;sh script …
The following environment variables are set as :
ORACLE_OWNER: oracle
ORACLE_HOME: /u01/app/oracle/product/11.1.0/db_1
Enter the full pathname of the local bin directory : [/usr/local/bin] :
Creating /etc/oratab file …
Entries will be added …
Starting CSS.
Waiting for CSS available
ASM instance started
Total System Global Area …
Fixed Size …
Variable Size …
ASM Cache …

Oracle instance started
Total System Global Area…
Fixed Size …
Variable Size …
Database buffers …
Redo buffers …
Database mounted.
Database opened.
Configuration completed successfully
To access the Oracle Application Express go to http://bund01:8080/apex
Press any key to continue …
Enterprise Linux Enterprise Linux Sever release 5.2 (Carthage)
Kernel 2.6.18-92.1.22.0.1.el5xen on i686
bund01 login : oracle
Password : oracle



Annexe : Utilisation de la mémoire physique
Prenez garde à l'utilisation de la mémoire physique de votre serveur de tests, le serveur physique.
Si comme moi vous avez Oracle VM manager installé en machine sur le serveur physique pilotant Oracle VM Server, vous aurez probablement besoin de revoir à la baisse la mémoire affectée par défaut à la machine virtuelle que vous souhaitez installer. La valeur par défaut est de 2048 Mo.
Sinon la création va échouer avec le message suivant :
"failed:
StackTrace: File "/opt/ovs-agent-2.2/OVSSiteVM.py", line 79, in start_vm raise exception"
Une solution consiste à reconfigurer à la baisse la mémoire allouée à la machine virtuelle en cours de création. Procéder comme suit :
1°) Eteindre la machine virtuelle
Onglet "Virtual Machines"
Sélectionner la machine à éteindre
Cliquer sur le sous-onglet "Power Off"
Cliquer sur le bouton Refresh

2°) Reconfigurer la mémoire/RAM de la machine
Sélectionner la machine à reconfigurer
Cliquer sur le sous-onglet Configurer
Et modifier les champs suivants
Maximum Memory Size (MB): 1024
Memory Size (MB) : 1024


Renommage de la base
La base de données Oracle et l'instance de base de données créées portent le nom orcl.
Les DBAs pourraient avoir besoin de changer ce nom.
Pour faire simple et court, je vous conseille l'article de Burleson Consulting
How to rename an Oracle database ORACLE_SID? A new method for a database rename instance (Oracle Tips by Burleson ConsultingApril 21, 2008 - http://www.dba-oracle.com/t_rename_database_oracle_sid.htm

Pour les puristes, il restera encore à modifier les chemins vers les fichiers temporaires et de données de la base de données pour y faire apparaître le nouveau nom de la base de données (par exemple test) à la place de orcl). Il faudra tenir compte du fait que tous ces fichiers sont dans un diskgroup ASM.


En guise de conclusion
Outre l'intérêt grandissant que présente la virtualisation dans les data-centers, Oracle, par sa technologie Oracle VM fondée sur le produit Xen s'efforce d'intégrer son système open source Oracle Enterprise Linux alias Unbrekable Linux et son produit phare Oracle Database. Une vraie petite révolution est peut-être en marche.
Pour l'instant les centres de formation, les plate-formes de développement et/ou de tests peuvent déjà en tirer beaucoup de bénéfice dans leur travail au quotidien.
Il va sans dire que les consultants architectes et DBA faisant de la veille technique et qui souhaiteraient faire des tests chez eux y trouveront leur compte.
Gageons que les ingénieurs systèmes et les spécialistes en technique de virtualisation se l'approprieront rapidement dans l'intérêt de tous les interlocuteurs IT dans l'entreprise.

Ajout d'un nouveau repository à Oracle VM Server
Avant d'aborder l'installation/création d'une machine virtuelle Oracle VM à partir d'un template intégrant OEL et Oracle database 11g. Faisons un petit détour sur une problématique que vous rencontrerez probablement dans votre aventure Oracle VM.
Compte tenu des volumes occupés par les templates et les images de machines virtuelles, vous risquez de vous retrouver très rapidement à court d'espace sur Oracle VM Server (/OVS) si vous avez affecté un disque de votre serveur à Oracle VM Server et avez installé Oracle VM manager sous forme de machine virtuelle sur le même serveur. Il devient donc indispensable d'ajouter de l'espace supplémentaire (par exemple un autre disque) à Oracle VM Server) avant de pouvoir continuer de mener ses tests. Dans la terminologie d'Oracle VM on dit que l'on ajoute un repository supplémentaire à Oracle VM Server.
Nous vous proposons ci-après l'une des solutions les plus simples.

1°) Partitionner le disque à utiliser pour le nouveau repository en y créant une seule partition qui occupe tout le disque (appellons-la sdd1) et y installer un système de fichier de type ocfs2.
[root@ovs01 OVM_EL5U3_X86_OVM_MANAGER_PVM]# mkfs.ocfs2 /dev/sdd1
mkfs.ocfs2 1.2.7
Filesystem label=
Block size=4096 (bits=12)
Cluster size=4096 (bits=12)
Volume size=73344819200 (17906450 clusters) (17906450 blocks)
556 cluster groups (tail covers 4370 clusters, rest cover 32256 clusters)
Journal size=268435456
Initial number of node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 4 block(s)
Formatting Journals: done
Writing lost+found: done
mkfs.ocfs2 successful


2°) Transformer le serveur physique d'Oracle VM Server en un cluster à un nœud
i) Créer le fichier /etc/ocfs2/cluster.conf sur Oracle VM Server
S'assurer préalablement qu'il n'existe pas déjà.
Sur mon serveur il a fallu créer le répertoire :etc/ocfs2 et le fichier cluster.conf ; les tabulations sont indispensables.
L'adresse IP indiqué dans le fichier est celle de notre Oracle VM Server.
# cat /etc/ocfs2/cluster.conf
cluster:
node_count = 1
name = ocfs2

node:
ip_port = 7777
ip_address = 192.168.10.100

number = 1

name = ovs01

cluster = ocfs2


ii) Mettre en ligne le nouveau cluster
[root@ovs01 OVM_EL5U3_X86_OVM_MANAGER_PVM]# /etc/init.d/o2cb online ocfs2
Starting O2CB cluster ocfs2: OK
[root@ovs01 OVM_EL5U3_X86_OVM_MANAGER_PVM]#

3°) Créer le nouveau repository
[root@ovs01 ovs]# /usr/lib/ovs/ovs-makerepo /dev/sdd1 0 "Repo #2 on disk sdd"
Initializing NEW repository /dev/sdd1
SUCCESS: Mounted /OVS/86B221DA65CE4F469C4A39B0777A5A45
Updating local repository list.
ovs-makerepo complete

4°) Procéder aux vérifications nécessaires
[root@ovs01 ~]# cat /etc/ovs/repositories
# This configuration file was generated by ovs-makerepo
# DO NOT EDIT
86B221DA65CE4F469C4A39B0777A5A45 /dev/sdd1

[root@ovs01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdc2 3.0G 1.6G 1.2G 58% /
/dev/sdc3 65G 46G 19G 72% /OVS
/dev/sdc1 99M 36M 58M 39% /boot
tmpfs 293M 0 293M 0% /dev/shm
/dev/sdd1 69G 34G 35G 49% /OVS/86B221DA65CE4F469C4A39B0777A5A45
[root@ovs01 ~]#

Et le tour est joué. Vos soucis de manque d'espace sont momentanément réglés.

Labels: , , , ,

Thursday, August 20, 2009

DECOUVERTE ET APPROPRIATION D'ORACLE VM (2E PARTIE)
Ce post est consacré à l'installation d'Oracle VM manager sous forme de machine virtuelle sur la machine d'Oracle VM Server.
L'installation d'Oracle VM Manager sur une machine virtuelle hébergée par Oracle VM Server présente un peu plus de difficultés en ce sens qu'il faut avoir à l'esprit quelques notions et repères importants. La principale difficulté réside en ceci qu'il y a des questions dont les réponses ne sont pas triviales. Pour que vous ne soyez pas obligés d'y consacrer trop de temps, je détaille ci-après mes suggestions.
Quatre ressources documentaires sont à consulter avant de se lancer :
- Oracle VM Manager Template (An Oracle White Paper February 2009)
http://oss.oracle.com/~wcoekaer/mgrwp.pdf
- README (le fichier accompagnant l'archive contenant le template d'Oracle VM Manager)
- Creating and Using Oracle VM Templates: The Fastest Way to Deploy Any Enterprise Software
http://www.oracle.com/technologies/virtualization/docs/ovmtemplateoverview-whitepaper.pdf
Je suggère d'utiliser le README comme mode opératoire. Il passe en revue les aspects les plus importants de l'installation dont les questions de l'interview de déployement, les "know issues". Les questions ne sont pas toutes triviales
Pour SMTP server (Outgoing mail server SMTP hostname), indiquer le nom de machine d'Oracle VM Server. Et pour E-mail Address for account 'admin', fournissez une adresse inexistante du genre admin@knmc.local où "knmc.local" est le nom de domaine fictif que vous allez utiliser pour vos tests de virtualisation.
Pour Orcale VM Server Pool name, indiquer "seed_pool" correspondant au nom d'un sous-répertoire de /OVS, créé lors du déployement d'Oracle VM Manager et prévu pour être le dépôt centralisé des templates/modèles que vous téléchargerez par la suite et importerez dans Oracle VM Manager. Ce choix facilite la gestion et l'importation ultérieures des templates.
Pour Oracle VM Server login user name, indiquer root.
Rappelons que deux comptes OS d'utilisateurs sont créés sur Oracle VM Manager lors de son déployement (voir le README)

Ne pas se laisser abuser par la remarque abrupte suivante du README :
"Note that Oracle VM Manager is critical for managing Oracle VM Server Pools. Do not pause, suspend or shutdown this virtual machine! Configuring HA is recommended for this virtual machine so that Oracle VM will automatically restart the Oracle VM Manager virtual machine if there is server crash."
i) Il n'est pas question de configurer HA dans votre environnement de tests (trop de pré-requis non satisfaits et de ce fait vous courez au devant de difficultés inutiles).
ii) Vous ne serez pas obligés de laisser votre serveur allumé pendant des semaines. Il va sans dire qu'en l'éteignant, votre Oracle VM Manager aussi va s'arrêter. Après le re-démarrage de votre serveur physique de tests, il vous est possible de re-démarrer Oracle VM Manager par une séquence de commandes semblable à celle-ci
# cd /OVS/running_pool/OVM_EL5U3_X86_OVM_MANAGER_PVM
# xm create vm.cfg
iii) Pour verifier que Oracle VM Manager est de nouveau opérationnel, exécuter la commande suivante :
# xm list

La mise en place d'Oracle VM Manager comprend deux phases
1°) La phase de déployement
2°) La phase de configuration
La phase de déployement comporte l'interview de déployement et se termine par les messages suivants :
"The Oracle VM manager is deploying, i twill take a few minutes. Please connect to the virtual machine console to make sure Oracle VM Manager is deployed successfully. You can use any VNC viewer from da desktop machine via the command :
vncviewer ovs01.knmc.local:5900
After Oracle VM Manager has been successfully deployed, access the Oracle VM manager home page at :
http://192.168.1.110:8888/OVS (au cas où la connexion sécurisée n'a pas été activée)
https://192.168.1.110:4443/OVS (au cas où la connexion sécurisée a été activée)"

Pour la phase de configuration, on peut lancer vncviewer directement depuis un terminal d'Oracle VM Server
Pendant cette phase, le package tightvnc-java est installé sur Oracle VM Manager, entre autres. Mais surtout cette phase se termine par le message d'erreur suivant qui ne semble avoir aucun impact négatif sur le fonctionnement d'Oracle VM Manager :
"Error :
OVM-2007 Master Oracle VM Agent (ovs01.knmc.local) is not active, and the operation cannot be performed
OVM-4014 Invalid Object.
Fail to configure Oracle VM Manager.
Please refer to /var/log/ovm-manager-template/reconfigMgr.log for further info.
Do you want to configure Oracle VM Manager again (Y|n) ? "
Répondre n.
A la suite de cette réponse, on voit s'afficher le prompt de connexion à Oracle VM Manager
"ovmm login :"

En guise de vérification de bon fonctionnement d'Oracle VM server, nous avons créé manuellement et démarré une machine virtuelle à partir d'un template/modèle. Cependant il n'a pas été possible de s'y connecter à l'aide l'utilitaire xm (commande "xm console ") à partir d'un terminal d'Oracle VM Server. Rappelons tout de même que notre objectif est d'exploiter les facilités offertes par Oracle VM Manager.
Nous en parlerons dans mon prochain post.
En attendant, quelques suggestions de lecture complémentaire :
- Oracle VM (by Julian Dyke – Independent Consultant) :
http://www.juliandyke.com/Presentations/OracleVM.ppt
- Managing virtual Machines – Oracle VM Manager User's Guide release 2.1 :
http://download.oracle.com/docs/cd/E11081_01/doc/doc.21/e10901/vm.htm
- Oracle VM Templates Readme
http://download.oracle.com/otn_software/virtualization/README.templates

Dans notre prochain post, nous verrons étape par étape comment installer une machine virtuelle à l'aide d'Oracle VM manager à partir du template OVM_EL5U1_X86_PVM_4GB et d'Oracle Database 11g X86 disk image.

Labels: , , ,

DECOUVERTE ET APPROPRIATION D'ORACLE VM (1ERE PARTIE)
Après avoir utilisé pendant plusieurs années les produits de VMware Server 1 et VMware Server 2 pour mes tests de veille techniques (RAC 10 avec OCFS, RAC 10g avec ASM, Dataguard 10g, RAC 11g avec ASM, Openfiler etc), j'ai fini par me laisser convaincre par les actions et annonces d'Oracle dans le domaine de la virtualisation. C'est pourquoi j'ai décidé de faire d'Oracle VM un sujet de veille technique depuis ce printemps.

Mon objectif dans les posts que je ferai concernant Oracle VM ne sera pas de vous livrer des procédures complètes. Bien des collègues DBAs le font déjà depuis 2007 et je donnerai quelques adresses d'articles intéressants dans mes posts. Mon objectif sera de fournir des repères, des pistes pour éviter certains pièges et enfin des références d'articles et de ressources qui permettront à ceux qui s'intéressent depuis peu au sujet, de commencer leur exploration sur des bases solides sans perdre du temps et sans s'égarer dans l'immensité d'internet.


J'ai commencé mon aventure Oracle VM par la lecture de trois articles très intéressants de ArKzoYd, un DBA de chez Oracle qui est passé récemment chez Easyteam.

- Installer Oracle VM sur votre ordinateur ou votre portable
(http://blog.easyteam.fr/2009/07/12/oraclevm-4-laptop/)
- Installer un serveur X sur le domaine 0 d'OracleVM
(http://blog.easyteam.fr/2009/07/12/oraclevm-vm/
- Créer une machine virtuelle manuellement sur Oracle VM
(http://blog.easyteam.fr/2009/07/12/oraclevm-vm/

Mon environnement de tests comprend :
- Un serveur Dell PowerEdge 1800 avec deux processeurs Core-duo et 4 Go de RAM équipé de 3 trois disques SCSI de 73 Go et 1 disque SCSI de 300 Go. L'un des trois disques de 73 Go est consacré aux tests d'Orcale VM
- Un poste de travail Dell OpiPlex de 3Go de RAM sous Windows XP et disposant d'un disque dur de 190 Go découpé en trois partitions de 40, 50 et 100 Go. La partition de 100Go étant libre pour les tests.

Oracle VM est constitué de trois composants :
- Oracle VM Server
- Oracle VM Manager
- Oracle VM Agent
La première chose qui frappe lorsque l'on aborde le sujet d'Oracle VM c'est le fait qu'il faut à priori au moins deux machines pour sa mise en œuvre :
- Une machine dédiée pour Oracle VM Server hébergeant également Oracle VM Agent
- Une machine partagée pour y installer Oracle VM Manager.
Mais très vite Oracle a dû comprendre que cela peut constituer un frein pour beaucoup de DBAs pour des raisons budgétaires ou des raisons de place. D'où leur heureuse initiative de mettre à disposition un template/modèle permettant d'installer Oracle VM Manager sous forme de machine virtualisée sur le serveur d'Oracle VM Server.

L'installation d'Oracle VM Server ne présente pratiquement aucune difficulté. Cependant je vous suggère de lire préalablement, outre les deux premiers articlés cités ci-dessus et publiés par ArKzoYd, le white paper de xtravirt intitulé "Installation Guide on How to install Oracle VM server and Manager 2.1.5" (http://xtravirt.com/xd10113 ,un enregistrement est nécessaire pour y accéder)
Autres suggestions :
- Installer un serveur X sur le domaine 0 d'OracleVM en suivant le mode opératoire fourni par ArKzoYd dans son article portant le titre évocateur et ne pas oublier de configurer son clavier azerty (en ajoutant la ligne [Option "XkbLayout" "fr"] sans les crochets dans le fichier /etc/X11/xorg.conf).
- Installer dans la foulée firefox sur le serveur (yum install firefox)
- Affecter à Oracle VM Server une adresse libre de son réseau local et déclarer comme gateway par défaut et DNS l'adresse IP de son routeur/box (livebox, freebox ou Neufbox, etc.). Cela facilite énormémemnt les choses par la suite.
A suivre …

Labels: , ,

ORACLE PUBLIC YUM SERVER et ORACLE-VALIDATED RPM

Lors de mes tests de cet été je suis tombé par hasard sur le serveur yum public qu'Oracle a mis en place afin de faciliter la vie aux personnes qui utilisent souvent sa distribution Unbreakable Linux et qui souhaiteraient pouvoir bénéficier des facilitées de Yum lors des mises à jour de leurs installations OEL même si elles n'ont pas pris d'abonnement de support (assuré par Oracle). En même temps je découvre aussi qu'Oracle a mis en place un package spécial qui aide, lors d'installation d'une distribution OEL ou Redhat pour la mise en place d'une base de données Oracle, à automatiser le téléchargement et l'installation de tous les packages RPM requis y compris les dépendances tout en assurant la configuration des paramètres du noyau, la création du compte oracle et des groupes dba et oinstall. Le gain de temps devrait donc être appréciable.
Dès lors il est tentant de tester ces deux mécanismes intéressants afin de pouvoir les utiliser sans souci chez les clients.
Mes recherches sur le net ont cependant montré que les articles expliquant la mise en œuvre de ces deux mécanismes – en effet je recommande de les utiliser comme un couple inséparable – font des hypothèses qu'ils n'explicitent pas.
Voilà pourquoi ce n-ième article sur le sujet a pour vocation d'être autosuffisant pour tout utilisateur connaissant un peu Linux (son installation et sa configuration) et surtout pour les DBAs.
Le lecteur pourra consulter avec bénéfice les trois articles suivants que j'ai exploités pour faire mes tests qui ont été concluants :
i) Prepare your Linux Server to install Oracle database using oracle-validated RPM - http://perumal.org/tag/rpm/
ii) Public Yum Server - http://public-yum.oracle.com/
iii) Installing the Oracle Validated rpm on el5 - http://blogs.oracle.com/AlejandroVargas/Installing-the-Oracle-Validated-rpm-on-EL5.pdf

1) Vérifier si yum est présent sur son installation et si ce n'est pas le cas, il faut commencer par l'installer.
[root@prod yum.repos.d]# rpm -qa | grep yum
yum-security-1.1.16-13.el5
yum-updatesd-0.9-2.el5
yum-3.2.19-18.el5
yum-metadata-parser-1.1.2-2.el5
[root@prod yum.repos.d]# ls -l
total 0

2) Vérifier si un référentiel Yum est présent sur votre système.
En général ce n'est pas le cas pour les systèmes Oracle Enterprise L'inux. Au cas où un serait présent mais ne correspondrait pas à la version de votre distribution, il faudrait le renommer.
root@prod etc]# cd yum.repos.d
[root@prod yum.repos.d]# ls
[root@prod yum.repos.d]# ls -l
total 0

3) Télécharger le référentiel Yum correspondant à votre distribution et l'activer
L'activation consiste à l'éditer avec son éditeur préféré et à remplacer "enabled=0" par "enabled=1"
[root@prod yum.repos.d]# wget http://public-yum.oracle.com/public-yum-el5.repo
--19:43:01-- http://public-yum.oracle.com/public-yum-el5.repo
Résolution de public-yum.oracle.com... 141.146.44.34
Connexion vers public-yum.oracle.com|141.146.44.34|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 1402 (1,4K) [text/plain]
Saving to: `public-yum-el5.repo'

100%[=======================================>] 1.402 --.-K/s in 0,002s

19:43:22 (685 KB/s) - « public-yum-el5.repo » sauvegardé [1402/1402]

[root@prod yum.repos.d]# ls
public-yum-el5.repo
[root@prod yum.repos.d]# vi public-yum-el5.repo
[root@prod yum.repos.d]#


4) Télécharger le package oracle-validated correspondant à sa distribution à l'adresse http://oss.oracle.com/el5/oracle-validated et l'installer
Les messages générés lors de mes tests sont fournis ci-dessous.
[root@prod yum.repos.d]# cd /tmp
[root@prod tmp]# wget http://oss.oracle.com/el5/oracle-validated/oracle-validated-1.0.0-18.el5.i386.rpm
[root@prod tmp]# yum install ./oracle-validated-1.0.0-18.el5.i386.rpm
Loaded plugins: security
el5_u3_base | 1.1 kB 00:00
primary.xml.gz | 788 kB 00:08
el5_u3_base 3442/3442
Setting up Install Process
Parsing package install arguments
Examining ./oracle-validated-1.0.0-18.el5.i386.rpm: oracle-validated-1.0.0-18.el5.i386
Marking ./oracle-validated-1.0.0-18.el5.i386.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-validated.i386 0:1.0.0-18.el5 set to be updated
--> Processing Dependency: compat-db for package: oracle-validated
--> Processing Dependency: compat-gcc-34 for package: oracle-validated
--> Processing Dependency: compat-gcc-34-c++ for package: oracle-validated
--> Processing Dependency: libXp for package: oracle-validated
--> Processing Dependency: libaio-devel for package: oracle-validated
--> Processing Dependency: sysstat for package: oracle-validated
--> Processing Dependency: unixODBC for package: oracle-validated
--> Processing Dependency: unixODBC-devel for package: oracle-validated
--> Running transaction check
---> Package compat-gcc-34.i386 0:3.4.6-4 set to be updated
---> Package libaio-devel.i386 0:0.3.106-3.2 set to be updated
---> Package compat-db.i386 0:4.2.52-5.1 set to be updated
---> Package unixODBC.i386 0:2.2.11-7.1 set to be updated
---> Package sysstat.i386 0:7.0.2-3.el5 set to be updated
---> Package unixODBC-devel.i386 0:2.2.11-7.1 set to be updated
---> Package libXp.i386 0:1.0.0-8.1.el5 set to be updated
---> Package compat-gcc-34-c++.i386 0:3.4.6-4 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
oracle-validated i386 1.0.0-18.el5 ./oracle-validated-1.0.0-18.el5.i386.rpm
15 k
Installing for dependencies:
compat-db i386 4.2.52-5.1 el5_u3_base 1.7 M
compat-gcc-34 i386 3.4.6-4 el5_u3_base 4.1 M
compat-gcc-34-c++ i386 3.4.6-4 el5_u3_base 11 M
libXp i386 1.0.0-8.1.el5 el5_u3_base 22 k
libaio-devel i386 0.3.106-3.2 el5_u3_base 11 k
sysstat i386 7.0.2-3.el5 el5_u3_base 170 k
unixODBC i386 2.2.11-7.1 el5_u3_base 830 k
unixODBC-devel i386 2.2.11-7.1 el5_u3_base 743 k

Transaction Summary
================================================================================
Install 9 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 19 M
Is this ok [y/N]: y
Downloading Packages:
(1/8): libaio-devel-0.3.106-3.2.i386.rpm | 11 kB 00:00
(2/8): libXp-1.0.0-8.1.el5.i386.rpm | 22 kB 00:00
(3/8): sysstat-7.0.2-3.el5.i386.rpm | 170 kB 00:01
(4/8): unixODBC-devel-2.2.11-7.1.i386.rpm | 743 kB 00:12



(5/8): unixODBC-2.2.11-7.1.i386.rpm | 830 kB 00:11
(6/8): compat-db-4.2.52-5.1.i386.rpm | 1.7 MB 00:19
(7/8): compat-gcc-34-3.4.6-4.i386.rpm | 4.1 MB 00:47
(8/8): compat-gcc-34-c++-3.4.6-4.i386.rpm | 11 MB 02:25
--------------------------------------------------------------------------------
Total 47 kB/s | 19 MB 06:43
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : compat-gcc-34 [1/9]
Installing : unixODBC [2/9]
Installing : compat-gcc-34-c++ [3/9]
Installing : libXp [4/9]
Installing : compat-db [5/9]
Installing : sysstat [6/9]
Installing : unixODBC-devel [7/9]
Installing : libaio-devel [8/9]
Installing : oracle-validated [9/9]

Installed: oracle-validated.i386 0:1.0.0-18.el5
Dependency Installed: compat-db.i386 0:4.2.52-5.1 compat-gcc-34.i386 0:3.4.6-4 compat-gcc-34-c++.i386 0:3.4.6-4 libXp.i386 0:1.0.0-8.1.el5 libaio-devel.i386 0:0.3.106-3.2 sysstat.i386 0:7.0.2-3.el5 unixODBC.i386 0:2.2.11-7.1 unixODBC-devel.i386 0:2.2.11-7.1
Complete!
[root@prod tmp]#

5) Vérifier la liste des fichiers générés après cette installation de oracle-validated;
Sur mon installation, voici les fichiers et répertoires nouveaux générés. On peut obtenir cette liste par une commande du type "find / -name "*oracle-validated*"
/usr/bin/oracle-validated-verify
/etc/sysconfig/oracle-validated
/etc/sysconfig/oracle-validated/oracle-validated.conf
/etc/sysconfig/oracle-validated/oracle-validated-verify
/etc/sysconfig/oracle-validated/oracle-validated.params
/var/log/oracle-validated

6) Le contenu du fichier /var/log/oracle-validated/results/orakernel.log
[root@prod results]# cat /var/log/oracle-validated/results/orakernel.log
Creating oracle user passed

Verifying kernel parameters as per Oracle recommendations...
fs.file-max 327679
kernel.msgmni 2878
kernel.msgmax 65536 8192
kernel.msgmnb 65536 65536
kernel.sem 250 32000 100 142
kernel.shmmni 4096
kernel.shmall 268435456 1073741824
kernel.shmmax 4294967295 4294967295
kernel.sysrq 0 1
net.core.rmem_default 262144
net.core.rmem_max 4194304
net.core.wmem_default 262144
net.core.wmem_max 262144
fs.aio-max-nr 3145728
net.ipv4.ip_local_port_range 1024 65000
Setting kernel parameters as per oracle recommendations...
Altered file /etc/sysctl.conf
Original file backed up at /etc/sysctl.conf.orabackup
Verifying & setting of kernel parameters passed

Verifying oracle user OS limits as per Oracle recommendations...
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 3500000
oracle hard memlock 3500000
Setting oracle user OS limits as per Oracle recommendations...
Altered file /etc/security/limits.conf
Original file backed up at /etc/security/limits.conf.orabackup
Verifying & setting of user limits passed

Verifying kernel boot parameters as per Oracle recommendations...
Setting kernel boot parameters as per Oracle recommendations...
Boot parameters will be effected on next reboot
Altered file /boot/grub/grub.conf
Original file backed up at /boot/grub/grub.conf.orabackup
Verifying & setting of boot parameters passed

Verifying module parameters as per Oracle recommendations...
Setting module parameters as per Oracle recommendations...
Altered file /etc/modprobe.conf
Original file backed up at /etc/modprobe.conf.orabackup
e1000 settings modified to include FlowControl=1
Aug 9 19:57:43 prod yum: Installed: compat-db-4.2.52-5.1.i386
Aug 9 19:57:44 prod yum: Installed: sysstat-7.0.2-3.el5.i386
Aug 9 19:57:45 prod yum: Installed: unixODBC-devel-2.2.11-7.1.i386
Aug 9 19:57:45 prod yum: Installed: libaio-devel-0.3.106-3.2.i386
Aug 9 19:57:54 prod kernel: e1000: eth0: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
Verifying & setting of module parameters passed

7) Le contenu du fichier /etc/sysconfig/oracle-validated/oracle-validated.params
[root@prod results]# cat /etc/sysconfig/oracle-validated/oracle-validated.params
# Oracle VC Parameter config file


#Kernel parameters
#category:arch:kernel:distribution:parameter:recommended-value
kernel:*:*:*:fs.file-max:327679
kernel:*:*:*:kernel.msgmni:2878
kernel:*:*:*:kernel.msgmax:8192
kernel:*:*:*:kernel.msgmnb:65536
kernel:*:*:*:kernel.sem:250 32000 100 142
kernel:*:*:*:kernel.shmmni:4096
kernel:*:*:*:kernel.shmall:1073741824
#shmmax value below will be overwritten based on architecture (Recommended:4GB for 32bit and 4TB for 64bit)
kernel:*:*:*:kernel.shmmax:4294967295
kernel:*:*:*:kernel.sysrq:1
kernel:*:*:*:net.core.rmem_default:262144
kernelcomment:For 11g recommended value for net.core.rmem_max is 4194304
kernel:*:*:*:net.core.rmem_max:4194304
kernelcomment:For 10g uncomment the following line, comment other entries for this parameter and re-run sysctl -p
kernelcomment:net.core.rmem_max=2097152
kernel:*:*:*:net.core.wmem_default:262144
kernel:*:*:*:net.core.wmem_max:262144
kernel:*:*:*:fs.aio-max-nr:3145728
kernel:*:*:*:net.ipv4.ip_local_port_range:1024 65000
kernel:*:*:Red Hat Enterprise Linux AS release 4:vm.lower_zone_protection:100
kernel:*:*:Enterprise Linux Enterprise Linux AS release 4:vm.lower_zone_protection:100

#Oracle OS User limits (domain=oracle/*)
#category:arch:kernel:distribution:type:item:recommended-value
user:*:*:*:soft:nofile:131072
user:*:*:*:hard:nofile:131072
user:*:*:*:soft:nproc:131072
user:*:*:*:hard:nproc:131072
user:*:*:*:soft:core:unlimited
user:*:*:*:hard:core:unlimited
user:i686:*:*:soft:memlock:3500000
user:i686:*:*:hard:memlock:3500000
user:x86_64:*:*:soft:memlock:50000000
user:x86_64:*:*:hard:memlock:50000000
usercomment:i686:Recommended stack hard limit 32MB for oracle installations
usercomment:i686:oracle hard stack 32768

#Kernel boot parameters
#category:arch:processor:kernel:distribution:parameter:recommended-value
boot:x86_64:AMD:*:*:numa:off

#Kernel module parameters
#listed for reference only
#category:arch:processor:kernel:distribution:parameter:recommended-value
#module:*:*:*:e1000:FlowControl=1
[root@prod results]#


8) Nous vous conseillons enfin de procéder à des vérifications manuelles relatives aux packages RPM requis pour Oracle, aux paramètres du noyau Linux et à la création du compte Linux oracle et des groupes dba et oinstall. Le lecteur peut s'appuyer sur l'excellent article du site Oracle-base intitulé "Oracle 11g Release 1 RAC On Linux Using VMware Server 2" consultable à l'adresse http://www.oracle-base.com/articles/11g/OracleDB11gR1RACInstallationOnOEL5UsingVMwareServer2.php, dans sa partie consacré aux pré-requis.

Labels: , , , ,