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. La page suivante donne plus d'informations sur ce processus
Il faut disposer d'un compte My Oracle Support pour charger les patches suivants :
Le serveur se nomme adi100.concarnux.fr et dispose de l'IP 192.168.1.100/24
La RAM du serveur est de 4Go
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 |
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
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
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
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
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
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
Simuler une RedHat release 3
echo "RedHat Enterprise Linux ES release 3 (Taroon Update 4)" > /etc/redhat-release
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
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
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 )
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
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>
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
Dans cet exemple, nous allons créer une base de données appelée YODA. Toutes les manipulations se font sous la compte Oracle
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
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
Créer le fichier de mot de passe
cd $ORACLE_HOME/dbs orapwd file=orapwYODA password=manager10
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;
Toujours sous SQL*Plus en sysdba lancer deux scripts
SQL> @?/rdbms/admin/catalog.sql SQL> @?/rdbms/admin/catproc.sql
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
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;
Arrêter et redémarrer la base
sqlplus /nolog SQL> connect / as sysdba SQL> shutdown SQL> startup
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;
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
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)
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
Lancer la création du serveur Web
emca -config dbcontrol db
Répondre aux 7 questions
La connexion se fait via un navigateur sur https://192.168.1.100:1158/em