====== Introduction ======
{{ :centos-300x300.jpg?200|}}Ce document concerne la mise en place d'une base Oracle 10g version 10.2.0.5 sur Centos 5.7 64bits
Il est supposé que CentOS 5.7 64bits a été installé dans sa configuration la plus légère, c'est à dire uniquement le meta-package CORE. [[http://www.silverlake.fr/wiki/doku.php?id=installation_oracle_11g#centos|La page suivante donne plus d'informations sur ce processus]]
Il faut disposer d'un compte My Oracle Support pour charger les patches suivants :
* p8202632_10205_Linux-x86-64.zip
* 8350262, ce patche gère les certificats du database control au delà du 31/12/2010.
Le serveur se nomme adi100.concarnux.fr et dispose de l'IP 192.168.1.100/24
La RAM du serveur est de 4Go
{{ :logo_oracle10g.gif?200|}}Son processeur est un i3-2105( Intel ) à 3.10GHz
Le disque dur de l'exemple est un SATA de 250Go partitionné ainsi
^Point de montage^Format^Taille^
| Primaire |||
|/boot|ext2| 100Mo|
| |swap| 4Go|
|/|ext3| 2Go|
| Logique |||
|/usr|ext3| 5Go|
|/usr/local|ext3| 5Go|
|/opt|ext3| 10Go|
|/var|ext3| 2Go|
|/tmp|ext3| 1Go|
|/home|ext3| 50Go|
|/u01|ext3| 50Go|
|/u02|ext3| 50Go|
|/u03|ext3| 50Go|
|/u04|ext3| Le reste|
====== Préparation de CentOS ====
Après l'installation de base de CentOS, installer unzip
yum -y install unzip
cd /home
gunzip 10201_database_linux_x86_64.cpio.gz
cpio -idmv < 10201_database_linux_x86_64.cpio
unzip p8202632_10205_Linux-x86-64.zip
Les binaires d'installation de base est sous /home/database. Le patch 10.2.0.5 est sous /home/Disk1
===== Packages =====
Installer les packages suivants
yum -y install compat-libstdc++-296 compat-libstdc++-33 make pdksh elfutils-libelf-devel \
glibc-devel glibc-headers gcc gcc-c++ libaio-devel sysstat unixODBC unixODBC-devel \
xorg-x11-deprecated-libs xorg-x11-utils libgcj-4.1.2-51.el5
Le package xorg-x11-utils et libgcj-4.1.2-51.el5 sont impératifs avec CentOS 5.7 sinon les databases control ne se configuront pas. Erreur sur /usr/lib/libXt.so.6.
Il faut aussi télécharger le fichier suivant et l'installer, sinon les assistants graphiques ne fonctionnerons pas.
wget ftp://ftp.muug.mb.ca/mirror/centos/5.7/os/x86_64/CentOS/libXt-1.0.2-3.2.el5.i386.rpm
rpm -hiv libXt-1.0.2-3.2.el5.i386.rpm
===== Utilisateur et groupes =====
Création des groupes et utilisateur Oracle
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba -s /bin/bash oracle
passwd oracle
Pour l'exemple le mot de passe de oracle sera //manager10//
===== Noyau Linux =====
Configurer certains paramètres du noyau en ajoutant les lignes suivantes au fichier /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "fs.file-max = 65536" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf
echo "net.core.rmem_default = 4194304" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 262144" >> /etc/sysctl.conf
Relire la configuration
sysctl -p
===== Limites =====
Modifier les limites en ajoutant les lignes suivantes au fichier /etc/security/limits.conf
echo "oracle soft nproc 2047" >> /etc/security/limits.conf
echo "oracle hard nproc 16384" >> /etc/security/limits.conf
echo "oracle soft nofile 1024" >> /etc/security/limits.conf
echo "oracle hard nofile 65536" >> /etc/security/limits.conf
===== Fichier /etc/profile =====
Ajouter les lignes suivantes au fichier /etc/profile
echo "if [ $USER = "oracle" ]; then" >> /etc/profile
echo " if [ $SHELL = "/bin/ksh" ]; then" >> /etc/profile
echo " ulimit -p 16384" >> /etc/profile
echo " ulimit -n 65536" >> /etc/profile
echo " else" >> /etc/profile
echo " ulimit -u 16384 -n 65536" >> /etc/profile
echo " fi" >> /etc/profile
echo "fi" >> /etc/profile
===== Version Redhat =====
Simuler une RedHat release 3
echo "RedHat Enterprise Linux ES release 3 (Taroon Update 4)" > /etc/redhat-release
===== Répertoires =====
Créer les répertoires pour Oracle
mkdir -p /u01/app/oracle /u02/app/oracle /u03/app/oracle
chown -R oracle:oinstall /u01/app /u02/app /u03/app
chmod -R 775 /u01/app /u02/app /u03/app
====== Oracle 10g ======
Dans un premier temps installer la version 10.2.0.1 de Oracle
Pour celà se connecter avec le user oracle dans une seconde fenêtre, afin de conserver un accès au root.
Il sera supposé que les fichiers d'installation sont sous /home/database pour le version 10.20.0.1
===== Configuration de l'instalation silencieuse =====
Créer le fichier /home/db.rsp en y mettant les lignes suivantes :
RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME=oinstall
FROM_LOCATION="../stage/products.xml"
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
ORACLE_HOME_NAME=OraDbHome1
TOPLEVEL_COMPONENT={"oracle.server","10.2.0.1.0"}
DEINSTALL_LIST={"oracle.server","10.2.0.1.0"}
ORACLE_HOSTNAME=adi100.concarnux.fr
COMPONENT_LANGUAGES={"en","fr"}
INSTALL_TYPE="EE"
s_nameForDBAGrp=dba
s_nameForOPERGrp=oper
n_configurationOption=3
Lancer l'installation ainsi
/home/database/runInstaller -silent -responseFile /home/db.rsp
En fin d'installation et sous le compte root exécuter les deux scripts suivants
/home/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/10.2.0/db_1/root.sh
Ne pas hésiter à consulter le fichier de log généré pendant l'installation sous /home/oracle/oraInventory/logs/silentInstall2011-10-14_11-03-34AM.log ( le nom sera bien sur différent )
===== Fichier .bash_profile =====
Il faut rajouter certaines variables d'environnement au user oracle dans sont fichier .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_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
. .bash_profile
===== Installation du patch 10.2.0.5 =====
Créer le fichier /home/patch.rsp en y mettant les lignes suivantes :
RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME="oinstall"
FROM_LOCATION="../stage/products.xml"
ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1"
ORACLE_HOME_NAME=OraDbHome1
TOPLEVEL_COMPONENT={"oracle.patchset.db","10.2.0.5.0"}
OUI_HOSTNAME=adi100.concarnux.fr
COMPONENT_LANGUAGES={"en","fr"}
MYORACLESUPPORT_USERNAME=votre.nom@votre.mail.com
MYORACLESUPPORT_PASSWORD=votre_mot_de_passe
Lancer l'installation du patche
/home/Disk1/runInstaller -silent -responseFile /home/patch.rsp -ignoreSysPreReqs
En fin d'instalation, sous le compte root, relancer le script root.sh en validant les réponses.
/u01/app/oracle/product/10.2.0/db_1/root.sh
Vérifier l'installation correcte du patch
sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Ven. Oct. 14 11:44:52 2011
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
SQL>
===== Installation du patch 8350262 ======
En version 10.2.0.4 et 10.2.0.5 les database control sont sécurisés, or les certificats ne sont plus valables après le 31/12/2010 !
Il faut donc installer le patch 8350262 disponible sur My Oracle Support. Attention le patch est différent pour 10.2.0.4 et 10.2.0.5 !
Un fois le .zip téléchargé, le décompresser
unzip p8350262_10205_Generic.zip
Se positionner dans le répertoire créé et appliquer le patch
cd 8350262
$ORACLE_HOME/OPatch/opatch apply
====== Création de la base de données ======
Dans cet exemple, nous allons créer une base de données appelée YODA. Toutes les manipulations se font sous la compte Oracle
===== Répertoires =====
Créer les répertoires suivants :
mkdir -p /u01/app/oracle/admin/YODA/bdump
mkdir -p /u01/app/oracle/admin/YODA/udump
mkdir -p /u01/app/oracle/admin/YODA/pfile
mkdir -p /u01/app/oracle/oradata/YODA
mkdir -p /u02/app/oracle/oradata/YODA
mkdir -p /u03/app/oracle/oradata/YODA
===== Fichier de paramètres=====
Créer le fichier /u01/app/oracle/admin/YODA/pfile/initYODA.ora
db_name = YODA
db_block_size = 8192
background_dump_dest = /u01/app/oracle/admin/YODA/bdump
user_dump_dest = /u01/app/oracle/admin/YODA/udump
control_files = /u01/app/oracle/oradata/YODA/control01.ctl,/u02/app/oracle/oradata/YODA/control02.ctl,/u03/app/oracle/oradata/YODA/control03.ctl
undo_management=auto
sga_target = 640M
pga_aggregate_target = 160M
Créer un lien symbolique vers $ORACLE_HOME/dbs
cd $ORACLE_HOME/dbs
ln -s /u01/app/oracle/admin/YODA/pfile/initYODA.ora initYODA.ora
===== Fichier de mot de passe =====
Créer le fichier de mot de passe
cd $ORACLE_HOME/dbs
orapwd file=orapwYODA password=manager10
===== Création de la base de données =====
export ORACLE_SID=YODA
sqlplus /nolog
SQL> connect / as sysdba
SQL> startup nomount;
SQL> create spfile from pfile;
SQL> create database YODA
character set UTF8
national character set UTF8
logfile
group 1 ('/u01/app/oracle/oradata/YODA/redo01a.log','/u02/app/oracle/oradata/YODA/redo01b.log') size 50M,
group 2 ('/u01/app/oracle/oradata/YODA/redo02a.log','/u02/app/oracle/oradata/YODA/redo02b.log') size 50M,
group 3 ('/u01/app/oracle/oradata/YODA/redo03a.log','/u02/app/oracle/oradata/YODA/redo03b.log') size 50M
datafile '/u01/app/oracle/oradata/YODA/system01.dbf' size 500M
autoextend on next 100M
maxsize 2G extent management local
sysaux datafile '/u01/app/oracle/oradata/YODA/sysaux01.dbf' size 500M
autoextend on next 100M maxsize 2G
undo tablespace UNDO_TBS
datafile '/u02/app/oracle/oradata/YODA/undo_tbs01.dbf' size 25M
default temporary tablespace TEMP
tempfile '/u03/app/oracle/oradata/YODA/temp01.dbf' size 50M;
===== Création des tables du dictionnaire =====
Toujours sous SQL*Plus en sysdba lancer deux scripts
SQL> @?/rdbms/admin/catalog.sql
SQL> @?/rdbms/admin/catproc.sql
===== User sys et system =====
Affecter les mots de passe pour sys et system
SQL> alter user sys identified by manager10;
SQL> alter user system identified by manager10;
Se reconnecter en system/manager10 et lancer le script pupbld.sql
SQL> @?/sqlplus/admin/pupbld.sql
===== Tablespace par défaut =====
Créer un tablespace par défaut à la taille minimale.
SQL> create tablespace users datafile '/u02/app/oracle/oradata/YODA/users_01.dbf' size 100K;
SQL> alter database default tablespace users;
===== Activer le spfile =====
Arrêter et redémarrer la base
sqlplus /nolog
SQL> connect / as sysdba
SQL> shutdown
SQL> startup
===== Flash recovery area =====
Créer la Flash recovery Area sur disque
mkdir -p /u03/app/oracle/flash_recovery_area
Affecter la Flash recovery Area à la base YODA
sqlplus system/manager10
SQL> alter system set db_recovery_file_dest_size=5G scope=both;
SQL> alter system set db_recovery_file_dest='/u03/app/oracle/flash_recovery_area' scope=both;
====== Configuration réseau ======
===== Listener =====
Créer le fichier $ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS=(PROTOCOL = TCP)(HOST = adi100.concarnux.fr )(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME = YODA)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = YODA)
)
Lancer le listener
lsnrctl start
===== Oracle*Net =====
Créer le fichier $ORACLE_HOME/network/admin/sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
Créer le fichier $ORACLE_HOME/network/admin/tnsnames.ora
YODA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = adi100.concarnux.fr)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = YODA)
)
)
Tester la résolution
tnsping YODA
TNS Ping Utility for Linux: Version 10.2.0.5.0 - Production on 14-OCT. -2011 13:20:56
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Fichiers de paramètres utilisés :
/u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
Adaptateur TNSNAMES utilisé pour la résolution de l'alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = adi100.concarnux.fr)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = YODA)))
OK (0 msec)
====== Database Control ======
Configurer correctement la job_queue
sqlplus system/manager10@YODA
SQL> alter system set job_queue_processes=1 scope=both;
Lancer la création du référentiel
emca -repos create
Répondre aux 5 questions
* SID → YODA
* Port d'écoute → 1521
* Mot de passe SYS → manager10
* Mot de passe SYSMAN → manager10 ( cet utilisateur va être créé )
* Répondre Y pour lancer le traitement.
Lancer la création du serveur Web
emca -config dbcontrol db
Répondre aux 7 questions
* SID → YODA
* Processus d'écoute → 1521
* Mot de passe de SYS → manager10
* Mot de passe de DBSNMP → manager10 ( cet utilisateur va être créé )
* Mot de passe de SYSMAN: → manager10
* Adresse électronique pour les notifications (facultatif): Laisser vide
* Serveur de messagerie sortant (SMTP) pour les notifications (facultatif): Laisser vide
* Répondre Y pour lancer le traitement
La connexion se fait via un navigateur sur https://192.168.1.100:1158/em