30
Jun

Instalar Oracle Database 12cR1 en OEL 6 con ASM

Verificar si se cumplen con los requerimientos del sistema:


1 GB of space in the /tmp directory.


Mis recursos son los siguientes:
[root@orcl12c ~]# grep MemTotal /proc/meminfo

MemTotal:        4066632 kB

[root@orcl12c ~]# grep SwapTotal /proc/meminfo

SwapTotal:       3080188 kB

[root@orcl12c ~]# df -h /tmp

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/vg_orcl12c-lv_root

                       32G  2.8G   28G  10% /

[root@orcl12c ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/vg_orcl12c-lv_root

                       32G  2.8G   28G  10% /

tmpfs                 1.5G  100K  1.5G   1% /dev/shm

/dev/sda1             485M   55M  405M  12% /boot

[root@orcl12c ~]# free

             total       used       free     shared    buffers     cached

Mem:       3066632     503408    2563224          0      23304     186700

-/+ buffers/cache:     293404    2773228

Swap:      3080188          0    3080188

[root@orcl12c ~]# uname -m

x86_64

[root@orcl12c ~]# cat /etc/issue

Oracle Linux Server release 6.4

Instalar los paquetes necesarios para el sistema, Para OEL 6 64 bits son los siguientes:

binutils-2.20.51.0.2-5.11.el6 (x86_64)

compat-libcap1-1.10-1 (x86_64)

compat-libstdc++-33-3.2.3-69.el6 (x86_64)

compat-libstdc++-33-3.2.3-69.el6 (i686)

gcc-4.4.4-13.el6 (x86_64)

gcc-c++-4.4.4-13.el6 (x86_64)

glibc-2.12-1.7.el6 (i686)

glibc-2.12-1.7.el6 (x86_64)

glibc-devel-2.12-1.7.el6 (x86_64)

glibc-devel-2.12-1.7.el6 (i686)

ksh

libgcc-4.4.4-13.el6 (i686)

libgcc-4.4.4-13.el6 (x86_64)

libstdc++-4.4.4-13.el6 (x86_64)

libstdc++-4.4.4-13.el6 (i686)

libstdc++-devel-4.4.4-13.el6 (x86_64)

libstdc++-devel-4.4.4-13.el6 (i686)

libaio-0.3.107-10.el6 (x86_64)

libaio-0.3.107-10.el6 (i686)

libaio-devel-0.3.107-10.el6 (x86_64)

libaio-devel-0.3.107-10.el6 (i686)

libXext-1.1 (x86_64)

libXext-1.1 (i686)

libXtst-1.0.99.2 (x86_64)

libXtst-1.0.99.2 (i686)

libX11-1.3 (x86_64)

libX11-1.3 (i686)

libXau-1.0.5 (x86_64)

libXau-1.0.5 (i686)

libxcb-1.5 (x86_64)

libxcb-1.5 (i686)

libXi-1.3 (x86_64)

libXi-1.3 (i686)

make-3.81-19.el6

sysstat-9.0.4-11.el6 (x86_64)

Si se necesita instalar paquetes ODBC estas son las versiones:



Para Más información sobre prerrequisitos visite el siguiente link:

http://docs.oracle.com/cd/E16655_01/install.121/e17720/pre_install.htm#BABFDGHJ

Configuraicon de los parametros del Kernel:

[root@orcl12c app]# vi /etc/sysctl.conf

fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65500

[root@orcl12c app]# /sbin/sysctl -p

Configuracion de Limits, Agregar las siguientes líneas en el archivo limits.conf:

[root@orcl12c app]# vi /etc/security/limits.conf

grid  hard  nofile  65536

grid  soft  nproc  2047

oracle   soft   nofile    1024

oracle   hard   nofile    65536

oracle   soft   nproc    2047

oracle   hard   nproc    16384

oracle   soft   stack    10240

oracle   hard   stack    32768

Creación de grupos y usuarios para base de datos y Grid Infrastructure  (GI) Standalone:

# /usr/sbin/groupadd -g 54321 oinstall
# /usr/sbin/groupadd -g 54322 dba

# /usr/sbin/groupadd -g 54323 oper

# /usr/sbin/groupadd -g 54324 backupdba
# /usr/sbin/groupadd -g 54325 dgdba
# /usr/sbin/groupadd -g 54326 kmdba
# /usr/sbin/groupadd -g 54327 asmdba
# /usr/sbin/groupadd -g 54328 asmoper
# /usr/sbin/groupadd -g 54329 asmadmin
#/usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba oracle
#/usr/sbin/useradd -u 54322 -g oinstall -G asmadmin,asmdba,dba grid
# passwd oracle
Para más información sobre los grupos y usuarios visite el siguiente link:

http://docs.oracle.com/cd/E16655_01/install.121/e17720/usr_grps.htm#CHDGHJBF

Creación de los directorios para el software de la base de datos y para el software de GI Standalone:

# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle

# mkdir -p /u01/app/grid

# chown -R grid:oinstall /u01/app/grid
# chmod -R 775 /u01/app/grid

# mkdir -p /u01/app/oraInventory

# chown -R grid:oinstall /u01/app/oraInventory
# chmod -R 775 /u01/app/oraInventory
[grid@orcl12c ~]$ cat .bash_profile

export ORACLE_SID=+ASM
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/grid
export ORACLE_BASE=/u01/app/oracle
export PATH=$ORACLE_HOME/bin:$PATH
[oracle@orcl12c ~]$ cat .bash_profile

export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/db1
export ORACLE_BASE=/u01/app/oracle
export PATH=$ORACLE_HOME/bin:$PATH
Permisos a los discos que se van a usar en ASM:


[root@orcl12c ~]# chown grid:asmadmin /dev/sdb1

[root@orcl12c ~]# chmod 660 /dev/sdb1
[root@orcl12c ~]# ls -ltr /dev/sdb*
brw-rw----. 1 root disk     8, 16 Jun 28 15:39 /dev/sdb
brw-rw—-. 1 grid asmadmin 8, 17 Jun 28 15:39 /dev/sdb1

Situar los instaladores de Base de Datos y GI en el servidor:

#rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm
#rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm

Los paquetes de ASM puedes descargarlos de aqui:
[root@orcl12c ~]# /usr/sbin/oracleasm configure -i

Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library

driver.  The following questions will determine whether the driver is

loaded on boot and what permissions it will have.  The current values

will be shown in brackets (‘[]’).  Hitting without typing an

answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle

Default group to own the driver interface []: grid

Start Oracle ASM library driver on boot (y/n) [n]: ^C

[root@orcl12c ~]# /usr/sbin/oracleasm configure -i

Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library

driver.  The following questions will determine whether the driver is

loaded on boot and what permissions it will have.  The current values

will be shown in brackets (‘[]’).  Hitting without typing an

answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: grid

Default group to own the driver interface []: asmadmin

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]: y

