miércoles, 30 de septiembre de 2009

Desplegando dependencias de una tabla Oracle

En ocasiones se hace necesario, contar con la información concerniente a las dependencias asociadas a una tabla o procedimiento almacenado, en un esquema "X" de la base de datos.

A menudo, utilizamos herramientas de terceros, que nos permita visualizar esta información, pero que sucede, sino no contamos con dichas herramientas.?

Existe un paquete con el nombre de "deptree_fill", que crea la estructura de todas estas dependencias, en base a la información almacenada en el diccionario de la base de datos.

El script que crea el paquete se encuentra, se localiza en el directorio $ORACLE_HOME/rdbms/admin y lleva el nombre de "utldtree.sql".
Se debe ejecutar el script con el dueño del esquema, que deseamos trabajar o bien ejecutar con privilegios de DBA y darle permisos de ejecución a los usuarios deseados.

La sintáxis de ejecución del paquete es:

  • execute deptree_fill( 'Tipo_de_objeto','Dueño_del_objecto','Nombre_del_objecto');

Una vez ejecutado, se debe realizar una consulta simple a la vista "IDEPTREE", que esta basada en la vista "DEPTREE" y esta a su vez en la tabla "DEPTREE_TEMPTAB" creado con el procedimiento y ahí hallarás la información que buscabas.

La tabla acumula la información para todas las tablas procesadas ( tipo plan_table en la versión oracle8i ), puedes truncar la table deptree_temptab, para eliminar la información procesada previamente.

SQL> truncate table deptree_temptab;
Table truncated.


SQL> SELECT * FROM IDEPTREE;
no rows selected


SQL> execute deptree_fill('TABLE','OWNER','TABLA1');
PL/SQL procedure successfully completed.
SQL> SELECT * FROM IDEPTREE;

Larry Ellison: “No nos vamos a desligar de MySQL”


Fuente: Computerworld


El CEO de Oracle, Larry Ellison, asegura en una entrevista a Computerworld que la base de datos no compite con MySQL, por lo que no va a dejarla. Además, no lo ve necesario para obtener la aprobación de la UE por la adquisición de Sun.

Sin dejarse intimidar por el “examen de competencia” de la Comisión Europea que afecta a Oracle sobre la base de datos de fuente abierta MySQL, su CEO, Larry Ellison, insistió en una entrevista a Computerworld que no ve necesario realizar un spin off de MySQL para obtener la aprobación de la UE por la adquisición de Sun Microsystems y, además, afirmó que la base de datos de Oracle no compite con la de open source subsidiaria de Sun.

Además de la UE, algunos usuarios están nerviosos por el hecho de que ahora, tras la compra de Sun, Oracle posea MySQL. En este sentido, Ellison aseguró que “nunca vamos a competir con MySQL, no sólo son bases de datos distintas, sino que se dirigen a mercados diferentes”.

Por otro lado, Ellison expresó la urgente necesidad de completar la fusión que anunció en abril. "Sun está perdiendo 100 millones de dólares al mes", comentó. Con la adquisición de Sun, Oracle espera “imitar el dominio de Thomas Watson, de IBM”, dijo Ellison, “ahí es cuando IBM fue realmente la empresa de software dominante", explicó.

Cuando se le preguntó acerca de cloud computing, Ellison rechazó la idea de que es un concepto nuevo. "Es un ordenador conectado a una red," dijo. "Cloud computing no es sólo el futuro de la informática, el presente y el pasado de la informática, todo ello, es la nube", indicó.

martes, 29 de septiembre de 2009

Recreando el DBCONTROL en Oracle10gR2 Red Hat Enterprise Linux 5.2

Despues de posponer varias semanas, la reinstalación de la consola administrativa "DBCONTROL", de una de mis instancias de base de datos en el RAC, tomé tiempo, para ver el problema que había ocurrido durante la instalación y configuración de las instancias de los nodos.
Curiosamente, una de la instancias residentes en el NODO, había logrado configurar sin problemas el repositorio del EMCA DBCONTROL, cuando éste se realizó, a través del asistente de creación de instancias.
Para la primera instancia, no había escogido instalar el repositorio, pues por motivos de tiempo, necesita cuanto antes tenerla arriba y disponible. Cuando intenté hacerlo manualmente, me dió problemas una y otra vez, así que lo deje de lado por el momento.
Tres meses despues, al continuar a ciegas administrando la instancia a pura Consola de Oracle Enterprise Manager, SQL*Plus y otras herramientas, logré sacar un poco de tiempo, para resolverlo.
Para realizar el proceso, utilicé el comando: "emca -config dbcontrol db -repos create -cluster -NODE_LIST racdb1,racdb2 ", el cuál me devolvía como parte del error, las siguientes líneas:
Sep 29, 2009 5:58:03 PM oracle.sysman.emcp.DatabaseChecks checkDbAvailabilityImpl
CONFIG: ORA-01034: ORACLE not available
oracle.sysman.assistants.util.sqlEngine.SQLFatalErrorException: ORA-01034: ORACLE not available

Consultado en metalink.oracle.com, me encontré la nota 278100.1, que más o menos, tenía alguna similitud con mi problema.

He omitido hasta este punto indicarles, que había intentando con el asistente de base de datos gráfico, hacer la configuración y la misma había fallado.

Continuando con el cuento de la nota, siguiendo paso a paso los procedimientos descritos, logré remover inicialmente de forma manual, ya que las referencias utilizando el comando "emca", no dieron frutos, todo el esquema del usuario sysman, ejecutando los 2 pasos que indicó a continuación:

Subject: How To Drop, Create And Recreate DB Control In A 10g Database
Doc ID: 278100.1

  • Paso 1: Drop AQ related objects in the SYSMAN schema
    Logon SQLPLUS as user SYSMAN
    SQL> exec DBMS_AQADM.DROP_QUEUE_TABLE(queue_table=>'MGMT_NOTIFY_QTABLE',force =>TRUE);
  • Paso 2: Logearse como sys as sysdba y ejecutar

    SQL> DROP ROLE mgmt_user;
    SQL> DROP USER sysman CASCADE;

Una vez hecho esto, verifiqué que las variables a las que hace mención, estaban configuradas a nivel de ambiente del sistema operativo. La variable $ORACLE_HOSTNAME, no la tenía configurada, de hecho, no tengo en mi poder, ningúna nota de instalación, que solicite setear dicha variable a nivel de ambiente.

[oracle@racdb1 lab2]$ echo $ORACLE_HOSTNAME

[oracle@racdb1 lab2]$ ORACLE_HOSTNAME=racdb1.laboratorio.co.cr
[oracle@racdb1 lab2]$ export ORACLE_HOSTNAME

En la ruta $ORACLE_HOME/cfgtoollogs/emca/lab2, procedí a borrar todos los logs de previos intentos.

[oracle@racdb1 lab2]$ ls -la
total 60
drwxr-xr-x 2 oracle oinstall 4096 Sep 29 17:52 .
drwxr-x--- 6 oracle oinstall 4096 Sep 29 17:52 ..
-rw-r--r-- 1 oracle oinstall 45080 Sep 29 17:52 emca_2009-09-29_05-51-44-PM.log
-rw-r--r-- 1 oracle oinstall 911 Sep 29 17:52 emca_repos_create_2009-09-29_05-52-14-PM.log
[oracle@racdb1 lab2]$ rm *

Hice el intento con el comando descrito a continuación, pero me volvió a fallar la instalación.

[oracle@racdb1 lab2]$ emca -config dbcontrol db -repos create -cluster -NODE_LIST racdb1,racdb2

STARTED EMCA at Sep 29, 2009 5:57:51 PM
EM Configuration Assistant, Version 10.2.0.1.0 Production
Copyright (c) 2003, 2005, Oracle. All rights reserved.

Enter the following information:
...

Sep 29, 2009 5:58:03 PM oracle.sysman.emcp.ParamsManager getParam
CONFIG: No value was set for the parameter SYS_PWD.
Sep 29, 2009 5:58:03 PM oracle.sysman.emcp.util.GeneralUtil initSQLEngine
CONFIG: SQLEngine connecting with SID: lab22, oracleHome: /opt/product/rdbms/10g, and user:
Sep 29, 2009 5:58:03 PM oracle.sysman.emcp.util.GeneralUtil initSQLEngine
CONFIG: SQLEngine created successfully and connected
Sep 29, 2009 5:58:03 PM oracle.sysman.emcp.DatabaseChecks checkDbAvailabilityImpl
CONFIG: ORA-01034: ORACLE not available

