Activation et désactivation des options associées au binaires Oracle 12c

A l’installation, Oracle installe un grand nombre d’options. L’installation n’entraîne pas directement l’activation de ces options mais rend possible leur utilisation.
Cet article présente les méthodes pour installer/désinstaller ces options.
 

SQLPLUS*Plus permet de visualiser les options actives :

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options

Ci-dessous, un script pour identifier les options actives (par défaut après l’installation) :

declare -A product_matrix
num_rows=8
num_columns=3
product_matrix[1,1]="ASM"
product_matrix[1,2]="Automated Storage Management"
product_matrix[1,3]="kfon.o"
product_matrix[2,1]="DM"
product_matrix[2,2]="Oracle Data Mining"
product_matrix[2,3]="dmwdm.o"
product_matrix[3,1]="DV"
product_matrix[3,2]="Database Vault"
product_matrix[3,3]="kzvidv.o"
product_matrix[4,1]="OLAP"
product_matrix[4,2]="Oracle OLAP"
product_matrix[4,3]="xsyeolap.o"
product_matrix[5,1]="OLS"
product_matrix[5,2]="Oracle Label Security"
product_matrix[5,3]="kzlilbac.o"
product_matrix[6,1]="PART"
product_matrix[6,2]="Oracle Partitioning"
product_matrix[6,3]="kkpoban.o"
product_matrix[7,1]="RAC"
product_matrix[7,2]="Real Application Cluster"
product_matrix[7,3]="kcsm.o"
product_matrix[8,1]="RAT"
product_matrix[8,2]="Real Application Testing"
product_matrix[8,3]="kecwr.o"
cd $ORACLE_HOME/rdbms/lib
ar -t libknlopt.a > /tmp/check_components.txt
for ((i=1;i<=num_rows;i++)) do
   typeset -i component=$( grep "${product_matrix[$i,3]}" /tmp/check_components.txt | wc -l )
   if [ ${component} -eq 1 ]; then
      printf "%-40s %10s %10s \n" "${product_matrix[$i,1]} (${product_matrix[$i,2]})" "${product_matrix[$i,3]}" ON
   else
      printf "%-40s %10s %10s \n" "${product_matrix[$i,1]} (${product_matrix[$i,2]})" "${product_matrix[$i,3]}" OFF
   fi
done
echo

Le résultat de l’exéuction du script sur un environnement cluster :

ASM (Automated Storage Management)           kfon.o        OFF
DM (Oracle Data Mining)                     dmwdm.o         ON
DV (Database Vault)                        kzvidv.o        OFF
OLAP (Oracle OLAP)                       xsyeolap.o         ON
OLS (Oracle Label Security)              kzlilbac.o        OFF
PART (Oracle Partitioning)                kkpoban.o         ON
RAC (Real Application Cluster)               kcsm.o         ON
RAT (Real Application Testing)              kecwr.o         ON

Remarque :
– L’option ASM apparaît désactivée, parce qu’elle est associée aux binaires de la Grid Infrastructure.
Dans un premier temps, nous allons désactiver les options aux niveaux des binaires avec l’outil CHOPT.

# chopt
usage: chopt <enable|disable> <option>
options:
                  dm = Oracle Data Mining RDBMS Files
                olap = Oracle OLAP
        partitioning = Oracle Partitioning
                 rat = Oracle Real Application Testing
e.g. chopt enable rat

Pour désactiver les options, il faut utiliser l’outil CHOPT de la manière suivante :

[oracle lib]$ chopt disable dm
Writing to /u01/app/oracle/product/12.1.0.2/dbhome_1/install/disable_dm.log...
/usr/bin/make -f /u01/app/oracle/product/12.1.0.2/dbhome_1/rdbms/lib/ins_rdbms.mk dm_off ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
/usr/bin/make -f /u01/app/oracle/product/12.1.0.2/dbhome_1/rdbms/lib/ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
[oracle lib]$ chopt disable olap
Writing to /u01/app/oracle/product/12.1.0.2/dbhome_1/install/disable_olap.log...
/usr/bin/make -f /u01/app/oracle/product/12.1.0.2/dbhome_1/rdbms/lib/ins_rdbms.mk olap_off ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
/usr/bin/make -f /u01/app/oracle/product/12.1.0.2/dbhome_1/rdbms/lib/ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
[oracle lib]$ chopt disable partitioning
Writing to /u01/app/oracle/product/12.1.0.2/dbhome_1/install/disable_partitioning.log...
/usr/bin/make -f /u01/app/oracle/product/12.1.0.2/dbhome_1/rdbms/lib/ins_rdbms.mk part_off ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
/usr/bin/make -f /u01/app/oracle/product/12.1.0.2/dbhome_1/rdbms/lib/ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
[oracle lib]$ chopt disable rat
Writing to /u01/app/oracle/product/12.1.0.2/dbhome_1/install/disable_rat.log...
/usr/bin/make -f /u01/app/oracle/product/12.1.0.2/dbhome_1/rdbms/lib/ins_rdbms.mk rat_off ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
/usr/bin/make -f /u01/app/oracle/product/12.1.0.2/dbhome_1/rdbms/lib/ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1

L’execution du script permet de vérifier la désactivation des options :

ASM (Automated Storage Management)           kfon.o        OFF
DM (Oracle Data Mining)                     dmwdm.o        OFF
DV (Database Vault)                        kzvidv.o        OFF
OLAP (Oracle OLAP)                       xsyeolap.o        OFF
OLS (Oracle Label Security)              kzlilbac.o        OFF
PART (Oracle Partitioning)                kkpoban.o        OFF
RAC (Real Application Cluster)               kcsm.o         ON
RAT (Real Application Testing)              kecwr.o        OFF

L’outil CHOPT automatise le relink des librairies. Pour d’autres options, il est nécessaire d’effectuer l’opération manuellement.
Pour activer/désactiver l’option RAC :

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk rac_on ioracle
/
make -f ins_rdbms.mk rac_off ioracle

Remarque : RAC est une option « Database », il est possible d’installer des binaires Database Standalone dans un environnement Clusterware (partage du stockage, Cold Cluster Failover).
Pour activer/désactiver le protocol RDS (Reliable Datagram Sockets), notamment sous EXADATA (Infiniband) :

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ipc_rds ioracle
/
make -f ins_rdbms.mk ipc_udp ioracle

La commande suivante permet de vérifier l’activation du mode RDS :

nm ${ORACLE_HOME}/lib/libskgxp11.so | grep rds_enabled

Pour activer/désactiver Direct NFS :

make -f ins_rdbms.mk dnfs_on
/
make -f ins_rdbms.mk dnfs_off

Il convient de vérifier l’activation du mode dNFS dans le fichier d’alertes de l’instance de base de données après le redémarrage.
Ces opérations sont notamment utiles après le clonage d’un Database Home (qui ne prend pas en compte l’activation de ces options).