Deshabilitar en Oracle Database 11g Enterprise Edition, Opciones licenciables después de instalar la BD

Por Ronald Vargas Quesada
Publicado en julio 2013

Tip Oracle Database 11gR2, opciones configurables para la base de datos versión Enterprise Edition

Una de las cosas -entre tantas- de cuales tenemos que tener mucho cuidado, es escoger de manera correcta y adecuada, la versión y opciones de la base de datos, que hemos adquirido con nuestro licenciamiento con Oracle.

Recuerde que cuando usted compra un producto de Oracle, firma un contrato OLSA, que transfiere a Oracle, la potestad de realizar revisiones periódicas, tantas cuantas sea necesarias, de los productos y opciones utilizadas con dichos productos.

Generalmente, este tipo de procesos son conocidos como LMS y causan por lo general, un verdadero dolor de cabeza a las empresas, cuando por error humano, muchas veces inducido por el desconocimiento, se instalan opciones del motor de la base de datos, sin que lo hallamos claramente indicado, como producto de una instalación de facto - NEXT NEXT.

La versión Enterprise Edition del producto Oracle Database, es uno de los productos del portafolio de Oracle, que más opciones licenciables por separado tiene.

Entre ellas sobresalen, las opciones de:

  • Particionamiento
  • Olap
  • Seguridad
  • Minería de datos
  • Real Application Cluster
  • Dataguard
  • RAC

Ahora bien, tenemos el inconveniente, que cuando creamos una instancia de la base de datos en la versión E.E., con el procedimiento "WINDOWS", o sea, NEXT NEXT, podríamos instalar opciones que no son gratuitas en la base de datos. Estas opciones una vez instaladas, en algunos casos, no pueden ser desinstaladas desde la interfaz gráfica del runInstaller.

En la versión 11g, aparece un utilitario llamado "CHOPT", el cual permite de manera rápida y fácil, crear un script, que puede ser utilizado, para "APAGAR", estas opciones en una instancia, ya creada.

A continuación, podrá encontrar el procedimiento para realizar el apagado, de la opción de "Particionamiento" en una instancia de la base de datos, que se ha instalado con la metodología de "DOS gráfico" y que puede ser utilizada, para las distintas opciones que permite este utilitario.

Para que funcione adecuadamente, es necesario que siga al pie de la letra el procedimiento.

Nota: Antes de ejecutar este procedimiento, asegúrese de contar con los respaldos actualizados de su base de datos, en caso de que sea necesario acudir a ellos, por algún error que se genere en el proceso de ejecución del procedimiento.

[oracle@rac3 ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 19 06:18:18 2011

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> connect / as sysdba
Connected.
SQL> set pagesize 40
SQL> column comp_name format a37
SQL> /

COMP_NAME                             VERSION        STATUS
------------------------------------- -------------- -----------
OWB                                   11.2.0.1.0     VALID
Oracle Application Express            3.2.1.00.10    VALID
Oracle Enterprise Manager             11.2.0.1.0     VALID
OLAP Catalog                          11.2.0.1.0     VALID
Spatial                               11.2.0.1.0     VALID
Oracle Multimedia                     11.2.0.1.0     VALID
Oracle XML Database                   11.2.0.1.0     VALID
Oracle Text                           11.2.0.1.0     VALID
Oracle Expression Filter              11.2.0.1.0     VALID
Oracle Rules Manager                  11.2.0.1.0     VALID
Oracle Workspace Manager              11.2.0.1.0     VALID
Oracle Database Catalog Views         11.2.0.1.0     VALID
Oracle Database Packages and Types    11.2.0.1.0     VALID
JServer JAVA Virtual Machine          11.2.0.1.0     VALID
Oracle XDK                            11.2.0.1.0     VALID
Oracle Database Java Packages         11.2.0.1.0     VALID
OLAP Analytic Workspace               11.2.0.1.0     VALID
Oracle OLAP API                       11.2.0.1.0     VALID

18 rows selected.

SQL>

[oracle@rac3 ~]$ chopt

usage:

chopt <enable|disable> <option>

options:
                  dm = Oracle Data Mining RDBMS Files
                  dv = Oracle Database Vault option
                lbac = Oracle Label Security
                olap = Oracle OLAP
        partitioning = Oracle Partitioning
                 rat = Oracle Real Application Testing

e.g. chopt enable rat


[oracle@rac3 ~]$
[oracle@rac3 ~]$ chopt disable partitioning

La ejecución del comando podría brindarle la siguiente salida. No se preocupe, hasta este punto, no se ha ejecutado nada. Sin embargo, por si las dudas y por medida de precaución, antes de ejecutar el comando, proceda primero a bajar las instancias de base de datos disponibles.

Writing to /opt/oracle/product/11gR2/install/disable_partitioning.log...
%s_unixOSDMakePath% -f /opt/oracle/product/11gR2/rdbms/lib/ins_rdbms.mk part_off
%s_unixOSDMakePath% -f /opt/oracle/product/11gR2/rdbms/lib/ins_rdbms.mk ioracle

[oracle@rac3 ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 19 06:22:10 2011

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> connect / as sysdba
Connected.
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SQL> desc v$option
 Name                  Null?    Type
 --------------------- -------- ----------------------------
 PARAMETER                      VARCHAR2(64)
 VALUE                          VARCHAR2(64)

Verique que el parámetro de la opción correspondiente a ser modificada, tiene el valor de "TRUE" indicando que está instalada.

SQL> select parameter, value from v$option where parameter like 'Part%';

SQL> column PARAMETER format a20
SQL> column VALUE format a10
SQL> /

PARAMETER            VALUE
-------------------- ----------
Partitioning         TRUE

Proceda a bajar las instancias de la base de datos.

SQL>
[oracle@rac3 ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 19 06:36:36 2011
Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> connect / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
[oracle@rac3 ~]$ lsnrctl stop

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-OCT-2011 06:36:59

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac3.lab.com)(PORT=1521)))
The command completed successfully