oracle.sysman.assistants.util.sqlEngine.SQLFatalErrorException: ORA-01034: ORACLE not available

at oracle.sysman.assistants.util.sqlEngine.SQLEngine.executeImpl(SQLEngine.java:1474)
at oracle.sysman.assistants.util.sqlEngine.SQLEngine.executeQuery(SQLEngine.java:695)
at oracle.sysman.emcp.DatabaseChecks.checkDbAvailabilityImpl(DatabaseChecks.java:110)
at oracle.sysman.emcp.DatabaseChecks.checkDbAvailability(DatabaseChecks.java:146)
at oracle.sysman.emcp.DatabaseChecks.isASMDb(DatabaseChecks.java:718)
at oracle.sysman.emcp.EMConfigAssistant.getParamsWarnsList(EMConfigAssistant.java:1812)

--More--(18%)

Lo intenté con la opción "recreate" y a la segunda vez que lo ejecuté, si obtuve resultados satisfactorios. Probé la conexión a mi DBCONTROL para la instancia en cuestión y no tuve problema alguno.

Un problema similar había experimentado en un AIX y no fue posible hacer la configuración. Ahora me queda la tarea de implementarlo en ese lugar y ver si el procedimiento, me da los mismos resultados.


[oracle@racdb1 lab2]$ emca -config dbcontrol db -repos recreate -cluster -NODE_LIST racdb1,racdb2

STARTED EMCA at Sep 29, 2009 6:11:43 PM
EM Configuration Assistant, Version 10.2.0.1.0 Production
Copyright (c) 2003, 2005, Oracle. All rights reserved.

Enter the following information:
Database unique name: lab2
Listener port number: 1521
Cluster name: lab2.laboratorio.co.cr
Password for SYS user:
Password for DBSNMP user:
Password for SYSMAN user:
Email address for notifications (optional):
Outgoing Mail (SMTP) server for notifications (optional):
-----------------------------------------------------------------

You have specified the following settings

Database ORACLE_HOME ................ /opt/product/rdbms/10g

Database instance hostname ................ racdb1.laboratorio.co.cr
Listener port number ................ 1521
Cluster name ................ lab2.laboratorio.co.cr
Database unique name ................ lab2
Email address for notifications ...............
Outgoing Mail (SMTP) server for notifications ...............

-----------------------------------------------------------------
Do you wish to continue? [yes(Y)/no(N)]: Y
Sep 29, 2009 6:11:59 PM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at /opt/product/rdbms/10g/cfgtoollogs/emca/lab2/emca_2009-09-29_06-11-43-PM.log.
Sep 29, 2009 6:12:01 PM oracle.sysman.emcp.EMReposConfig dropRepository
INFO: Dropping the EM repository (this may take a while) ...
Sep 29, 2009 6:12:01 PM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully dropped
Sep 29, 2009 6:12:01 PM oracle.sysman.emcp.EMReposConfig createRepository
INFO: Creating the EM repository (this may take a while) ...
Sep 29, 2009 6:18:27 PM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully created
Sep 29, 2009 6:18:30 PM oracle.sysman.emcp.EMDBCConfig instantiateOC4JConfigFiles
INFO: Propagating /opt/product/rdbms/10g/oc4j/j2ee/OC4J_DBConsole_racdb2_lab22 to remote nodes ...
Sep 29, 2009 6:18:30 PM oracle.sysman.emcp.EMDBCConfig instantiateOC4JConfigFiles
INFO: Propagating /opt/product/rdbms/10g/oc4j/j2ee/OC4J_DBConsole_racdb1_lab21 to remote nodes ...
Sep 29, 2009 6:18:32 PM oracle.sysman.emcp.EMAgentConfig deployStateDirs
INFO: Propagating /opt/product/rdbms/10g/racdb2_lab22 to remote nodes ...
Sep 29, 2009 6:18:34 PM oracle.sysman.emcp.EMAgentConfig deployStateDirs
INFO: Propagating /opt/product/rdbms/10g/racdb1_lab21 to remote nodes ...
Sep 29, 2009 6:18:34 PM oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Securing Database Control (this may take a while) ...
Sep 29, 2009 6:19:06 PM oracle.sysman.emcp.util.DBControlUtil startOMS
INFO: Starting Database Control (this may take a while) ...
Sep 29, 2009 6:20:48 PM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: Database Control started successfully
Sep 29, 2009 6:20:48 PM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: >>>>>>>>>>> The Database Control URL is https://racdb1.laboratorio.co.cr:5500/em <<<<<<<<<<<>

Oracle Fusion Middleware Pilar Mercado, Oracle México

Pilar Mercado, directora de ventas de las soluciones Fusion Middleware de Oracle México nos habla en esta entrevista de la división Oracle que lidera. Platica para Vídeos-IT.com acerca de las soluciones de BI Oracle, de la línea de productos Hyperion y las necesidades y particularidades del mercado mexicano.

Nota: Es posible que necesiten inscribirse en el sitio, para poder observar el video. Existe una amplia gama de charlas y entrevistas interesantes en este lugar, que es un portal de videos en español sobre innovación tecnológica para España y Latinoamerica.

Ver video

lunes, 28 de septiembre de 2009

Casas inteligentes capaces de aprender, nuevo logro de la domótica

Un novedoso sistema reconoce los hábitos de los residentes y responde en consecuencia.

Un equipo de científicos estadounidenses ha desarrollado un sistema que permite a las casas inteligentes “aprender” los hábitos de sus habitantes, y reaccionar en función de ellos. El sistema está basado en la interpretación de la información recogida por sensores, llevada a cabo por algoritmos. Las primeras pruebas realizadas han resultado exitosas, por lo que, en un futuro, el sistema podría ser utilizado para ayudar a personas con discapacidad psíquica en sus necesidades cotidianas dentro del hogar o, simplemente, para hacer más fácil la vida de la gente sana.


Un equipo de científicos de la Washington State University en Pullman (Estados Unidos) ha desarrollado un sistema que permite a las casas inteligentes “aprender” los hábitos de sus habitantes, y reaccionar en función de ellos. Las casas inteligentes son aquéllas en las que se ha aplicado la domótica, es decir, aquéllas que integran la tecnología necesaria para que ciertas funciones del hogar estén automatizadas (subida y bajada de persianas, luminosidad, calefacción etc.). Estos sistemas tecnológicos aportan, además, servicios de gestión energética, seguridad, bienestar y comunicación, y se integran en las casas a través de redes interiores y exteriores de comunicación, cableadas o inalámbricas.
Por Yaiza Martínez, para la revista Tendencias21.net.

Nombres de dominios en internet: el estatuto del ICANN con miras a cambiar

Nombres de dominios en internet: el estatuto del ICANN con miras a cambiar

Nueva York (AFP). El ICANN, el discreto organismo que administra internet y los nombres de dominios en la red, podría obtener esta semana un inicio de autonomía respecto a las autoridades estadounidenses.

Desde su creación en 1998 el ICANN (Internet corporation for assigned names and numbers), organización californiana sin fines de lucro, funciona en base a un acuerdo con la administración estadounidense de telecomunicaciones y de informática, dependiente del Departamento de Comercio.

Como ese acuerdo expira el miércoles, esta semana debe anunciarse un nuevo modelo, elaborado en conjunto por el ICANN y el Departamento de Comercio.

El fin del acuerdo ocurre en un momento especialmente crítico, con el organismo preparado para expandir la cantidad de dominios genéricos (gTLDs) como .com, .net y .org, una decisión controvertida que aumentaría fuertemente la cantidad de direcciones disponibles.

La influencia del ICANN se extiende a nivel mundial y sus decisiones se imponen en todos los Estados, como por ejemplo su prohibición de los nombres de dominio .xxx para los sitios pornográficos.

Para la comisaria europea encargada de esta área, Viviane Reding, este cambio debe ser la oportunidad de sacar a este organismo clave de la órbita del gobierno de Estados Unidos.

"No es defendible que sólo un ministerio de un país tenga la tutela de una función de internet usada por cientos de millones de personas en países de todo el mundo", indicó recientemente Reding.

Estados Unidos parece dispuesto a reducir su control sobre el ICANN, pero no del todo.

El presidente del organismo, Rod Beckstrom, ex director del Centro nacional de la ciberseguridad (NCSC) estadounidense, indicó la semana pasada en una carta al Congreso que el ICANN planea mantener "una relación formal de largo plazo con el gobierno de Estados Unidos".

Según el semanario The Economist, la renovación del estatuto del ICANN podría implicar la creación de comisiones de control integradas por representantes de varios países.

