Feed on Posts or Comments

OSS Fernando José on 08 Dec 2009

Ubuntu Netboot con PXE (o Instalar Ubuntu por red sin CD).

Esto aplica a la versión 9.10 que es la que estoy usando en este momento. El problema es simple: tengo un aula donde algunos CDROMs no terminan de funcionar ( o serán los CDs). En fin que he perdido la paciencia con esto y decidí montarla por red, la verdad es que es fácil… una vez que se sabe.

En un ordenador que ya tenga instalado ubuntu y con acceso a los repositorios instalamos dhcp, tftpf y el servidor apache.

sudo aptitude install tftpd-hpa
sudo aptitude install dhcp3-server
sudo aptitude install apache2

editamos el archivo /etc/default/tftpd-hpa y cambiamos la línea de RUN_DAEMON por yes, si queremos podemos cambiar el directorio de servicio de tftpd.

#Defaults for tftpd-hpa
RUN_DAEMON=”yes”
OPTIONS=”-l -s /tftpboot”

Hay un pequeño bug si cambias el directorio de destino, tendrás que quitar la linea que hace referencia al servicio por inet en /etc/inetd.conf.

Con el paso anterior esta listo el tftp luego necesitaremom dhcp. Editamos el archivo  /etc/dhcp3/dhcpd.conf. Y al final creamos una nueva subred… sé que esto se puede hacer mejor y espero estudiarlo con más detalle.

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
filename “pxelinux.0″;
next-server 192.168.1.1;
host laptop {
hardware ethernet 00:aa:00:aa:00:aa;
fixed-address 192.168.1.11;
}
}

Los servicios se levantan y bajan de /etc/rc.d/init.d/

sudo /etc/init.d/dhcp3-server stop
sudo /etc/init.d/dhcp3-server stop
sudo /etc/init.d/dhcp3-server stop
sudo /etc/init.d/dhcp3-server stop

Si existe algún problema se dará durante el inicio del servicio, para comprobar que el tftpd-hpa está arriba podemos hacer un “ps aux | grep tftp”. Si el servidor dhcp3 no se puede levantar pues se mira en el syslog como dirá el mensaje de error “tail /var/log/syslog”. Yo tuve un pequeño problema  ya que mi ordenador tiene varias tarjetas de red, tuve que editar el archivo /etc/default/dhcp3-server y decile que utilice el eth0 para el dhcp.

INTERFACES=”eth0″

Listo, ahora el proceso. Cuando se inicie el servidor en el/la BIOS casi siempre existe una opción de inicio por red, si le damos a esa opción busca un servidor DHCP que le diga que hacer, en este caso le pasamos la direccion física (MAC en hardware ethernet) y el dhcp se encarga de darnos del servidor ( next-server ) el archivo de netboot (pxelinux.0). Y ya está, solo falta poner el software de netboot y luego el cd disponible via web para que se pueda realizar la instalación en remoto.

Descargamos el CD de instalación alternativo de Ubuntu ( el Alternate Install CD no el Desktop ): http://releases.ubuntu.com/karmic

Creamos un directorio, montamos la descarga y copiamos los archivos tanto al directorio del tft como al apache.