Antes de correr este procedimiento, asegúrese que la instancia o instancias de la base de datos, han sido bajadas.

Vaya al directorio que indicó el comando CHOPT, dónde este ha dejado un archivo .log con las instrucciones a ser ejecutadas ('chopt disable partitioning') y proceda a cambiar el valor de la variable en el archivo log, por la ubicación del comando "MAKE" y cambie los permisos del archivo, para que pueda ser ejecutado.

[oracle@rac3 ~]$ pwd
/home/oracle
[oracle@rac3 ~]$ cd /opt/oracle/product/11gR2/install
[oracle@rac3 install]$ vi disable_partitioning.log
[oracle@rac3 install]$ more disable_partitioning.log
/usr/bin/make -f /opt/oracle/product/11gR2/rdbms/lib/ins_rdbms.mk part_off
/usr/bin/make -f /opt/oracle/product/11gR2/rdbms/lib/ins_rdbms.mk ioracle
[oracle@rac3 install]$ chmod 711 disable_partitioning.log

Una vez cambiado los permisos del archivo, ejecute el mismo de la siguiente manera. El proceso puede durar de unos 5 a 10 minutos.

[oracle@rac3 install]$ ./disable_partitioning.log

/usr/bin/ar d /opt/oracle/product/11gR2/rdbms/lib/libknlopt.a kkpoban.o
/usr/bin/ar cr /opt/oracle/product/11gR2/rdbms/lib/libknlopt.a 
/opt/oracle/product/11gR2/rdbms/lib/ksnkkpo.o
chmod 755 /opt/oracle/product/11gR2/bin

 - Linking Oracle
rm -f /opt/oracle/product/11gR2/rdbms/lib/oracle
gcc  -o /opt/oracle/product/11gR2/rdbms/lib/oracle -m32 
-L/opt/oracle/product/11gR2/rdbms/lib/ -L/opt/oracle/product/11gR2/lib/ 
-L/opt/oracle/product/11gR2/lib/stubs/ -L/opt/oracle/product/11gR2/lib/ -lirc 
-lipgo    -Wl,-E /opt/oracle/product/11gR2/rdbms/lib/opimai.o 
/opt/oracle/product/11gR2/rdbms/lib/ssoraed.o 
/opt/oracle/product/11gR2/rdbms/lib/ttcsoi.o  -Wl,--whole-archive -lperfsrv11 
-Wl,--no-whole-archive /opt/oracle/product/11gR2/lib/nautab.o 
/opt/oracle/product/11gR2/lib/naeet.o /opt/oracle/product/11gR2/lib/naect.o 
/opt/oracle/product/11gR2/lib/naedhs.o /opt/oracle/product/11gR2/rdbms/lib/config.o
  -lserver11 -lodm11 -lcell11 -lnnet11 -lskgxp11 -lsnls11 -lnls11  -lcore11 
 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 