Estas comisiones analizarían cuatro sectores: la competencia entre dominios genéricos, la gestión de los datos sobre los administradores de dominios, la seguridad y la transparencia de las redes y finalmente la responsabilidad y la protección del interés común, el único sector en el cual Estados Unidos se beneficiaría de una representación permanente.

El nuevo estatuto no tendría vencimiento, según The Economist.

Thomas Lenard, presidente del Instituto de política tecnológica, centro de investigación con sede en Washington, teme que los cambios le den un mayor papel a los gobiernos, cuando "mucha gente quería intentar impedir que sea justamente una criatura de los gobiernos".

Steve DelBianco, director del colectivo NetChoice que agrupa asociaciones de comercio y grupos de comercio electrónico como eBay, Yahoo! o AOL, quiere creer que el acuerdo "refleja lo que pedía el público: mecanismos permanentes que permitan al ICANN rendir cuentas" de su accionar.

La Comunidad Oracle Hispana

Hace un año atrás, Fernando Garcia, Licenciado en Sistemas egresado de la Universidad CAECE (Buenos Aires) y el creador de los Blogs SqlEficiente y OracleRACNotes, inició un proyecto al que llamó Comunidad Oracle Hispana.

Con más de 1100 miembros inscritos actualmente, la Comunidad Oracle Hispana, se ha convertido en un instrumento sumamente valioso, para los individuos involucrados, en las distintas áereas de productos de Oracle.
Este mes, una iniciativa nacida en el seno de sus miembros, semanas atrás, dió a luz, el primer número de su boletín, - de cuál esperamos muchos números más-, "Asterico Más".

Y qué es la Comunidad Oracle Hispana.?

Desde mi punto de vista como miembro, es una grupo de personas, con afinidades comunes, que buscan el compartir información y apoyarse mutuamente, en las distintas áreas de productos Oracle, sin importar su origen geográfico y creencias religiosas y en el marco estricto de convivencia, utilizando el idioma "español" ó "castellano".

Porqué es importante para mi pertenecer a esta comunidad.?
  • Primero, porque comulgo y defiendo la idea, que el conocimiento es universal y este debe ser difundido sin ningún tipo de limitación.
  • Segundo, porque a pesar de ser un defensor de la idiología creada alrededor de los productos de Oracle, me sientó descriminado, al no contar con un espacio, para dar a conocer mis conocimientos e ideas, - al igual que le sucedió en su momento a Fernando", dentro de Oracle Support, creando una comunidad de élite, sólo para aquellos que dominan o entienden, el idioma de William Shakespeare.
  • Tercero, porque el hombre desde sus principios, ha vivido en comunidad, ayudándose el uno al otro, para poder hacerle frente a las distintas dificultades, que la vida le ha puesto en su camino.

Por estas y muchas otras cosas más, como dicta la famosa canción del canta-autor argentino Luis María Aguilera Picca , conocido como Luis Aguilé, es que les invito a formar parte de éste, -tal vez para muchos-, no novedoso proyecto, pero sí, altamente enriquecedor y gratificante.
Saludos y un fuerte abrazo, a todos los miembros de la comunidad y a los nuevos que esten por unirse en los próximos días y en la medida de que lo crean justificable, apoyemos la candidatura de Fernando, a convertirse en unos de los próximos ACE de Latinoamérica.

Seminario Web Gratis de Oracle R12 E-Business Suite

A través de la red me llegó la notificación de un seminario programado para el 03 de Octubre, en donde abordarán las principales características de la nueva versión de Oracle R12 E-Business Applications.
La siguiente es la agenda:
  • Understand Oracle Release 12
  • Understand why Oracle R12 is The Global Business Release
  • Understand R12 New and Enhanced
  • Functionalities
  • Q&A

El evento es patrocinado por ARSHIYATECH.COM y pueden registrarse gratis en el siguiente link.

sábado, 26 de septiembre de 2009

Esta segura su inversión en TI.? Es inteligente y deja dividendos ?

En tiempos de crisis, las limitaciones en el flujo de dinero, obligan a las organizaciones a ser más eficientes a la hora de elaborar sus presupuestos.

En contabilidad general, se dice que la fórmula elemental es: ACTIVO + PASIVO = CAPITAL y el exceso de los INGRESOS sobre los EGRESOS en un período fiscal, da como resultado GANANCIAS y si la ecuación es a la inversa, el resultado es una PERDIDA ó DEFICIT.

Cada gerencia y departamento de la empresa, al final de cada período final, brinda un informe con la justificación de como se invirtió, gastó o dejó de ejecutar, cada centavo presupuestado.

Una adecuada administración de los recursos, hace que la tasa de retorno obtenida sea positiva y se acerque más a las metas trazadas al principio del período.

Ahora, por lo general, esta tasa de retorno es calificada en términos tángibles, de forma más simple, en algunas áreas del negocio, más que en otras.

La inversión en TI, es tal vez,una de las areas más difíciles de justificar y evaluar. No por casualidad, he escuchado en muchas ocasiones en todos estos años, que la inversión del Departamento de Cómputo, los demás departamentos lo ven más como un gasto y no como una inversión, perdiendo la noción real, de lo que representa TI para la organización.

Depende mucho de la visión que el Gerente de TI ha promulgado a lo interno de la empresa, para el criterio que el resto de la organización se haya creado del Departamento de Tecnología.

Algunos gerentes, legislan para salvaguardar sus interés y "status" en la organización, promoviendo independientemente de las necesidades reales de la organización, el mejoramiento constante del equipamiento de las altas esferas directivas de la empresa, consumiento gran parte del presupuesto, en mejoras innecesarias, que no aportan en nada, al proceso productivo de la empresa y en una gran cantidad de ocasiones, inversiones que terminan subutilizadas ó simplemente como adornos en los escritorios, en deprimento, de aquellas zonas en donde realmente se requería del mejoras de infraestructura.

Y es que en tiempos de "Crisis", lo primero es salvaguardar es el puesto de trabajo y muchos directores de TI, llaman a sus subalternos a sacrificarse y amarrarse un poco más los cinturones en "pro del mejoramiento de la empresa", pero la desviación de dineros hacia otros sectores del negocio, hacen ver al personal, que los únicos que realmente se sacrifican y estan siendo afectados por la crisis, son los que conforman la famosa "clase obrera".

Otros directores por lo contrario, se convierten en líderes innatos en las organizaciones y se ponen como ejemplo ellos mismos, llevando consigo a los demás, en ocasiones, a tomar conciencia del problema y ha ser ejemplos para el resto de los equipos que tienen a su cargo.
Si el dinero no sobra y es necesario hacer una inversión inteligente de él, es necesario, tener bien claro, que es lo que espero de una contratación "outsourcing", en cualquiera que sea la división del negocio.

De que sirve una auditoría de sistemas, efectuada por personal, con desconocimiento de las herramientas utilizadas dentro de la organización, si la misma, se basa en realizar una serie de preguntas repetitivas, que año tras año se hacen, para llenar informes, que satisfajan a las gerencias financieras y generales, de que todo se hace con base a las buenas costumbres.?

Algunas justificaciones para outsourcing:
  1. Alianza estratégica
  2. Cumplimiento de medida solicitada por la auditoría
  3. Falta de personal capacitado para ejercer los mantenimientos, soporte y tareas diarias
  4. Contingencia por alta rotación de personal de la unidad de TI
  5. Gestión de Proyectos
  6. Auditoría

Todas estos puntos son ciertamente justificables, pero que tan defendibles son en estos tiempos.?

Si justificamos un contrato de outsourcing, por el simple temor a que nuestro personal altamente capacitado, deje la empresa de un momento a otro y queremos tener un seguro, el costo es sumamente elevado. Además, este criterio, desde un punto de vista meramente personal, denota una inseguridad y falta de liderazgo, en el mando del encargado de TI.

Las auditorías en estos tiempos, no suelen ser aquellas que se hacían con la finalidad de realizar ajustes a los procedimientos establecidos en la organización. Ahora son, en la mayoría de los casos, un conjunto de informes en papel, que aportan poco o ningún valor a la organización. Muchas de las empresas dedicadas a brindar este servicio, cuentan con directores reconocidos y de gran capacidad técnica, pero no son los que realizan el análisis de los hallazgos obtenidos en el dictámen y tabulación de la información, por lo que a menudo, las conclusiones que se obtienen del ejercicio, suelen ser de poco valor o contenido y sí se comparan con las realizadas en períodos anteriores, difieren en muy poco unas de otras, ya que se apegan profundamente a machotes y líneamientos de "cómo y qué" deben contener dichas conclusiones. Pocas veces, se salen del libreto para obtener un producto novedoso y que genere un impacto importante en los procedimientos de la compañia. Sus recomendaciones se quedan en el papel, porque no se cuenta con el presupuesto o la disposición del sector gerencial, para llevarlas a cabo.