Writing Oracle ASM library driver configuration: done

[root@orcl12c ~]#

# /usr/sbin/oracleasm init

[root@orcl12c ~]# oracleasm createdisk disk1 /dev/sdb1

Writing disk header: done

Instantiating disk: done

ls -r /home/*

/home/oracle:
linuxamd64_12c_database_2of2.zip
linuxamd64_12c_database_1of2.zip

/home/grid:
linuxamd64_12c_grid_2of2.zip  linuxamd64_12c_grid_1of2.zip

INSTALAR GRID INFRASTRUCTURE STANDALONE

Descomprimir los archivos para instalar GI:

[grid@orcl12c ~]$ unzip linuxamd64_12c_grid_1of2.zip
[grid@orcl12c ~]$ unzip linuxamd64_12c_grid_2of2.zip
[grid@orcl12c grid]$ ./runInstaller

Si recive el siguiente error: “PRVF-002: Could not retrieve local nodename” vaya al siguiente link: http://oraclefromguatemala.blogspot.com/2013/06/prvf-002-could-not-retrieve-local.html



Estos parametros se dejaron a proposito sin establecerse para que se pueda observar la utilidad de 12c, Un script que genera automáticamente el instalador y establece todos los parametros necesarios de Kernel.





INSTALAR LA BASE DE DATOS

[oracle@orcl12c ~]$ unzip linuxamd64_12c_database_1of2.zip

[oracle@orcl12c ~]$ unzip linuxamd64_12c_database_2of2.zip

[oracle@orcl12c ~]$ cd database/

[oracle@orcl12c database]$ ./runInstaller






Facebooktwitterlinkedinmailby feather
28
Jun

PRVF-002: Could not retrieve local nodename

Cuando instalamos una base de datos Oracle comunmente se realiza sobre una instalación fresca del Sistema Operativo, esto puede provocar que cuando se instale el Software del Grid Infraestructure se ve el siguiente error:


La solución es sencilla, solo realize los siguientes pasos:

Vemos el hostname que esta seteado correctamente:

[root@orcl12c ~]# hostname
orcl12c
La solución es modificar el archivo /etc/hosts y registrar nuestro servidor con el hostname:

Antes:
[root@orcl12c ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Despues:
[root@orcl12c ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.2    orcl12c

Volver a lanzar el instalador:

[grid@orcl12c grid]$ ./runInstaller

Facebooktwitterlinkedinmailby feather
26
Jun

java.util.zip.ZipException: error in opening zip file

Síntomas:

AIX 6.1 64bits
weblogic 10.3.5
SOA Suite 11.1.1.5
JDK 1.6 
Se realiza el despliegue el Enterprise Manager em.ear (este articulo también aplica a cualquier EAR), el despliegue se realiza correctamente pero cuando se inicializa (Servicing all request) falla con el siguiente error en la consola web: 



Se consulta el log del AdminServer y no muestra información relevante,  solamente el siguiente mensaje:


        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused By: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.(ZipFile.java:137)
        at java.util.jar.JarFile.(JarFile.java:149)
        at java.util.jar.JarFile.(JarFile.java:86)
        at com.sun.faces.facelets.util.Classpath.getAlternativeJarFile(Classpath.java:259)
        at com.sun.faces.facelets.util.Classpath.search(Classpath.java:112)
        at com.sun.faces.facelets.util.Classpath.search(Classpath.java:89)
        at com.sun.faces.config.conf

Causa:

La causa de este error pueden ser varias, entre ellas:

  • Corrupción del EAR que se desea desplegar.
  • Permisos de los archivos que almacena el EAR
  • Conflicto de Librerías.
  • Corrupción de binarios en el WebLogic

 Para descartar que el EAR esté corrupto puede hacer lo siguiente:
$unzip midespliegue.ear

Si los archivos son extraídos correctamente, entonces el EAR no está corrupto.

Si pasa la prueba de corrupción, entonces ya tendríamos que tener los archivos extraídos, bastaría con ejecutar la siguiente sentencia para ver los permisos de todos los archivos extraídos:

ls -ltr *

Si todos los permisos son correctos, entonces se tendría que verificar qué librerías utiliza nuestro despliegue y luego hacer un análisis si esas librerías existen en el weblogic, sí fueron cargadas correctamente, si las versiones de las librerías son las correctas, etc., esta fue la causa de mi problema.
De no encontrar conflictos entre librerías, la única razón que quedaría sería corrupción en binarios del Weblogic, por lo que se necesitaría reinstalar el dominio, o restaurar el dominio desde un backup que se tenga realizado.

Solución:

La Solución para este problema en particular (despliegue del em.ear) se debe a conflictos entre las librerias jsf(1.2,1.2.9.0) y  jsf(2.0). Unicamente el jsf (1.2) debe estar corriendo en el AdminServer.

1. Logearse al WebLogic Console (http://hostname:7001/console)

2. Clic Deployments

3. Clic en el despliegue jsf(2.0)

4. Clic Pestaña Targets

5. Deseleccionar AdminServer

6. Reiniciar los servicios de WebLogic.

Facebooktwitterlinkedinmailby feather
25
Jun

Oracle 12cR1 Liberado

El día de hoy Oracle ha liberado la versión 12c de Base de Datos en su primer Release. Esta base de datos ha sido esperada desde principios de año por sus nuevas caracteristicas que dejan muy atras a su predecesor 11g.

A continuación un articulo donde se detallan algunas de las nuevas caracteristicas de base de datos 12c:

http://oraclefromguatemala.blogspot.com/2013/03/que-hay-de-nuevo-en-oracle-database-12c_26.html

A continuación los links de descarga:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

La documentación se encuentra en el siguiente link:

http://www.oracle.com/pls/db121/homepage

Facebooktwitterlinkedinmailby feather
17
Jun

¿Cuándo usar BPEL?

En el mundo de TI, el concepto de abstracción es particularmente útil. Pero cada abstracción tiene un precio, y la abstracción de los servicios no es la excepción. Acoplamiento débil, compatibilidad, la agilidad y los demás beneficios de SOA todos introducen sobrecarga de rendimiento. Para los conjuntos limitados de servicios con un pequeño número de usuarios, este impacto en el rendimiento puede ser mínimo, pero para las implementaciones de SOA con un gran número de usuarios, servicios o de tráfico, el mantenimiento de los niveles de desempeño necesarios plantea un reto importante, tanto para los arquitectos que diseñan la infraestructura, como personal de operaciones de TI que son responsables de velar por que el rendimiento se mantenga optimo.

De hecho, en ambientes SOA con los más altos requisitos de rendimiento, manteniendo la abstracción servicios con alto tráfico es una preocupación primordial. Pero si dejamos la abstracción por un lado, entonces los servicios dejan de satisfacer las necesidades ágiles de la empresa, y la calidad de la implementación de SOA se viene abajo como un castillo de naipes.


No todos los servicios web deben ser construidos en BPEL, pues entonces se estaría tomando BPEL como un nuevo “lenguaje de programación” y eso, bien se sabe que no es así, adicionalmente sobrecargamos el web service.


Entonces, como ya lo indicamos antes, tenemos que encontrar un punto intermedio entre flexibilidad y buen rendimiento, por lo que aconsejo utilizar BPEL para las siguientes situaciones:

  • Composición compleja de flujos paralelos que involucran varios servicios web.
  • Composiciones que se ejecutan por largo tiempo, varios minutos, horas o incluso días.
  • Composiciones Asíncronas que requieren la interacción de varios servicios web.
  • Procesos que son necesarios realizar un trazo para debuggear en tiempo real las interacciones entre varios servicios web.
  • Tareas Humanas (aprobaciones, rechazos y escalamiento de tareas).

En el articulo Challenges With Using Bpel, realizado por Guy Huntington, se resalta el siguiente párrafo:

Ejemplo de un servicio BPEL (Proceso Solicitud de Compra)



Facebooktwitterlinkedinmailby feather
14
Jun

Specified driver could not be loaded due to system error 1114

Ambiente

Windows Server 2003 SP2 32bits

Oracle Cliente 11.2.0.3 32bits

Business Object XI 3.0

BD destino: Oracle Database 11.2.0.3

Nota:
  • El cliente fue instalado con Administrador Local.
  • El Antivirus está desactivado 

Síntomas

El test de conectividad por tnsnames desde el Cliente es satisfactorio.

Al intentar conectarse mediante ODBC desde Business Object pasando por el cliente de Oracle se produce el siguiente error:

DBD: Specified driver could not be loaded due to system error  1114 (Oracle en OraClient11g_home1).

Se buscó errores en el Event Viewer de Windows y no se encontraron errores reportados.

Se reemplazaron librerías mfc71.dll, msvcrt.dll and msvcr71.dlldesde C:\Windows\System32 hacia Oracle_Home.

Limpieza de la instalación:

Se eliminó el ODBC actualmente utilizado.

Se desinstaló el cliente 11.2.0.3.

Se limpió la instalación, eliminación de registros en el registro del sistema, eliminación del home en el Oracle Inventory, eliminación de los archivos en el Oracle_Home.

Se reinició la maquina.

Se instaló el cliente 11.2.0.1 32bits. con Administrador Local.

La instalación se realiza sin problemas.

El problema aún persistía.

Solución

Se hizo nuevamente la limpieza de la instalación del cliente 11.2.0.1.

Una vez limpiada la instalación del anterior cliente 11.2.0.1, se procedió a instalar el cliente 10.2.0.1 32bits (10201_client_win32) con usuario Administrador Local.


Se reinició la maquina.

La conexión Business Object – ODBC Oracle Client funcionó correctamente.
Facebooktwitterlinkedinmailby feather
7
Jun

III Congreso Informatico en Cobán

El día viernes 31 de mayo y sabado 1 de junio se celebró en Cobán, Alta Verapaz, el tercer congreso informático de la universidad Mariano Galvez, en el cual tuve la oportunidad de compartir con Anibal García, un gran amigo con el que he participado en otros eventos de Oracle; Gloria Alvarez, una talentosa mujer que demuestra con éxito ser de mente fresca;  y Javier Ogarrio joven prometedor de Guatemala con experiencia laboral en Microsoft y actualmente trabajando para Nokia.

Esta actividad fue realizada en el Hotel Alcazar de Doña Victoria, situada en la zona 1 de Cobán.

Las conferencias impartidas fueron las siguientes:

Gloria Alvarez: Encontrando tu pasión
Anibal García: Estrategia de Indices

Deiby Gómez: Arquitectura Orientada a Servicios

Javier Ogarrio: Desarrollo Web y Movil

Agradezco mucho a la Universidad Mariano Galvez con sede en Cobán por la invitación a tan prestigioso evento y espero seguir compartiendo conocimiento en eventos futuros.

Facebooktwitterlinkedinmailby feather
6
Jun

DATUM & Oracle: SOA/BPM

El 10 de abril del 2013 se llevó a cabo uno de los eventos más importantes de oracle en Guatemala, organizado por la empresa DATUM S.A. y apoyado por Oracle Corporation. Dicho evento trató el tema de la agilidad empresarial y las soluciones de SOA  y BPM.
 
Se realizó en el Hotel InterContinental situado en la zona 10 capitalina de Guatemala y contó con conferencistas como Christian Medina quien habló sobre BPM, Deiby Gómez quien tuvo a su cargo la demostración de SOA y Rafael Cordón quien quien expuso los conceptos de SOA.
 
A continuación la invitación que Oracle envió:
 
 
Algunas fotografías del evento:
 
 
 
 
La conferencia de Christian Medina (Territory Manager Fussion Middleware) sobre BPM:
 
Pantalla completa:
 
906584_563746530313448_1914453325_o 892160_563708510317250_966148799_o
Facebooktwitterlinkedinmailby feather
5
Jun

extend/create datafile Single Instance vs Exadata

En mi preparación para someterme al examen de  1Z0-027 Oracle Exadata Database Machine X3 Administration, encontré un documento en el que resaltaba lo siguiente:
“With Exadata storage, the create/extend tablespace operation is executed more efficiently. Instead of formatting empty blocks in database server memory and writing them to storage, a single iDB command is sent to Exadata Storage Server instructing it to format the blocks. Database server memory usage is reduced and I/O associated with the creation and formatting of the database blocks is eliminated with Exadata storage.”

Me llamó mucho la atención el hecho que una creación y/o extensión de un datafile implicase formatear bloques en blanco y luego escribirlos a disco. La primera impresión que me dio fue que se referían a bloques de oracle. ¿Recuerdan el mapeo entre estructuras físicas y lógicas en oracle?, si ya no lo recuerdan, les dejo la siguiente imagen.



Bueno, no me quedé con la curiosidad y extendí un datafile desde 250M hasta 8G y mientras el proceso avanzaba  vi si los bloques en el SGA cambiaban, no vi nada extraño.

Luego observé todas las estructuras del SGA y su espacio utilizado y libre pensando en que quizás esos bloques formateados en blanco eran creados en otra estructura diferente, tampoco vi nada extraño, todas las estructuras se mantuvieron con los mismo megas mientras el proceso de extensión del datafile se realizaba.

Hasta aquí ya estaba dudando de la documentación de Oracle, pensé que ese párrafo que había leído no era correcto, sin embargo, fiel a oracle y a su buen funcionamiento comprobado y asegurado :), descarté esa idea y se me ocurrió que quizás no era memoria de la base de datos la que era utilizada, sino la del propio servidor, entonces volví a realizar el proceso pero ahora monitoreando la memoria del servidor apoyándome de la herramienta top.

Los recursos del servidor estaban inicialmente como lo muestra la siguiente imagen:

Unos segundos antes que terminara el proceso de extensión del datafile, los recursos del servidor estaban así:



Una vez visto este comportamiento, ya mi curiosidad quedó satisfecha y pude concluir que en efecto, cada creación y/o extendido de un datafile implica consumir recursos de memoria del lado del servidor de la base de datos, y precisamente es esto, una de las características que Exadata ya tiene solucionado, por medio del iDB (intelligent database protocol) se le envía la instrucción de creación y/o extensión del datafile al Exadata Storege Server y él es el encargado de realizar esta operación, de esta manera el Database Server no tiene que ceder su memoria. Por supuesto, la memoria utilizada en el servidor con single instance es proporcional al tamaño en GB que estemos creando o extendiendo el datafile.

Por otro lado, si no somos el DBA de un Exadata y nos toca ganar el pan de cada día administrando un single instance :(, nos queda como lección crear y/o extender nuestros datafiles en un momento donde la base de datos no tenga tanta carga, pues de lo contrario el servidor puede paginear (swapping), degradando el performance. 
Facebooktwitterlinkedinmailby feather