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 NETX, podríamos instalar opciones que no 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 cuál 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.
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 esta 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, inicié el levantado de 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".