La falta de personal capacitado, es la factura más cara que suele pagar la empresa. Las cosas se repiten una y otra vez, hasta obtener el resultado buscado. Existe una alta rotación de personal, en busca del elemento requerido, que sea "idóneo, en términos cuantitativos y calificativos". Hoy en día, las empresas desean encontrar, elementos altamente competitivos y calificados, pero son mesquinos a la hora de ofrecer ventajas adicionales al pago de un salario mensual. Son muchas las promesas que se realizan durante el proceso de reclutamiento, pero luego, la falta de tiempo, la sobrecarga de funciones y la mala planificación de actividades, pospone siempre el entrenamiento ofrecido para el día de mañana, el siguiente mes o el siguiente año. Así, día tras día, la percepción del empleado va cambiando la imagen que tenía en un inicio de la empresa y cada gota de estrés, cada acto de indiferencia, insensibilidad y en muchos casos de sentido común, terminan con las aspiraciones personales que se tenían en un principio. El malestar del personal se hace notorio a simple vista, pero sólo el empleador no lo ve o no lo desea ver y como producto de dicho malestar, el nivel de calidad y ejecución del trabajo asignado al empleado, se vuelve mediocre.

Ante tal situación, en la mayoría de los casos, la empresa no busca el porqué de tan abrupto cambio en la actitud del personal. Es más fácil precendir de empleado y quitarse de encima un dolor de cabeza, que buscar las causas que llevaron al cambio en el comportamiento del individuo.

La gestión de proyectos, es quizás, la forma más habitual de hacerle frente al desarrollo de nuevas aplicaciones o requerimientos para la empresa. El que exista un tercero, responsable del levantamiento de requerimientos, análisis, desarrollo y puesta en marcha de los proyectos informáticos, que no sean posibles de llevar a cabo por parte de los recursos internos de TI, da cierta tranquila, ya que por si sola, esta figura, es un cheque nominal. Si se cumple con el cronograma trazado, se desembolsa los dineros establecidos y si por el contrario, existe incumplimento en la calendarización, se puede ejecutar la garantía solicitada al inicio del proyecto.

Sea cuál sea su punto de vista, de como administrar y llevar a cabo las metas impuestas al principio del período, en conjunto con su equipo de TI, realice el ejercicio de autocalificarse y sea su más ferviente admirador y retractor de las medidas tomadas. Aprenda y aplique día con día, el principo de como rehacer las cosas. Deje que los resultados sean los que hablen por usted y su departamento de TI y que no sea las palabras que salgan de su boca, la invitación a cenar o los tragos, los que lo mantengan al frente de su puesto de trabajo.

Aprenda a escuchar, lo que no se dice. Conozca a su equipo y si aún no lo ha hecho, conózcase a si mismo, así sabrá de que es capaz y para qué tipos de cosas, requerirá ayuda, para poder cubrir sus limitaciones.

jueves, 24 de septiembre de 2009

Genial !!!

Muchas veces las cosas no pintan como deseados, si estas extresado y con mucho trabajo, relájate un poco con este video genial, publicado hoy en yahoo.



Mal día de oficina en Yahoo! Video

miércoles, 23 de septiembre de 2009

Respaldando archivos de una máquina a otra en Linux con tar y ssh de una manera poco común

Partiendo del punto, en que tenemos ya configurado nuestros equipos, racdb1 y racdb2, para poder ejecutar un "remote shell" entre ellos, se nos presenta que deseamos copiar el contenido de un directorio a otro directorio en un equipo remoto, pero queremos hacerlo de una manera inteligente.

Es más, que pasa si lo que tenemos, es un respaldo en cinta de un equipo y lo tenemos espacio para bajarlo localmente en dicho equipo y lo queremos pasar a otro servidor con espacio, sin tener que montar localmente, el sistema de archivos del equipo remoto.?

Aquí les va la solucción.

Para la prueba, vamos a crear un directorio con el nombre de respaldo en la máquina destino, en donde queremos hacer la copia.

[root@racdb2 ~]# mkdir respaldo

Verificamos que no existe contenido en el directorio creado.

[root@racdb2 respaldo]# pwd
/root/respaldo
[root@racdb2 respaldo]# ls -la
total 12
drwxr-xr-x 2 root root 4096 Sep 23 18:00 .
drwxr-x--- 20 root root 4096 Sep 23 17:58 ..
[root@racdb2 respaldo]#

Verificamos la funcionalidad del comando rsh ( remote shell ) en el equipo en donde deseo hacer la copia.

[root@racdb1 ~]# rsh racdb2 ls -la /root/respaldo/*

Tenemos un grupo de archivos empacados con formato "gz" en la máquina local, que son los que deseamos trasladar al equipo remoto.

[root@racdb1 ~]# ls -la mont*
-rwx------ 1 root root 114 May 20 18:22 montar_dvd.gz
-rwx------ 1 root root 140 Jul 27 11:20 montar_srv_backup.sh.gz


Ahora si, utilizamos la siguiente sintáxis, con el comando tar y el comando rsh.



El signo de "pipe line" es el generalmente se obtiene con la tecla ALT GR en el lado izquierdo del teclado y la tecla del número 1 sobre el teclado númerico.
Explicación:

Tome los archivos que inician con el prefijo "montar", más cualquier otra cosa, que se encuentran en el directorio actual, concatené el comando "tar" en el equipo local con el "rsh" remoto y le pedimos que se coloque en el directorio /root/respaldo y que lo obtenido con el comando "tar" del primer parámetro, sea descargado en la ruta, en donde previamente me he cambiado con el comando "cd" en el equipo remoto.

Resultado: Los archivos han sido copiados al equipo remoto en el directorio propuesto.

[root@racdb1 ~]# ssh racdb2
Last login: Wed Sep 23 17:59:12 2009 from racdb1.lab.com

[root@racdb2 ~]# cd respaldo

[root@racdb2 respaldo]# ls -la
total 20
drwxr-xr-x 2 root root 4096 Sep 23 18:01 .
drwxr-x--- 20 root root 4096 Sep 23 17:58 ..
-rwx------ 1 root root 114 May 20 18:22 montar_dvd.gz
-rwx------ 1 root root 140 Jul 27 11:20 montar_srv_backup.sh.gz
[root@racdb2 respaldo]#


Resumen Evento de Fusion Middleware 11g

La primera imagen de algo, suele en la mayoría de las veces, ser la imagen que perdura en la mente de las personas.

El día de ayer, al presentarme en el evento de "Lanzamiento" de Fusion Middleware, al observar el panorama del parqueo del Hotel Radisson en San José de Costa Rica, parecía ser que la cosa pintaba muy bien y que la concurrencia al evento sería masiva. Sin embargo, al acercarme al punto de bienvenida del evento, con asombro miré, como una gran cantidad de bolsas blancas, de las cuáles sobresalia un bolígrafo y el logotipo de Oracle en él, así como el logo de Oracle 11g en la bolsa en sí- que a mi parecer debió ser el de Fusion Mideleware y no el del producto de la base de datos-, esperaban impacientes, por los participantes, que aún no se hacían presentes en el lugar.

A la hora de inicio 4:30pm, la característica principal del salón, era un conjunto de mesas medio vacías y un panel de expositores un poco impacientes, por la falta de concurrencia.

A las 5:00pm, el panelista de apertura, Matias - disculpas pero no pude tomar el apellido - más que preocupado, solicitó a la escasa audiencia, un compás de espera de 10 minutos, para ver si el salón pasaba de medio vacío a medio lleno.

Diez minutos más tarde, al no cambiar el panorama, dió inicio la presentación.
La primera parte se desarrolló, con una muy marcada perspectiva desde el punto de mercadeo, buscando dejar en claro las virtudes del nuevo release del producto y los "benchmark" obtenidos, en comparación con su aserrimo competidor IBM.

Sin hacer comparaciones y desde un punto de vista totalmente personal, lo mejor vino en el segundo tiempo, cuando Rolando Carrasco tomo la dirección de la charla y le dió un giro más interesente desde un punto de vista técnico.