sudo mkdir /tmp/910Alt
sudo mount -o loop ubuntu-9.10-alternate-i386.iso /tmp/910Alt
cd /tmp/910Alt
sudo cp -r /tmp/910Alt/install/netboot/* /tftpboot/
sudo mkdir /var/www/910Alt
sudo cp /tmp/910Alt/* /var/www/910Alt

Si todo va bien cuando lancemos la instalación por red se nos presentara una pantalla de instalación, seguimos todos los pasos hasta el final cuando nos pregunte por el mirror para descargar los paquetes escogemos la primera opción y le damos la direccion del servidor y luego la cadena 910Alt. Asi 192.168.1.1, directorio (quitamos ubuntu) y ponemos 910Alt. Como proxy lo dejamos en blanco.

Una vez finalizada la instalación es mejor quitar las referencias en el /etc/apt/sources.list al servidor porque solo da problemas y es mejor establecer la descarga desde internet, si no se dispone de mucho ancho de banda o son muchos ordenadores y se quiere optimar el uso del canal se puede utilizar apt-cacher que me ha dado muy buen resultado y su configuración es mínima.

Este metodo de instalación también me ha servido para darle nueva vida a un portátil con unos años encima, ahora tiene una instalación mínima y un web browser.

Saludos

FJA

Enlaces Utilizados:
http://javcasta.wordpress.com/2009/11/18/linux-ubuntu-9-10-instalacion-de-un-servidor-tftp/
http://linuxadministration.us/2009/11/16/ubuntu-9-10-pxe-boot/
https://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install
http://syslinux.zytor.com/wiki/index.php/PXELINUX
https://help.ubuntu.com/community/Installation/Netboot
https://bugs.launchpad.net/ubuntu/+source/tftp-hpa/+bug/227881
http://ubuntuforums.org/archive/index.php/t-1112209.html

Oracle Fernando José on 08 Dec 2009

Artículo de APEX en “Asterisco Mas”

En “Asterisco Mas” el boletín de la Comunidad Oracle Hispana han publicado un artículo mio de introducción a APEX. Un poco de autobombo no viene mal.

Si les interesa está en la web de la comunidad:

http://comunidadoraclehispana.ning.com/

Slds

FJA

Oracle Fernando José on 23 Nov 2009

Oracle 11g (11.1.0.6.0) problema con OEM CPU al 100% o muy alto

Update!

Esto tiene una solución mas sencilla que la anterior. Simplemente hay que seguir los siguientes pasos:

  • Bajar la consola como el usario oracle con el comando: emctl stop dbconsole.
  • Conectarse a la base de datos con sqplus como el usario SYSMAN y ejecutar el comando: execute MGMT_PAF_UTL.STOP_DAEMON;
  • Conectarse a la base de datos con sqplus como el usario SYSMAN ejecutar el comando: execute MGMT_PAF_UTL.START_DAEMON;
  • Levantamos la consola como el usuario oracle con el comando: emctl start dbconsole.

El primer comentario lo expone claramente, pero muchas personas me preguntan lo mismo, asi que lo documento aquí.

Links:
http://forums.oracle.com/forums/thread.jspa?messageID=2207494&#2207494
http://edin.no-ip.com/content/100-cpu-usage-overhead-running-em-dbconsole-11g-debian-sid

—-> old post:

Si tienes una instalación nueva de 11g el CPU se pone al 100% por un problema con un trabajo de mantenimiento. La query siguiente pone el CPU a tope.

SELECT EXECUTION_ID, STATUS, STATUS_DETAIL
FROM MGMT_JOB_EXEC_SUMMARY
WHERE JOB_ID = :B3 AND TARGET_LIST_INDEX = :B2 AND EXPECTED_START_TIME = :B1

Al parecer un workaround simple es borrar el trabajo PROVISIONING DAEMON de la tabla sysman.mgmt_job. Por lo pronto el bug se presenta sobre entornos con máquinas virtuales.

La solución de los foros de OTN:

bajar el oem ( emctl stop dbconsole)

create table mgmt_job_bad as select * from sysman.mgmt_job where job_name = ‘PROVISIONING DAEMON’;
delete from sysman.mgmt_job where job_name = ‘PROVISIONING DAEMON’;
commit;

subir el oem (emctl start dbconsole)

Por lo pronto este workaround y a esperar el parche.

En este sitio... Fernando José on 10 Nov 2009

InformoPost

Un pequeño post informativo, este mes (Noviembre 2009) estoy muy ocupado. Lamento si no puedo responder los comentarios rápidamente. En Diciembre regreso con fuerza al mundo online.
Slds

FJA

Personal Fernando José on 20 Sep 2009

Primer boletín de la Comunidad Oracle Hispana

Me es muy grato informar de la publicación del primer boletín de la Comunidad Oracle Hispana. La primera publicación es una presentación del trabajo, pero el próximo va de BI y el segundo de herramientas de desarrollo.

Como “disclaimer” tengo que decir que salgo en el boletín ( gracias Fernando Garcia ), con este mensaje también anuncio mire re-re-regreso al blogging (LOL) como siempre.

El boletín está en esta URL.

http://rapidshare.com/files/282728582/asterisco_mas_2009_1.pdf

Slds

FJA

Oracle Fernando José on 22 Jun 2009

Oracle Instant Client + Ubuntu

Probado en un 9.04 64 bits. Asumo que será similar en otras versiones.

El instant client se descarga de la red de tecnologia de Oracle.

Se necesita libaio para la versión 11, para la versión 10 no es necesario.

apt-get install libaio1

A partir de este punto existen dos posibles formas de instalar el instant client.

1) Transformando los paquetes RPM en DEB con alien.

apt-get install alien

alien oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm
alien oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
alien oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm

dpkg -i oracle-instantclient11.1-basic_11.1.0.7.0-2_i386.deb oracle-instantclient11.1-devel_11.1.0.7.0-2_i386.deb  oracle-instantclient11.1-sqlplus_11.1.0.7.0-2_i386.deb

2) Descomprimiento los ZIPs y declarando las variables de entorno.

sudo mkdir -p /opt/oracle/
cd /opt/oracle/
sudo unzip instantclient-basic-linux32-11.1.0.7.zip
sudo unzip instantclient-jdbc-linux32-11.1.0.7.zip
sudo unzip instantclient-sdk-linux32-11.1.0.7.zip
sudo unzip instantclient-sqlplus-linux32-11.1.0.7.zip
sudo ln -s /opt/oracle/instantclient_11_1 client
cd /home/oracle/client /opt/oracle/
sudo ln -s  libclntsh.so.11.1 libclntsh.so
sudo ln -s  libocci.so.11.1 libocci.so

export ORACLE_HOME=/opt/oracle/client
export PATH=$ORACLE_HOME/client:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/client:$LD_LIBRARY_PATH
export TNS_ADMIN=<directorio tnsnames.ora>

Para probarlo podemos utilizar el SQLPLUS contra un servidor disponible.

sqlplus <user>/<pass>@<host>:<puerto>/<servicio>

Slds

FJAProbado en un 9.04 64 bits. Asumo que será similar en otras versiones.

El instant client se descarga de la red de tecnologia de Oracle.

Se necesita libaio para la versión 11, para la versión 10 no es necesario.

apt-get install libaio1

A partir de este punto existen dos posibles formas de instalar el instant client.

1) Transformando los paquetes RPM en DEB con alien.

apt-get install alien

alien oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm
alien oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
alien oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm

dpkg -i oracle-instantclient11.1-basic_11.1.0.7.0-2_i386.deb oracle-instantclient11.1-devel_11.1.0.7.0-2_i386.deb  oracle-instantclient11.1-sqlplus_11.1.0.7.0-2_i386.deb

2) Descomprimiento los ZIPs y declarando las variables de entorno.

sudo mkdir -p /opt/oracle/
cd /opt/oracle/
sudo unzip instantclient-basic-linux32-11.1.0.7.zip
sudo unzip instantclient-jdbc-linux32-11.1.0.7.zip
sudo unzip instantclient-sdk-linux32-11.1.0.7.zip
sudo unzip instantclient-sqlplus-linux32-11.1.0.7.zip
sudo ln -s /opt/oracle/instantclient_11_1 client
cd /home/oracle/client
sudo ln -s  libclntsh.so.11.1 libclntsh.s
sudo ln -s  libocci.so.11.1 libocci.so

export ORACLE_HOME=/opt/oracle/client
export PATH=$ORACLE_HOME/client:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/client:$LD_LIBRARY_PATH
export TNS_ADMIN=<directorio tnsnames.ora>

Para probarlo podemos utilizar el SQLPLUS contra un servidor disponible.

sqlplus <user>/<pass>@<host>:<puerto>/<servicio>

Slds

FJA

DB & Oracle Fernando José on 08 Feb 2009

ApEx, OracleXe en Servidor Dedicado ( Desarrollo Oracle Económico?)

Versión — 0001

apex_logo

Estaba buscando una forma económica de desarrollar con Oracle, probé con Amazon Web Services (AWS) pero salía la cuenta muy alta ( alrededor de 100 USD mes ).  Ahora encontré un servidor dedicado por 20 EUR al mes ( económico ) en la gama baja de ovh.es, completamos el cuadro con Oracle XE y Apex.

Limitaciones: La base de datos XE está limitada a un procesador y 4GB que es más que suficiente para una aplicación orientada a una PYME. El servidor de entrada de ovh.es es un Celeron con 1GB en RAM, nuevamente suficiente para una PYME.

Resumen: Contratamos un servidor en Kemsirve con Ubuntu ( gama baja de ovh.es ),  instalamos Oracle XE para Ubuntu( Base de datos ), y luego instalamos Oracle ApEx ( Entorno RAD para Oracle ).

Tutorial:

Después de contratar un servidor en Kemsirve, llegará un mail con instrucciones para conectarse como root al servidor contratado. Para conectarse al servidor se puede utilizar putty si se está en windows o ssh directamente si se está en un servidor linux. Una vez conectado como root es bueno configurar unas pocas reglas de iptables ya que el servidor Ubunto no tendrá un muro de fuego por defecto, especialmente para no exponer la base de datos directamente al internet ( muy mala idea ).

iptables -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp –dport 8080 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -j ACCEPT
iptables -A INPUT -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -I INPUT 5 -m limit –limit 5/min -j LOG –log-prefix “iptables denied: ” –log-level 7
iptables -A INPUT -i eth0 -j DROP

Las anteriores son reglas que permiten el acceso a los puertos 22,80 y 8080 (ssh, 80 y 8080) , a hacer ping y bloquean todo el resto del tráfico.

Una vez que esto está listo se puede instalar Oracle XE, como root editamos el archivo /etc/apt/sources.list ( se puede usar el comando nano si no se sabe usar en vi ) y agregamos esto al final:

#oracle repos
 deb http://oss.oracle.com/debian unstable main non-free

Esto incluye el repositorio de Oracle en la lista de aquellos que se puede utilizar para instalar paquetes. Luego instalamos el Oracle XE con los siguientes comandos como root ( el servidor de Kemsirve usar root, si es un Ubuntu se puede usar el comando sudo).

#>wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle  -O- | sudo apt-key add -
#>apt-get update
#>apt-get install oracle-xe

Después de unos minutos está instalado el software pero no tenemos la base todavia, para  instalar y configurar la base como root ponermos el comando:

#>/etc/init.d/oracle-xe configure

Durante el procesos de configuración se nos solicitará la clave para los usuarios administradores de la base SYS y SYSTEM ( recordarla! ), luego nos preguntará si queremos iniciar el servicio de la base de datos y listener cuando el servidor se arranque. El proceso crear la una base de datos, configura el listener y establece los archivos de necesarios para iniciar los servicios ( ya se que no hay servicios en los debian!).

Oracle XE ya viene con una versión de ApEx pero es una versión anterior para actualizarla debemos descargarla de la red de tecnología de oracle (otn.oracle.com)  y tener una cuenta activa, el registro es gratuito pero es un paso indispensable para continuar. Una vez que se tenga la cuenta podemos proceder con la descarga desde el servidor utilizando lynx ( recurso obtenido de la página web del Pythian Group ), asi como oracle:

#>su – oracle – para pasar a ser el usuario oracle
oracle> cd   — para regresar al home de oracle
~oracle> rm .lynx_cookies — en caso de existir este archivo
~oracle> vi  lynx.cfg –se puede utilizar nano

Añadimos las siguiente líneas archivo al editarlo

SET_COOKIES:TRUE
PERSISTENT_COOKIES:TRUE
ACCEPT_ALL_COOKIES:TRUE
COOKIE_FILE:~/.lynx_cookies
INCLUDE:/etc/lynx.cfg

Luego llamamos a lynx ( navegador web en consola (que locura!)).

~oracle> lynx -cfg=./lynx.cfg http://download.oracle.com/otn/java/appexpress/apex_3.1.2.zip

Se nos presentará una pantalla para introducir el usuario y contraseña de la red tecnológica de oracle, luego aplastamos botón derecho o intro para descargar el archivo en el mismo directorio en el cual llamamos a la aplicación. Tomá unos pocos minutos es una descarga de alrededor de 90MB.

El instalador de Oracle para debian y todos sus primos está bien, sin embargo no declara las variables de entorno para poder usar la base de datos XE, es por ello que creamos  como oracle ( ojo seguimos como oracle ) el archivo .bash_profile.

~oracle> vi .bash profile– en caso de existir este archivo

Agregamos estas líneas:

#!/bin/bash
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
ORACLE_SID=XE
export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin
export PATH

Luego cargamos estas variables de entorno que nos permitirán usar el software de la base de datos.

~oracle> . .bash_profile 
–para cargar el perfil en la sesión actual, no necesario si se realizan otras conexiones.
~oracle> env | grep ORACLE 
–para valirdar que el ORACLE_HOME y ORACLE_SID esten presentes

~oracle> env | grep PATH
–para valirdar que el PATH apunte a ORACLE_HOME/bin

Una vez establecidas estas variables se debe descomprimir el software que descargamos en algún lugar, yo lo pongo junto a los binarios de la base:

~oracle> cd    –para regresar al home de oracle
>>oracle>mv apex_3.1.2.zip ./app/oracle/product/
>>oracle>cd app/oracle/product/
>>oracle>unzip apex_3.1.2.zip

esto crea un directorio que se llama “apex”.

>>oracle>cd apex
>>oracle>sqplus sys@xe as sysdba – para ingresar a la base como sys
—> ingresamos el password
SQL> @apexins SYSAUX SYSAUX TEMP /i/ –este comando instala apex

Después de unos 30 minutos el proceso debe terminar sin errores, inmediatamente sale al sistema para debemos configurar todavia la cuenta de administrador y el puerto del ApEx, para ello como oracle:

~oracle>sqplus sys@xe as sysdba
– para ingresar a la base como sys
SQL>@apxchpwd
– para cambiar la password del usuario “admin” de apex
SQL>@apex_epg_config  /usr/lib/oracle/xe/app/oracle/product
– para configurar el plsql gateway (la web)
SQL>ALTER USER ANONYMOUS ACCOUNT UNLOCK;
–desbloquea el usuario anónimo (para la web)

SQL>@apxldimg.sql /usr/lib/oracle/xe/app/oracle/product
–para actualizar la imágenes de ApEx
SQL> SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;
–para validar en que puerto está configurado el gateway ( tiene que ser 8080)
.
SQL>EXEC DBMS_XDB.SETHTTPPORT(8080);
–para establecer el puerto (en caso de que no sea correcto).

Todos estos pasos se encuentran en la guía de instalación de Oracle ApEx aunque un poco más dispersos. Para ingresar a apex ponemos la dirección del servidor http://miservidor:8080/apex , para ingresar a la consola de administraciónhttp://miservidor:8080/apex/apex_admin.

Ahora bien con esto termino la versión 00001 de esta guía, para poder realizar una aplicación se ingresa a la consola con administrador se crea un workspace de desarrrollo se hace logout y se ingresa con el usuario de desarrollo y el nombre del workspace ( hoy ya me cansé pongo pantallas de eso luego).

Como podrá intuir cualquier paranoico ( yo soy uno ) esta configuración no es extremadamente segura ( depende de que tan seguro sea el oracle ), se puede utilizar un servidor web para redireccionar la información de ApEx eso también espero descubrir como.

Finalmente el producto no está completo sin poder generar PDFs para descargar documentos imprimibles, sé que eso se puede realizar redireccionando datos a un Tomcat y utilizando unas cuantos servlets, ya que la solución de Oracle para ello es de pago, eso también espero adjuntarlo a este tutorial.

Espero que sea de utilidad.

Slds

FJA

Oracle & Personal Fernando José on 17 Dec 2008

Redes sociales, comunidades alrededor de Oracle

Bueno esto de estar en varias redes sociales al mismo tiempo es un lio terrible. Redes sociales orientadas al Castellano ( Español ) y (AND)  Oracle no exisitian que conociera y hace poco me invitaron a una en NING, es muy parecida a Oracle Community que la fundo hace no mucho Eddie Awad y ya tiene 3200 miembros. Estas redes sociales estan fuera de Oracle y son esfuerzos de particulares, Oracle quizo hacer su propia Web 2.0 con Oracle MIX y un wiki de Oracle .

Creo que las redes sociales tiene un problema fundamental cuando atacan un tópico tan amplio como Oracle que puede tener muchas derivaciones. Al final la dispersión de temas hace que sea mas el ruido que el beneficio que le puedes sacar a una red social, eso me pasa con MIX y el WIKI ( que de wiki tiene poco ).

La red de Oracle Community tiene el agravante que ingresa gente muy diversa y muchos de ellos están muy  nuevos en temas de redes sociales lo que hace que la discusión baje muchisimo de nivel. Además que llegas a no tener ninguna relación con nadie, es como ir de turista a cualquier lugar lleno de otros turistas al final nadie se entera de nada.

Creo que la red de Communidada Oracle Hispana va por un buen camino, al menos esta más focalizada. Va a un mercado que es relativamente común ( Latinoamerica – España ) permitiendo que conozcas gente con la cual realizar negocios, contactos o compartir información y conocimiento … que es para lo que una red social debe servir.  Veo que tiene la verticalidad suficiente, ahora sería interesante que salga a delante que ese ya es otro tema.

Buscando otras comunidades encontré grupos en lengua castellana tanto en yahoo como en google, muchos orientados a la certificiacion, otros a desarrollo y unos pocos a DBA.  Voy a inscribirme en uno a ver si me aceptan =).

Bueno me queda invitarlos a Oracle Community a ver si se puede organizar algo interesante por esa red, esta muy orientado al Latinoamericano-Argentino (creo que el Latinoamericano se debe reconocer como lengua derivada del Castellano ) pero no creo que nadie se ofenda.


Ver mi página en Comunidad Oracle Hispana

También estoy en Oracle Community

View my page on Oracle Community

Y en Xing, y en LinkedIn y en ….
¿ya comente que estar en las redes sociales es un lio no?

DB & Oracle Fernando José on 28 Oct 2008

Listener lento, conexiones lentas (OUL 4/5, VMware)

Bueno este es solo un recordatorio.

Si las conexiones se ponen muy lentas, y el listener demora mucho en cualquier acción lo más seguro es que sea un problema de resolución de nombre por DNS. En los linux verificar que el nameserver dentro del /etc/resolv.conf apunta a una dirección IP válida.

FJA

DB & Oracle Fernando José on 08 Oct 2008

Simulando discos ASM

Para probar las nuevas características de la versión 11g necesito unos discos ASM, para simularlos la forma más sencilla es usar el comando dd de Linux para crear archivos que simulen discos o particiones limpias, luego enlazarlos a dispositivos loop. Ésta es una configuración de pruebas y no debe ser nunca puesta en producción, me voy a basar en un artículo de

Como root creamos un directorio y  4 archivos de 200MB que utilizaremos como discos.

mkdir /asmdisk
dd if=/dev/zero of=/asmdisk/disk1 bs=1024k count=200
dd if=/dev/zero of=/asmdisk/disk2 bs=1024k count=200
dd if=/dev/zero of=/asmdisk/disk3 bs=1024k count=200
dd if=/dev/zero of=/asmdisk/disk4 bs=1024k count=200
ls -lah /asmdisk/

Atención con la k después de 1024 caso contrario los discos sería de 200KB y no de 200MB. Después enlazamos los discos a dispositivos de loopback.

/sbin/losetup /dev/loop1 /asmdisk/disk1
/sbin/losetup /dev/loop2 /asmdisk/disk2
/sbin/losetup /dev/loop3 /asmdisk/disk3
/sbin/losetup /dev/loop4 /asmdisk/disk4

Llegado a este punto se puede o bien instalar ASMLib para gestionar los “discos”, o bien enlazar los archivos a dispositivos RAW. Además si se tiene problemas y se requieren aún más dispositivos pueden utilizar este tutorial de la base de conocimientos de Red Hat para superar el límite de dispositivos loopback.  Voy a probar con RAW aunque está desfazado y no debe ser usando en producción, lo correcto es instalar ASMLib para gestionar los discos ( si no me creen pongan man raw en un Linux); Además se dice (aunque no he encontrado pruebas de rendimient) que ASMLib es más rápido para configuraciones ASM que RAW. Relizamos como root:

raw /dev/raw/raw1 /dev/loop1
raw /dev/raw/raw2 /dev/loop2
raw /dev/raw/raw3 /dev/loop3
raw /dev/raw/raw4 /dev/loop4

Debemos cambiar los permisos, como root:

chown oracle:oinstall /asmdisk/disk*
chown oracle:oinstall /dev/raw/raw*

Se deben poner todos los comandos de creación antes utilizados de los dispositivos además del cambio de permisos en /etc/rc.local si se piensa reiniciar el servidor para no perder la configuracion.

Estamos listos, es hora de configurar la instancia ASM. Lo más sencillo es lanzar el dbca y hacer que el asistente configure la instancia. como el usuario dueño del software de  Oracle:

dbca
Se inicia la applicacion java, escogemos la opción ->  Configure Automatic Storage Management
Se nos pide ejecutar como root: $ORACLE_HOME/bin/localconfig add para configurar los CSS. (lo hacemos)
Nos piden asignar la clave del usuario SYS.

Finalmente creamos un nuevo disco con dos de los dispositivos existentes, se nos presentan los dispositivos raw disponibles como se aprecia en la gráfica.

Asignamos un nombre al Disk Group (yo le he puesto prueba1), le damos redundancia normal y asignamos dos o mas dispositivos RAW disponibles.

Para validar su uso podemos crear un  tablespace en el nuevo disco ASM, como un usario administrador en sqlplus:

SQL> create tablespace tbsp1 datafile ‘+PRUEBA1′ size 100M;
Tablespace created.

Creamos un usuario, le damos permisos y creamos una tabla relativamente grande (en proporción al tablespace) en nuestro tablespace sobre ASM. Como un usuario administrador en sqlplus:

SQL> create user dbup1 identified by dbpu1 default tablespace tbsp1 temporary tablespace temp;
User created.
SQL> grant resource, connect to dbup1;
Grant succeeded.
SQL> create table dbup1.cust as select * from sh.customers;
Table created.

Y estamos listos, tenemos un tablespace montado en un diskgroup ASM con dos discos utilizados en redundacia normal y dos mas como candidatos. Con esta configuración ya podemos jugar con ASM, si se quiere pasar de RAW a ASMLib existe información en este artículo en ORACLE-BASE de Tim Hall además existe una referencia a los comandos de ASM en el mismo sitio. Este es un paso previo a probar nuevas características de ASM en 11g de lo que espero escribir en breve.

Como ejercicio se podría intentar agregar un disco, remover un disco, cambiar los permisos de un disco para que ASM no lo pueda ver y mirar que sucede con el diskgroup, etc.

Saludos… FJA

Next Page »