11gR2; Redémarrer automatiquement DB Console
Introduction: Oracle Restart est un composant ajouté à la version 11gR2 de Oracle pour assurer la haute disponibilité de certains ressources de Oracle. Les instances de bases de données, les listeners (processus d'écoutes) sont automatiquement redemandées après redémarrage du serveur de bases de données. Pour ajouter ces ressources à Oracle restart il suffit d'exécuter la commande srvctl add. La procédure d'ajouter le DB Console comme ressource de Oracle Restart est un différente.. Dans cet article, nous allons vous montrer cette procédure. Environnement de Teste: La procédure suivante a été testée sur une base 11.2.0.2.2, simple infrastructure sous Red hat Enterprise Linux. La même procédure pourra être appliquée sur une environnement de RAC. Dans ce cas, il suffit d'applique la même démarche sur tous les nodes du cluster. La procédure: Etape1: Avec l'utilisateur grid, il faut créer deux scripts sous le répertoire $GRID_HOME/crs/script, dans mon cas: /opt/11.2.0/grid/crs/script/. Voir le contenu des deux fichiers; cat agentstartup.sh #!/bin/bash # # dbcagent.sh - script to start and stop the dbconsole 11gR2 agent # # description: Oracle 11gR2 database console agent ORACLE_BASE=/opt/app/oracle ORACLE_HOME=/opt/app/oracle/product/11.2.0/db_1 LIBRARY_PATH=$ORACLE_HOME/lib
ORACLE_SID=orawiss ORACLE_UNQNAME=$ORACLE_SID export ORACLE_BASE export ORACLE_HOME export LD_LIBRARY_PATH export ORACLE_SID export ORACLE_UNQNAME touch /tmp/test20.log agent_start () { touch /tmp/test22.log $ORACLE_HOME/bin/emctl start dbconsole } agent_stop () { } $ORACLE_HOME/bin/emctl stop dbconsole agent_check () { } $ORACLE_HOME/bin/emctl status dbconsole case "$1" in start)
touch /tmp/test22.log ;; stop) agent_start agent_stop ;; check) agent_check ;; clean) *) agent_clean $(ps -C emagent -o pid=) ;; esac echo $"Usage: `basename $0` {start stop status clean}" exit 1 Etape2: Donner les droits à ces deux scripts; su - grid cd /opt/11.2.0/grid/crs/script/ chmod 755 * ls -rtl total 8 -rwxr-xr-x 1 grid oinstall 1017 Jul 8 14:38 crs_dbconsole.sh
-rwxr-xr-x 1 grid oinstall 892 Jul 8 15:10 agentstartup.sh Etape3: Se connecter avec l'utilisateur root; éditer le fichier /etc/sudoers; D'abord, changer les droits de ce fichier de 440 à 640. Comme utilisateur root: [root@ ~]# chmod 640 /etc/sudoers A la fin du fichier, ajouter les trois lignes suivantes; grid =(oracle) NOPASSWD: /opt/11.2.0/grid/crs/script/agentstartup.sh start grid =(oracle) NOPASSWD: /opt/11.2.0/grid/crs/script/agentstartup.sh stop grid =(oracle) NOPASSWD: /opt/11.2.0/grid/crs/script/agentstartup.sh check N'oubliez pas de commenter la ligne suivante ; #Defaults requiretty Maintenant, donner les droits 440 au fichier; [root@ ~]# chmod 440 /etc/sudoers Etape4: Comme utilisateur Oracle; changer les droits des fichiers suivants: chmod 664 /opt/app/oracle/product/11.2.0/db_1/sysman/config/emd.properties chmod 664 /opt/app/oracle/product/11.2.0/db_1/_orawiss/sysman/config/emd.properties chmod 755 /opt/app/oracle/product/11.2.0/db_1/bin/emctl
Etape5: Ajouter une nouvelle ressource nommée "crs_dbconsole" au Oracle Restart. crsctl delete res crs_dbconsole CRS-2613: Could not find resource 'crs_dbconsole'. CRS-4000: Command Delete failed, or completed with errors. crsctl add resource crs_dbconsole -type local_resource -attr " ACTION_SCRIPT=/opt/11.2.0/grid/crs/script/crs_dbconsole.sh, DESCRIPTION=Local DB Console Ressource for DB Console Agent, DEGREE=1, ENABLED=1, AUTO_START=restore, START_TIMEOUT=120, UPTIME_THRESHOLD=1h, CHECK_INTERVAL=60, STOP_TIMEOUT=120, SCRIPT_TIMEOUT=120, RESTART_ATTEMPTS=3, OFFLINE_CHECK_INTERVAL=60, START_DEPENDENCIES=, STOP_DEPENDENCIES=," crsctl start res crs_dbconsole CRS-2672: Attempting to start 'crs_dbconsole' on '' CRS-2676: Start of 'crs_dbconsole' on '' succeeded Etape6: Vérifiez le statut de la nouvelle ressource; crsctl status res -t NAME TARGET STATE SERVER STATE_DETAILS Local Resources crs_dbconsole
dbcagent ora.listener.lsnr ora.listener_out.lsnr ora.ons Cluster Resources ora.orawiss.db 1 Open ora.cssd ora.diskmon ora.evmd 1 Etape7: Pour tester la procédure, nous allons redémarrer le serveur de la base de données; Comme Utilisateur root:
init 6 login as: grid crsctl status res -t NAME TARGET STATE SERVER STATE_DETAILS Local Resources crs_dbconsole ONLINE OFFLINE STARTING dbcagent ora.listener.lsnr ora.listener_out.lsnr ora.ons
Cluster Resources ora.orawiss.db 1 ONLINE OFFLINE STARTING ora.cssd ora.diskmon ora.evmd 1 ONLINE INTERMEDIATE crsctl status res -t NAME TARGET STATE SERVER STATE_DETAILS Local Resources crs_dbconsole dbcagent ora.listener.lsnr
ora.listener_out.lsnr ora.ons Cluster Resources ora.orawiss.db 1 Open ora.cssd ora.diskmon ora.evmd 1 su - oracle Password: emctl status dbconsole Oracle Enterprise Manager 11g Database Control Release 11.2.0.2.0 Copyright (c) 1996, 2010 Oracle Corporation. All rights reserved.
https://:1158/em/console/aboutapplication Oracle Enterprise Manager 11g is running. ------------------------------------------------------------------ Logs are generated in directory /opt/app/oracle/product/11.2.0/db_1/_orawiss/sysman/log Enfin, la nouvelle ressource est redemandée avec le redémarrage du serveur de bases de données. Merci,