De hecho durante la primera parte tomé apuntes, porque se hablaba más constantemente, sobre las virtudes de Fusion Middleware, sin profundizar en materia. Con el ingreso de Carrasco y una demo realizada por el Carlos Toso, fue como montarse en una montaña rusa e iniciar un viaje tripidante, por el poco tiempo disponible y para poder abarcar una amplia gama de temas.

Al final, quedó la sensación de haber quedado saciado a medias con las expectativas que llevaba, pero no por la falta de contenido, sino más bien, por la falta de tiempo. Por otro lado, la llegada tardía de la invitación, creó provoco la poca asistencia al evento y que mucha gente, estuviera ausente y dejaran escapar una excelente charla, en un año prácticamente ausente de eventos, posiblemente, por culpa de la mentada "CRISIS".
Hoy, nuestros vecinos Panameños, tendrán la posibilidad de aprovechar un rato ameno, cuando sea repetido el evento en su país.

Mayor información la puedes encontrar en el link http://www.oracle.com/technology/products/middleware/index.html del sitio de OTN.

lunes, 21 de septiembre de 2009

Lanzamiento de Oracle Fusion Middleware 11g


Manaña Martes 22 de Setiembre de 2009, en el Hotel Radisson, San José de Costa Rica, será el Lanzamiento Oficial de Oracle Fusion Middelaware 11g. La invitación llama a participar y conocer las novedades propuestas por Oracle en temas como Portales, Integración y Modelaje de Negocios, así como en Seguridad.
Para registrarse, hay que escribir a Fusion.cr@publimark.co.cr.
El evento iniciará a las 4:30 pm.
Nos vemos allá.

viernes, 18 de septiembre de 2009

Eficiencia Vs Rapidez, no necesariamente el resultado buscado

La rapidez o velocidad es la relación entre la distancia recorrida y el tiempo empleado en recorrerlo. La eficiencia proviene del latín efficientia que en español quiere decir, acción, fuerza, producción. Se define a la eficiencia, como la capacidad de disponer de alguien o de algo para conseguir un efecto determinado y no debe confundirse con eficiencia, que hace relación a la capacidad de lograr el efecto que se desea o se espera.
En repetidas ocasiones, he hecho referencia a eficiencia en este blog, sin antes aclarar, que el resultado que obtendremos de una práctica o otra, dará como resultado, una forma más rápida de obtener o hacer las cosas.

Por tanto, puede prestarse a múltiples mal entendidos, sobre todo en aquellos lectores que recién inician en este mundo lleno de sorpresas, que se llama "Oracle".
La excasa o poca experiencia, puede ser un mal aliado en estos casos, porque nos llenamos de falsas expectativas al obtener como resultado de la puesta en práctica de algún consejo, un producto no esperado.

Días atrás en un post, hablé como borrar de manera eficiente, registros en una tabla. Posiblemente, alguién ya halla probado el procedimiento y halla sacado sus propias conclusiones, sobre el tema en discusión.

Para aquellos que no han tenido tiempo, les aportó mis propias pruebas, para que ustedes evalúen y saquen sus propias conclusiones, no sin antes evaluar cada una de las variables, que su propio entorno pueda presentar.

Como primer conclusión, Eficiencia no significa, que vamos a obtener mayor rapidez a la hora de obtener un resultado, para muestra, a continuación, podrán observar como un borrado con una declaración simple, sobre una tabla de un poco más de 6 millones de registros, puede ser casí un 40% más veloz - rápido, que utilizar el método del bloque PL/SQL reseñado días atrás.
Sin embargo, las diferencias si son notorias en cuanto a la utilización de recursos. La generación del explain plan de la la declaración SQL utilizada para borrar en la sesión de Oracle con SQL*Plus, guarda mucha distancia en relación a las dos consultas utilizadas en el bloque PL/SQL. El costo en CPU, utilizado por la declaración " delete pruebas_borrado where periodo='2002' ", de 1660 es significativamente muchas veces más alto que el costo de 16 de cada una de las dos instrucciones del bloque PL/SQL.

Aquí podemos afirmar, nuestra segunda conclusión, la forma de borrar registros del bloque PL/SQL es más eficiente que la instrucción utilizada a nivel del SQL.

Sin embargo, derivado de los resultados que obtuvimos del ejemplo mostrado abajo, se desprende la tercera conclusión, Eficiencia no es lo mismo que rapidez. El bloque PL/SQL emplea entre un 30% a un 40% más de tiempo en ejecutar el borrado de la tabla. La diferencia podría ser marcada, al ejecutar el "commit" ( fijación ) de los datos dentro del ciclo "LOOP" y así minimizar el bloqueo sobre el objeto y aumentar la disponibilidad del mismo.
Usted deberá evaluar, que es lo que más requiere o o se ajusta a sus necesidades en su instalación.
Con esto, espero haberles ayuda a diferenciar y ha emplear de una forma más correcta, la interpretación de estos dos conceptos.

SQL> set timing on
SQL> select count(*) from pruebas_borrado;

COUNT(*)
----------
6445961

Elapsed: 00:00:19.43
SQL> select count(*), periodo from pruebas_borrado group by periodo;

COUNT(*) PERI
---------- ----
326249 2009
785274 2006
537067 2001
739987 2008
801901 2004
754343 2005
861277 2002
857697 2003
782166 2007

9 rows selected.

Elapsed: 00:00:19.71


Elapsed: 00:00:00.02
SQL> delete pruebas_borrado where periodo='2002';

861277 rows deleted.

Elapsed: 00:01:00.37
SQL> commit;

Commit complete.

Elapsed: 00:00:00.01

SQL> DECLARE
2 CURSOR c1 IS SELECT rowid from pruebas_borrado where periodo in ('2004','2003');
3 emp_rec c1%ROWTYPE;
4 BEGIN
5 OPEN c1;
6 LOOP
7 FETCH c1 INTO emp_rec;
8 EXIT WHEN c1%NOTFOUND;
9 DELETE FROM pruebas_borrado WHERE rowid = emp_rec.rowid;
10 END LOOP;
11 commit;
12 CLOSE c1;
13 END;
14 /

PL/SQL procedure successfully completed.

Elapsed: 00:02:41.32
SQL> DECLARE
2 CURSOR c1 IS SELECT rowid from pruebas_borrado where periodo in ('2005');
3 emp_rec c1%ROWTYPE;
4 BEGIN
5 OPEN c1;
6 LOOP
7 FETCH c1 INTO emp_rec;
8 EXIT WHEN c1%NOTFOUND;
9 DELETE FROM pruebas_borrado WHERE rowid = emp_rec.rowid;
10 END LOOP;
11 commit;
12 CLOSE c1;
13 END;
14 /

PL/SQL procedure successfully completed.

Elapsed: 00:01:34.95
SQL> DECLARE
2 CURSOR c1 IS SELECT rowid from pruebas_borrado where periodo ='2007';
3 emp_rec c1%ROWTYPE;
4 BEGIN
5 OPEN c1;
6 LOOP
7 FETCH c1 INTO emp_rec;
8 EXIT WHEN c1%NOTFOUND;
9 DELETE FROM pruebas_borrado WHERE rowid = emp_rec.rowid;
10 END LOOP;
11 commit;
12 CLOSE c1;
13 END;
14 /

PL/SQL procedure successfully completed.

Elapsed: 00:01:29.66
SQL> select count(*), periodo from pruebas_borrado group by periodo;

COUNT(*) PERI
---------- ----
326249 2009
785274 2006
537067 2001
739987 2008

Elapsed: 00:00:22.40

Dueño de la tabla: T1
Nombre de la tabla: PRUEBAS_BORRADO

Información General de la tabla: T1.PRUEBAS_BORRADO

OWNER TABLE_NAME TABLESPACE_NAME PCT_FREE BLOCKS EMPTY_BLOCKS
--------------- ------------------------- ------------------
T1 PRUEBAS_BORRADO USERS 10

SQL> create index idx_pruebas_periodo on pruebas_borrado(periodo);
Elapsed: 00:00:39.12

SQL> select count(*), periodo from pruebas_borrado group by periodo;

Información de Dependencias en la tabla: T1.PRUEBAS_BORRADO

COUNT(*) PERI
---------- ----
326249 2009
785274 2006
537067 2001
739987 2008
Elapsed: 00:00:02.07

SQL> explain plan for
2 delete pruebas_borrado where periodo='2006';
Elapsed: 00:00:01.10

SQL> select * from table(dbms_xplan.display);

Información de Dependencias en la tabla: T1.PRUEBAS_BORRADO

PLAN_TABLE_OUTPUT
-------------------------------------------------------------------
Plan hash value: 3245470661