-lnls11 -lcore11 -lnls11 -lclient11  -lvsn11 -lcommon11 -lgeneric11 -lknlopt `if 
/usr/bin/ar tv /opt/oracle/product/11gR2/rdbms/lib/libknlopt.a | grep xsyeolap.o > 
/dev/null 2>&1 ; then echo "-loraolap11" ; fi` -lslax11 -lpls11  -lrt -lplp11 
-lserver11 -lclient11  -lvsn11 -lcommon11 -lgeneric11 `if [ -f 
/opt/oracle/product/11gR2/lib/libavserver11.a ] ; then echo "-lavserver11" ; else 
echo "-lavstub11"; fi` `if [ -f /opt/oracle/product/11gR2/lib/libavclient11.a ] ; 
then echo "-lavclient11" ; fi` -lknlopt -lslax11 -lpls11  -lrt -lplp11 -ljavavm11 
-lserver11  -lwwg  `cat /opt/oracle/product/11gR2/lib/ldflags`    -lncrypt11 
-lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/product/11gR2/lib/ldflags`
    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lmm -lsnls11 -lnls11
-lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 
-lsnls11 -lnls11 -lcore11 -lnls11 -lztkg11 `cat 
/opt/oracle/product/11gR2/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11
 -lnro11 `cat /opt/oracle/product/11gR2/lib/ldflags`    -lncrypt11 -lnsgr11 
-lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11   -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 
-lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 
-lnls11 `if /usr/bin/ar tv /opt/oracle/product/11gR2/rdbms/lib/libknlopt.a | grep 
"kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo11"; fi` 
-L/opt/oracle/product/11gR2/ctx/lib/ -lctxc11 -lctx11 -lzx11 -lgx11 -lctx11 -lzx11 
-lgx11 -lordimt11 -lclsra11 -ldbcfg11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 
-locr11 -locrb11 -locrutl11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -lasmclnt11 
-lcommon11 -lcell11 -lskgxp11 -lgeneric11  -lcommon11 -lgeneric11  -loraz -llzopro 
-lorabz2 -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 
-lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lsnls11 -lunls11  
-lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 
-lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lasmclnt11 -laio    `cat 
/opt/oracle/product/11gR2/lib/sysliblist` -Wl,-rpath,/opt/oracle/product/11gR2/lib 
-lm    `cat /opt/oracle/product/11gR2/lib/sysliblist` -ldl -lm   
-L/opt/oracle/product/11gR2/lib
test ! -f /opt/oracle/product/11gR2/bin/oracle ||\
           mv -f /opt/oracle/product/11gR2/bin/oracle /opt/oracle/product/11gR2/bin/oracleO
mv /opt/oracle/product/11gR2/rdbms/lib/oracle /opt/oracle/product/11gR2/bin/oracle
chmod 6751 /opt/oracle/product/11gR2/bin/oracle
[oracle@rac3 install]$

Terminada la ejecución del procedimiento, arranque todos los servicios

[oracle@rac3 install]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-OCT-2011 06:47:31
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
Starting /opt/oracle/product/11gR2/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /opt/oracle/product/11gR2/network/admin/listener.ora
Log messages written to /opt/oracle/product/diag/tnslsnr/rac3/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac3.lab.com)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac3.lab.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                19-OCT-2011 06:47:31
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/11gR2/network/admin/listener.ora
Listener Log File         /opt/oracle/product/diag/tnslsnr/rac3/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac3.lab.com)(PORT=1521)))
The listener supports no services
The command completed successfully
[oracle@rac3 install]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 19 06:47:35 2011

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> connect / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area  318046208 bytes
Fixed Size                  1336260 bytes
Variable Size             239078460 bytes
Database Buffers           71303168 bytes
Redo Buffers                6328320 bytes
Database mounted.
Database opened.


SQL> column parameter format a20
SQL> column value format a10
SQL> select parameter, value from v$option where parameter like 'Parti%';

PARAMETER            VALUE
-------------------- ----------
Partitioning         FALSE

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Oracle Label Security, OLAP, Data Mining, Oracle Database Vault
and Real Application Testing options
[oracle@rac3 install]$

Como puede observar, efectivamente a la hora de salir de la base de datos, ya no muestra que la opción de "Particionamiento", se encuentra instalada y el valor del parámetro dentro de la configuración del diccionario de la base de datos es "FALSE".


Publicado por Ronald Vargas Quesada.