L'installation du SGBDR Oracle 19c sous Linux n'est pas aussi facile que sous Windows car il y a beaucoup d'opérations à effectuer manuellement.

Préparer le système d'exploitation

  1. Effectuer une mise-à-jour générale du système :
     
    # dnf update -y
    

     

  2. Oracle déconseille l'utilisation des "Transparent HudgePages" car cela peut causer des dysfonctionnements ou des problèmes de performances dans les instances. Pour vérifier si les "Transparent HudgPages" sont activée, taper la commande suivante. Celle-ci retourne alors 3 statuts possibles (always, madvise et never), le statut en cours étant celui entouré par des crochets :
     
    # cat /sys/kernel/mm/transparent_hugepage/enabled
    [always] madvise never
    

     

  3. Pour désactiver les "Transparent HudgePages", il faut éditer GRUB et ajouter "transparent_hugepage=never" à la fin de la ligne GRUB_CMDLINE_LINUX :
     
    # vim /etc/default/grub
    ...
    GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet transparent_hugepage=never" 

     

  4. Regénerer le fichier grub.cfg et rebooter :
     
    # grub2-mkconfig -o /boot/grub2/grub.cfg 
    # reboot

     

  5. Vérifier le statut des "Transparent HudgePages" (voir étape 2)
     
  6. Désactiver SELinux :
     
    # sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
    # setenforce permissive
     
  7. Autoriser les requêtes Oracle dans le parefeu Linux :
     
    # firewall-cmd --permanent --add-port=1521/tcp
    # firewall-cmd --reload
     
  8.  Ajuster le noyaux linux en créant le fichier /etc/sysctl.d/98-oracle.conf avec les paramètres suivants puis en les chargeant :
     
    fs.file-max = 6815744
    kernel.sem = 250 32000 100 128
    kernel.shmmni = 4096
    kernel.shmall = 1073741824
    kernel.shmmax = 4398046511104
    kernel.panic_on_oops = 1
    net.core.rmem_default = 262144
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048576
    net.ipv4.conf.all.rp_filter = 2
    net.ipv4.conf.default.rp_filter = 2
    fs.aio-max-nr = 1048576
    net.ipv4.ip_local_port_range = 9000 65500
    # sysctl -p
     
  9. Créer l'arborescence de répertoires qui sera utilisée par Oracle :
     
    # mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
    # mkdir -p /u02/oradata
     

Installer les pré-requis

Lancer la commande suivante pour installer tous les packages dont Oracle peut avoir besoin :

# dnf install -y bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb make net-tools smartmontools sysstat unzip libnsl libnsl2

 

Créer et configurer les utilisateurs et groupes Oracle

  1. Oracle peut utiliser un certain nombre de comptes utilisateurs ou de groupes Linux. Taper les commandes suivantes pour les créer :
     
    # groupadd -g 1501 oinstall
    # groupadd -g 1502 dba
    # groupadd -g 1503 oper
    # groupadd -g 1504 backupdba
    # groupadd -g 1505 dgdba
    # groupadd -g 1506 kmdba
    # groupadd -g 1507 racdba
    # useradd -u 1501 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
    # echo "oracle" | passwd oracle --stdin

     

  2. Attribuer les droits sur l'arborescence précédemment créée :
     
    # chown -R oracle:oinstall /u01 /u02
    # chmod -R 775 /u01 /u02
     
  3. Ajouter les variables d'environnement requises pour l'utilisateur oracle en modifiant son fichier .bash_profile :
     
    # su - oracle
    # vim ~/.bash_profile
    # Oracle Settings
    export TMP=/tmp
    export TMPDIR=$TMP
    
    export ORACLE_HOSTNAME=oracle-db-19c.centlinux.com
    export ORACLE_UNQNAME=cdb1
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
    export ORA_INVENTORY=/u01/app/oraInventory
    export ORACLE_SID=cdb1
    export PDB_NAME=pdb1
    export DATA_DIR=/u02/oradata
    
    export PATH=$ORACLE_HOME/bin:$PATH
    
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
    # source ~/.bash_profile

     

  4.  Créer le fichier de limites de sécurité /etc/security/limits.d/30-oracle.conf pour l'utilisateur oracle avec le contenu suivant :
     
    # su -
    oracle   soft   nofile    1024
    oracle   hard   nofile    65536
    oracle   soft   nproc    16384
    oracle   hard   nproc    16384
    oracle   soft   stack    10240
    oracle   hard   stack    32768
    oracle   hard   memlock    134217728
    oracle   soft   memlock    134217728
     