-------------------------------------------------------------------
Id Operation Name Rows Bytes Cost (%CPU) Time
-------------------------------------------------------------------
0 DELETE STATEMENT 733K 2866K 1660 (2) 00:00:20
1 DELETE PRUEBAS_BORRADO
* 2 INDEX RANGE SCAN IDX_PRUEBAS_PERIODO 733K 2866K 1660 (2) 00:00:20
-----------------------------------------------------------------------------------------

Información de Dependencias en la tabla: T1.PRUEBAS_BORRADO

PLAN_TABLE_OUTPUT
----------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - access("PERIODO"='2006')

Note
-----
- dynamic sampling used for this statement
Elapsed: 00:00:01.55

SQL> delete pruebas_borrado where periodo='2006';
Elapsed: 00:00:51.10

SQL> rollback;
Elapsed: 00:01:00.69

SQL> DECLARE
2 CURSOR c1 IS SELECT rowid from pruebas_borrado where periodo ='2008';
3 emp_rec c1%ROWTYPE;
4 BEGIN
5 OPEN c1;
6 LOOP
7 FETCH c1 INTO emp_rec;
8 EXIT WHEN c1%NOTFOUND;
9 DELETE FROM pruebas_borrado WHERE rowid = emp_rec.rowid;
10 END LOOP;
11 commit;
12 CLOSE c1;
13 END;
14 /
Elapsed: 00:01:22.98

SQL> explain plan for
2 SELECT rowid from pruebas_borrado where periodo ='2008';
Elapsed: 00:00:02.01

SQL> select * from table(dbms_xplan.display);

Información de Dependencias en la tabla: T1.PRUEBAS_BORRADO

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------
Plan hash value: 1733812795

----------------------------------------------------------------------------------------
Id Operation Name Rows Bytes Cost (%CPU) Time
----------------------------------------------------------------------------------------
0 SELECT STATEMENT 1 16 2 (0) 00:00:01
* 1 INDEX RANGE SCAN IDX_PRUEBAS_PERIODO 1 16 2 (0) 00:00:01
----------------------------------------------------------------------------------------


Información de Dependencias en la tabla: T1.PRUEBAS_BORRADO

PLAN_TABLE_OUTPUT
--------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------

1 - access("PERIODO"='2008')

Note
-----
- dynamic sampling used for this statement
Elapsed: 00:00:00.52

SQL> explain plan for
2 DELETE FROM pruebas_borrado WHERE rowid = 'EEIEIIEIEI';

Elapsed: 00:00:00.02
SQL> select * from table(dbms_xplan.display);

Información de Dependencias en la tabla: T1.PRUEBAS_BORRADO

PLAN_TABLE_OUTPUT
----------------------------------------------------
Plan hash value: 2017434225

-----------------------------------------------------------------------------------------------
Id Operation Name Rows Bytes Cost (%CPU) Time
-----------------------------------------------------------------------------------------------
0 DELETE STATEMENT 1 16 1 (0) 00:00:01
1 DELETE PRUEBAS_BORRADO
* 2 TABLE ACCESS BY USER ROWID PRUEBAS_BORRADO 1 16 1 (0) 00:00:01
-----------------------------------------------------------------------------------------------

Información de Dependencias en la tabla: T1.PRUEBAS_BORRADO

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - access(CHARTOROWID('EEIEIIEIEI'))
Elapsed: 00:00:00.10



jueves, 17 de septiembre de 2009

Montar en Linux directorio compartido de Windows para usuario Oracle

Anteriormente, habíamos hablado como montar en un Red Hat Linux Enterprise, un directorio compartido en Windows en nuestro servidor Linux. El método utilizado, nos permitía hacerlo, pero el dueño del punto de monta en el servidor, quedaba con permisos exclusivos para el usuario "root".
Quedó pendiente, como lo haríamos, si lo que deseamos, es que el usuario Oracle, puede escribir en forma directa en el directorio compartido en la máquina en Windows.
Para hacer esto, puedes utilizar la siguiente sentencia:

mount -t smbfs -o username=administrator, password=laboratorio, gid=oinstall,uid=oracle //10.10.2.10/directorio_compartido /home/oracle/dir_windows

El parámetro "gid" idéntifica el nombre del grupo de usuario en Linux, con el cuál sea seteado el directorio montado en Linux y el parámetro "uid" el nombre del usuario.

Una vez montado el directorio con root, logea en el servidor con el usuario oracle, pasa al directorio en donde haz montado la carpeta compartida de windows y corre el comando:
" touch hola ".

Si al ejecutarlo no te da ningún error y verificas con el comando "ls -la" la existencia del archivo creado, habrás configurado en forma correcta la monta de la carpeta de windows, para poder escribir en forma directa con el usuario "oracle".


[oracle@lab dir_windows]$ touch hola
[oracle@lab dir_windows]$ ls -la hola
-rwxr-xr-x 1 oracle oinstall 0 Sep 17 12:27 hola
[oracle@lab dir_windows]$

lunes, 14 de septiembre de 2009

Otorgando permisos a UTL_MAIL ORA-04042

Aplica: Oracle 10g, Oracle 11g

Deseas darle a un usuario, permisos de ejecución sobre el paquete UTL_MAIL SMTP, los cuáles deben ser otorgados a través del usuario "SYS" y recibes como mensaje "ERROR at line 1:ORA-04042", a que se debe.?
Fácil, el paquete no ha sido creado en la base de datos.

SQL> connect sys@lab as sysdba
Enter password: ******
Connected.SQL> grant execute on utl_mail to lab5m;
grant execute on utl_mail to lab5m
*ERROR at line 1:ORA-04042: procedure, function, package, or package body does not exist

Ingresa en el servidor y logea en la instancia con privilegios de "SYSDBA" y ejecuta las dos sentencias, como se muestra a continuación y luego podrás otorgar los permisos respectivos.

