====== 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