Installer Oracle Database 19c

  1. Télécharger le package d'installation Oracle 19c pour Linux après avoir créé un compte et le décompresser dans le répertoire ORACLE_HOME :
     
    # su - oracle
    # unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
     
  2. Créer la variable d'environnement suivant pour permettre à Oracle 19c de reconnaitre CentOS 8 :
     
    # export CV_ASSUME_DISTID=RHEL8.0
     
  3.  Se connecter en tant qu'utilisateur Oracle et lancer l'installation :
    # su - oracle
    # cd $ORACLE_HOME
    # ./runInstaller -ignorePrereq -waitforcompletion -silent \
    oracle.install.option=INSTALL_DB_SWONLY \
    ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
    UNIX_GROUP_NAME=oinstall \
    INVENTORY_LOCATION=${ORA_INVENTORY} \
    ORACLE_HOME=${ORACLE_HOME} \
    ORACLE_BASE=${ORACLE_BASE} \
    oracle.install.db.InstallEdition=EE \
    oracle.install.db.OSDBA_GROUP=dba \
    oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
    oracle.install.db.OSDGDBA_GROUP=dgdba \
    oracle.install.db.OSKMDBA_GROUP=kmdba \
    oracle.install.db.OSRACDBA_GROUP=racdba \
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
    DECLINE_SECURITY_UPDATES=true
  4. Se connecter en tant que root et lancer les scripts post-installation :
     
    # su -
    # /u01/app/oraInventory/orainstRoot.sh
    # /u01/app/oracle/product/19.3.0/dbhome_1/root.sh


Configurer le démarrage du service

  1. Pour une prise en charge du service Oracle par systemD, créer le fichier /usr/lib/systemd/system/dbora.service avec le contenu suivant :
     
    [Unit]
    Description=Oracle Database Service
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbstart /u01/app/oracle/product/19.3.0/dbhome_1
    ExecStop=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbshut /u01/app/oracle/product/19.3.0/dbhome_1
    User=oracle
    TimeoutSec=300s
    
    [Install]
    WantedBy=multi-user.target
  2. Activer et vérifier ensuite le service avec les commandes suivantes :
     
    # systemctl daemon-reload
    # systemctl enable --now dbora.service
    # systemctl status dbora.service 

 

Créer la base-de-données

  1. Lancer le listener :
     
    # lsnrctl start
     
  2. Créer la base de données avec la commande suivante :
     
    # dbca -silent -createDatabase \
     -templateName General_Purpose.dbc \
     -gdbname ${ORACLE_SID} -sid ${ORACLE_SID} -responseFile NO_VALUE \
     -characterSet AL32UTF8 \
     -sysPassword SysPassword1 \
     -systemPassword SysPassword1 \
     -createAsContainerDatabase true \
     -numberOfPDBs 1 \
     -pdbName ${PDB_NAME} \
     -pdbAdminPassword PdbPassword1 \
     -databaseType MULTIPURPOSE \
     -automaticMemoryManagement false \
     -totalMemory 1000 \
     -storageType FS \
     -datafileDestination "${DATA_DIR}" \
     -redoLogFileSize 50 \
     -emConfiguration NONE \
     -ignorePreReqs

 

 

Liens :

https://www.centlinux.com/2020/04/install-oracle-database-19c-on-centos-8.html
https://gist.github.com/hkneptune/d3e80361cf5871dc8840176741ddff50

Joomla templates by a4joomla