[oracle@lab1 ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Sep 14 15:16:03 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> connect / as sysdbaConnected.
SQL> @?/rdbms/admin/utlmail
Package created.
Synonym created.

SQL> @?/rdbms/admin/prvtmail.plb
Package body created.
No errors.
SQL>

SQL> grant execute on utl_mail to lab5m;
Grant succeeded.

Larry Ellison Live Webcast: Oracle and Sun Product Announcement


Announcing the World’s First OLTP Database Machine with Sun FlashFire Technology

Para las personas con acceso a metalink, deben hacer "Click" en la opción de registro para poder participar en el Webcast en vivo por parte de Larry Ellison Oracle CEO, quién hablará sobre las inovaciones del nuevo producto, que viene a convertirse en el primer servidor en el mundo diseñado exclusivamente para bases de datos Oracle OLTP con Sun FlashFire technology.


Ian Abramson, Presidente del Grupo Internacional de Usuarios de Oracle habla sobre Oracle Database 11g Release 2

Fuente: Oracle Database PodCasts
Escuchar audio en inglés.

jueves, 10 de septiembre de 2009

Lista de parámetros de instancia que deben ser iguales en RAC

Esta es la lista de los parámetros que deben ser iguales en todas las instancias de base de datos, asociadas a un Real Application Cluster:

Oracle 10gR2, 11gR1 y Oracle 11gR2

  • ACTIVE_INSTANCE_COUNT
  • ARCHIVE_LAG_TARGET
  • COMPATIBLE
  • CLUSTER_DATABASE
  • CLUSTER_DATABASE_INSTANCE
  • CONTROL_FILES
  • DB_BLOCK_SIZE
  • DB_DOMAIN
  • DB_FILES
  • DB_NAME
  • DB_RECOVERY_FILE_DEST
  • DB_RECOVERY_FILE_DEST_SIZE
  • DB_UNIQUE_NAME
  • INSTANCE_TYPE (RDBMS or ASM)
  • PARALLEL_EXECUTION_MESSAGE_SIZE
  • REMOTE_LOGIN_PASSWORDFILE
  • UNDO_MANAGEMENT

Adicional a estos parámetros, el parámetro DML_LOCKS debe ser igual en todas las instancias si esta seteado a valor cero "0", en las versiones Oracle 10g y 11g.

Para las versiones de Oracle 11g, el parámetro RESULT_CACHE_MAX_SIZE, debe ser igual, siempre y cuando este seteado a valor cero "0".

Errores ORA-01105 / ORA-19808 RAC

Uno de los problemas que pueden darse con regularidad en una instalación RAC, es que por omisión a la hora de cambiar un parámetro de configuración en alguno de los nodos de la instancia, lo hagamos sólo para el nodo en donde estamos conectados y no para todos los nodos del RAC.
Esto podría evitarse, si los archivos SPFILE estuvieran en el ASM+, pero alguna razón especial, podría darse, que queramos mantenerlos en cada nodo del RAC.
Si la opción tomada es esta última, es necesario tener el cuidado respectivo para evitar problemas como el ORA-01105 / ORA-19808, el cuál se debe a que los parámetros de db_recovery_file_dest y db_recovery_file_dest_size, deben ser iguales para todas las instancias del RAC.
Veamos un ejemplo:

Hemos notado que nuestra instalación RAC esta un poco lenta. A la hora de verificar la cantidad de instancias activas en el RAC, nos encontramos que nos hace falta un nodo del mismo.

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

INST_NUMBER INST_NAME
----------- ------------------------------------------------------------
2 racdb2.lab.co.cr:admin2

Aprovechando que estamos en este nodo, verificamos los parámetros en cuestión, que tienen que ver con este error específico.

SQL> show parameter recovery

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string +FLASH_RECOVERY
db_recovery_file_dest_size big integer 200000M
recovery_parallelism integer 0

Nos vamos al nodo 1, que al parecer no tiene activa la instancia. Cuando intento montar la base de datos, me muestra el mensaje de la condición de error:

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

Total System Global Area 1610612736 bytes
Fixed Size 2084296 bytes
Variable Size 553648696 bytes
Database Buffers 1040187392 bytes
Redo Buffers 14692352 bytes
ORA-01105: mount is incompatible with mounts by other instances
ORA-19808: recovery destination parameter mismatch

Si recordamos los valores de la instancia del nodo 2, nos damos cuenta, que el valor para el db_recovery_file_dest_size, esta diferente en el nodo 1. Para resolver el problema, modifique el valor del parámetro al valor de la instancia del nodo 2. Esto lo puede hacer de varias formas. Una de ellas es, a partir del archivo binario ( SPFILE ) de parámetros, cree un archivo tipo ASCII ( PFILE ), modifique el valor del parámetro e intente levantar la instancia con el archivo creado.

SQL> show parameter recovery

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string +FLASH_RECOVERY
db_recovery_file_dest_size big integer 150000M
recovery_parallelism integer 0
SQL> exit
Disconnected from Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
With the Real Application Clusters option


SQL> startup mount;
ORACLE instance started.

Total System Global Area 1610612736 bytes
Fixed Size 2084296 bytes
Variable Size 553648696 bytes
Database Buffers 1040187392 bytes
Redo Buffers 14692352 bytes
Database mounted.
SQL>

Si el resultado es positivo, a partir del archivo PFILE, vuelva a recrear el archivo SPFILE de la instancia con problema y reinicié la base de datos.
Si a la hora de consultar la vista v$active_instances, lográ ver el nodo 1 activo, el problema ya se encuentra resuelto.

SQL> select * from v$active_instances;

INST_NUMBER INST_NAME
----------- ------------------------------------------------------------
1 racdb1.lab.co.cr:admin1
2 racdb2.lab.co.cr:admin2

SQL>


miércoles, 9 de septiembre de 2009

Error al ejecutar dbca: line 124: 26649 Segmentation fault

Despues de instalar Oracle 9iR2 en Red Hat Enterprise Linux 4 y siguiendo la guía correspondiente, aplicando el patch 4198954 previo a la instalación del motor de la base de datos e instalando sin errores en la fase de copiado y link del los componentes, nos aparece el siguiente error:

/opt/product/9.2.0/bin/dbca: line 124: 26649 Segmentation fault $JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS

La forma más sencilla de resolver el problema es:
$ su - root
touch /etc/rac_on

Con esto, ya el dbca, ( Asistencia de administración de borrado, modificado y creación de instancias ), funciona sin error alguno.

viernes, 4 de septiembre de 2009

Evento : Global Cache Blocks Lost en instalaciones de RAC

Uno de los eventos que más ha sido reportado por la consola de control de mi base de datos ( DB Control ), es el evento Global Cache Blocks Lost y posiblemente, también usted tenga el mismo evento reportado en su instalación RAC.

Representa esta alerta, la existencia de algún problema serio en nuestra base de datos RAC.?
Lo primero que tenemos que tener claro, es conocer que es lo monitorea esta alerta:

Global cache blocks lost: Esta estadística representa los bloques perdidos durante una transferencia realizada entre nodos de un RAC. Los datos son cargados en las area del databuffer, según sean requeridos por las sesiones abiertas, conectadas en cada nodo. Si un bloque de datos fue solicitado y cargado por un usuario en la instancia del nodo 1, se dice que ese bloque ha sido "masterizado" en el SGA de la instancia activa en dicho nodo.

Si un usuario conectado en una instancia de otro nodo requiere el bloque que ya una vez fue cargado en otro nodo y que se encuentra en la lista de bloques masterizados en alguna de las instancias, para evitar volverlo a leer de disco, la base de datos solicita a la instancia del nodo 1 que le transfiera el bloque a la instancia que los solicita y cuando esto sucede, el bloque pasa ahora a ser "masterizado" en la nueva instancia del nodo que lo ha solicitado y ya no se encontrará en tal estado, en la instancia 1.

La métrica se establece al dividir la totalidad de bloques perdidos entre los bloques actuales en el cache y los bloques solicitados previamente. La relación porcentual, debe ser lo más pequeña posible, sin embargo, si el valor no es "0", no necesariamente es indicador que exista algún problema, ya que Oracle volve a intentar transferir los bloques esta que la transferencia sea satisfactoria.

Global cache blocks corrupt: Muestra las estadísticas de cualquier bloque que se halla encontrado corrupto durante la transferencia. Un valor alto, podría representar problemas de red, hardware o problemas en el protocolo de llamado entre procesos del motor de la base de datos.


El problema de despliegue del error en el Database Control, es que el valor de facto es 1 para el umbral de advertencia y 3 para el umbral de crítico. Por tanto, es casí 99% posible, que constantemente sea reportado el evento. Para ver si el valor actual de bloques perdidos representa algún valor real significativo en la base de datos, puedes utilizar las consultas que aparecen en la imágen a continuación, que fueron tomados del sitio de Burleson en el post Undesirable Global Cache Statistics.

Como puedes observar a pesar que son varios los bloques reportados, el porcentaje del hit total es insignificativo. En este caso, es recomendado redefinir las métricas de los umbrales para notificación en el Database Control, en el tab de gestión de métricas en el panel principal del DB Control.




CentOS un hermano menor de Red Hat



Hablar de CentOS ( Community ENTerprise Operating System ), sin haber tenido experiencia con él, es bastante difícil.


Con un poco más de 5 años en el mercado, este sistema operativo, cuya base es el código fuente liberado por Red Hat, ha liberado 4 versiones distintas desde su creación y al menos 3 revisiones intermedias entre versiones.

Mi experiencia se limita a CentOS 5.1 y CentOS 5.2, cuya instalación de Oracle Database Server, fue realizada sin problema alguno, con alguna de las tantas guías que se pueden encontrar en Internet y siguiendo las recomendaciones de configuración de parámetros de sistemas, dados para Red Hat, en las notas de metalink.

La imagen final, que me deja CentOS, es el de un sistema operativo, no tan robusto como Fedora ( Otro derivado de Red Hat ) y que ha guardado un perfil bajo desde su nacimiento. Buen rendimiento en equipos con pocos recursos de hardware y muy estable a nivel de su núcleo. La documentación, sólo se encuentra disponible en inglés, en formato HTML y PDF para poder bajar fácilmente.

En una escala de 1 a 5 y desde un punto de vista totalmente personal y en base a la funcionalidad que al menos yo busco en un sistema operativo de código abierto, mi calificación sería la siguiente: Fedora se lleva el 5, Ubuntu el 4.5 y CentOs un 3.5

CPU ( Critical Patch Update - Octubre 2009 ) cambia de fecha

Fuente: Oracle Security Alerts
Hoy cerca de las 10 horas del estado de California, EUA, Oracle vía email, ha notificado el cambio en la fecha de liberación del siguiente CPU programado para originalmente para el 13 del mes de Octubre y ha dado, como posible nueva fecha de liberación, el día 20 del mismo mes.

De igual forma, las fechas del 12 de enero 2010, 13 de abril 2010 y 13 de Julio del 2010, continúan vigentes para las siguientes liberaciones de CPU.

jueves, 3 de septiembre de 2009

Fedora 12 Beta, disponible, pero por ahora disfrute de Fedora 11



Para los seguidores de sistemas operativos Linux, en los últimos 4 años, ha sido sumamente difícil, poder escoger un sistema operativo abierto, que reúna las características necesarias, para poder implementar y desarrollar proyectos de investigación. De mi preferencia, CENTOS, UBUNTU y FEDORA, son a mi criterio, los tres mejores proyectos de código abierto, cuya plataforma permite sin gran cantidad de dificultades, instalar productos de Oracle.
Recientemente, el Proyecto Fedora, ha anunciado el lanzamiento de la versión 12 ( Constantino ), y la cuál se encuentra disponible para bajar en el sitio de la organización.
Una de las principales características que llama la atención de Fedora, es la amplia gama de idiomas disponibles en las cuáles se encuentra su documentación, haciéndolo practicamente universal.

De hecho con más de 200 puntos de descarga, recalcados por Fedora, como sitios de índole voluntario, lo hace uno de los softwares más fáciles de descargar de la red.

Mis pruebas pasadas en versiones 10 tuvieron excelentes resultados y pocos contratiempos a la hora de instalación del motor de la base de datos Oracle 9i y Oracle 10g. Las guías oficiales de instalación de Red Hat 4, eran practicamente ajustables a la instalación en Fedora 10. El tiempo me ganó y no logré estudiar a Fedora 11 con Oracle 11g, pero lo tengo en agenda, para ver su comportamiento. Incluso, sería interesante probarlo con la nueva versión Oracle 11gR2, para ver resultados. Lo haré y les comunicaré el resultado del mismo.
Por el momento, les dejo un resumen de lo disponible en el sitio de Fedora, sobre las características de Fedora 11, ha espera de mayor información

Las siguientes son las características más importantes de Fedora 11


Instalación automática de fuente y tipos mime - PackageKit fue introducido en Fedora 9 como una aplicación administradora de software multi distro. La capacidad que ofrece gracias a la integración con el escritorio se hizo más visible en Fedora 10, donde dió la instalación de codecs automática.


Ahora en Fedora 11, PackageKit extiende esta funcionalidad con la habilidad de instalar automáticamente fuentes donde se necesiten para ver y editar documentos. También incluye la capacidad de instalar manejadores para ciertos tipos de contenidos cuando se necesite. Todavía se están realizando trabajos para proveer la instalación automática de aplicaciones.


Control de Volumen - Actualmente, la gente que usa Fedora debía ir por varios niveles de mezcladores en distintas aplicaciones para configurar las fuentes de sonido. Estos están todos expuestos en el control de volumen en el escritorio, haciendo que la experiencia del usuario sea confusa. PulseAudio nos permite unificar los controles de volumen en una interfase que hace la configuración de sonido más fácil y menos dolorosa.


Modesetting del kernel en Intel, ATI y Nvidia - Fedora 10 fue la primera distribución en venir con la característica modesetting del kernel (KMS) para agilizar el arranque gráfico. Se dijo oportunamente que en lo sucesivo se agregaría soporte a placas de video adicionales. KMS solamente estaba presente en algunas placas ATI. En Fedora 11, este trabajo se extendió para incluir muchas más placas de video, incluídas Intel y Nvidia, así como también otras ATI. Aunque todavía no se terminó, se aumentó enormemente la cobertura de placas de video de la característica KMS, con otras más por venir.


Huella digital - Mucho trabajo se realizó para poder usar lectores de huellas digitales como un mecanismo de autenticación. Actualmente, los lectores de huellas digitales son problemáticas, e instalar/usar fprint y su módulo pam toma más tiempo de lo que realmente debería ser necesario. El objetivo de esta característica es hacer esto más fácil, proveyendo todas las piezas necesarias en Fedora, junto con la configuración bien integrada. Para habilitar esta funcionalidad, el usuario debe registrar sus huellas en el sistema como parte de la creación de su cuenta. Después de hacerlo, podrán fácilmente ingresar y autenticar indistintamente pasando el dedo.

Esto simplifica enormemente un elemento de la administración de la identidad y es un gran paso en la evolución del escritorio linux.


Sistema de método de entrada IBus - ibus fue rescrito en C y es el nuevo método de entrada por defecto para idiomas de Asia. Permite que los métodos de entrada se agreguen y quiten dinámicamente durante una sesión de escritorio. Soporta chino (pinyin, libchewing, tablas), indio (m17n), Japonés (anthy), coreano (libhangul) y más. Todavía faltan algunas características si se compara con scim, por lo que se pide la prueba y que se informe los problemas y sugerencias sobre mejoras.



Presto - Normalmente cuando actualiza un paquete en Fedora, descarga un paquete reemplazo entero. La mayor parte del tiempo (especialmente para paquetes más grandes), la mayoría de los datos actuales en el paquete actualizado es el mismo que el del paquete original, pero todavía puede terminar descargando el paquete completo. Presto le permite descargar la diferencia (llamada delta) entre el paquete que tiene instalado y el que quiere actualizar. Esto puede reducir el tamaño de descarga de las actualizaciones en un 60% – 80%. No está habilitado por defecto en este lanzamiento. Para usar esta característica debe instalar el complemento yum-presto con yum install yum-presto.


Las nuevas características disponibles incluyen:

Sistema de archivo Ext4 - El sistema de archivo ext3 se mantuvo como un estándar maduro en Linux por un largo tiempo. El sistema de archivo ext4 es una actualización principal que tiene un diseño mejorado, una mejor performance y confiabilidad, soporte para un almacenamiento más grande y chequeos de sistema de archivo y borrado de archivos mucho más rápido. Ahora es el sistema de archivo predeterminado para instalaciones nuevas.

Consola Virt Mejorada - En Fedora 10 y anteriores, la consola de invitado virtual se limitaba a una resolución de 800x600. En Fedora 11, el objetivo es tener una pantalla predeterminada de 1024x768 mínima. Las instalaciones nuevas de F11 proveerán la habilidad de usar otros dispositivos en el invitado virtual, tales como las tabletas USB, que los invitados automáticamente detectarán y configurarán. Junto con los resultados están un puntero del ratón que sigue al puntero del cliente local uno a uno, y prove capacidades extendidas.

MinGW (compilador cruzado de Windows) - Fedora 11 provee MinGW, un entorno de desarrollo para usuarios de Fedora que quieran compilar en forma cruzada sus programas para que se ejecuten en Windows sin tener que usar Windows. En el pasado, los desarrolladores tenían que portar y compilar todas las bibliotecas y herramientas que necesitaban, y este enorme esfuerzo ocurría muchas veces de manera independiente. MinGW elimina este trabajo duplicado a los desarrolladores de aplicaciones proveyéndoles de un rango de bibliotecas y de herramientas de desarrollo que ya fueron portados al entorno del compilador cruzado. Los desarrolladores no tendrán que recompilar toda la pila de aplicaciones por si mismos, sino que solamente tendrán que concentrarse en los cambios necesarios por su aplicación.

miércoles, 2 de septiembre de 2009

Opinión Personal: Nueva casa para Oracle 11g Release 2

Como parte del lanzamiento de Oracle Database 11gR2, Oracle ha creado un portal en la red en la dirección Oracledatabase11g , - en idioma inglés por supuesto- , dónde esta dejando a disposición del público, todo lo que usted desea saber sobre el nuevo producto.

Pensé en un primer momento, que mi login de acceso a "METALINK", había sido importado al nuevo portal, sin embargo, no fue así. Tras una repetitiva inscripción en el sitio y a la espera de mi clave de acceso, pude ingresar sin inconvenientes al sitio.
Hay varios documentos disponibles para bajar con información relevante, un curioso "EduQuiz", con 11 razones para actualizar a 11gR2, que más que evaluar su conocimiento, debería ser aprenda a cerca de, ya que estamos hablando de características que estan apenas saliendo a la luz pública.

El sitio esta en pañales, pues apenas ayer se dió la liberación del producto, sin embargo, espero que Oracle, no tomé la no muy buena decisión, de empezar a crear sitios a granel, en donde nos tengamos que registrar una y otra vez, como si se tratara de productos distintos, ya que esto provoca, que muchos den la media vuelta y ni siquiera intenten ingresar.

El centro de recursos, me pareció el apartado más interesante del nuevo sitio, en donde de una manera dinámica, puedes ir observando como vas encajando en cada perfil evaluado. Eso sí debes ser lo más posiblemente honesto, para evitar resultados, que no correspondan a tu realidad, cada quién verá como quiere verse a si mismo, pero esto es parte del chiste.
Vamos a estar monitoreando, para ver que nuevas cosas nos muestra el sitio y que sean de relevancia de dar a conocer.