12 mar 2010

Debian Etch + Oracle 10g 10.2.0.1

Si en el anterior tuto contamos como instalar una Oracle XE, en este vamos a explicar paso a paso como instalar una Oracle 10g.
Para ello nos hemos basado en:
http://linux.togaware.com/survivor/Oracle_10g.html
Los problemas que he ido encontrando los iré remarcando porque es la única diferencia respecto a lo que se explica en la parte original.

Recordad que la única dificultad que tiene Oracle es que está orientada 100% a Red Hat, Suse o Asianux, por lo que para Debian teníamos algo más de trabajo (no mucho más).

Pues bien, empecemos.

1. Instalar los paquetes básicos y ajustes iniciales

#apt-get install gcc make binutils libmotif3 lesstif2 rpm libaio1 libdb3
Para sistemas de 64 bits:
#apt-get install ia32-libs libc6-dev-i386 libc6-dev
Oracle coloca los logs en /home/app/oracle/oraInventory/logs/.
Para ello vamos a hacer algunos ajustes para que nuestra Debian "engañe" a Oracle y le haga creer que está en Red Hat.

Creamos los enlaces simbólicos:
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename # Suggested by Giuseppe Sacco
ln -s /etc /etc/rc.d                  # Required for root.sh
2. Descarga de Oracle 10g
Después de registrarnos en Oracle, nos podemos descargar el paquete:
http://download.oracle.com/otn/linux/oracle10g/10201/10201_database_linux32.zip
Descargado el paquete descomprimimos y guardamos en una carpeta temporal.

3. Revisamos una serie de parámetros del system
grep MemTotal /proc/meminfo --> Se necesita algo más de 500MB
grep SwapTotal /proc/meminfo --> Alrededor de 1GB
# dd if=/dev/zero of=swapfile bs=1024 count=1024
# mkswap swapfile
# swapon swapfile
3. Cuentas de usuario
Comprobamos las cuentas que tenemos y según el resultado así debemos generar las cuentas y grupos:
grep oinstall /etc/group
grep dba /etc/group
grep nobody /etc/group
id oracle
id nobody
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/groupadd nobody
/usr/sbin/useradd -m -g oinstall -G dba -p passwd -d /home/oracle oracle
/usr/sbin/useradd -g nobody nobody
mkdir -p /u01/app/oracle --> Necesario para la instalacion
mkdir -p /u02/oradata --> Idem
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u0
4. Revision de parámetros del Kernel
/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep shm
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep ip_local_port_range
Salida:

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 2147483648

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000
Si no coincide, y no se aproxima, debemos editar:  /etc/sysctl.conf

ejecutamos /sbin/sysctl -p para aplicar los cambios.
Añadir las siguientes líneas a /etc/security/limits.conf :
*               soft    nproc   2047
*               hard    nproc   16384
*               soft    nofile  1024
*               hard    nofile  65536
Añadimos (o descomentamos) en /etc/pam.d/login y /etc/pam.d/su

session    required     /lib/security/pam_limits.so
Como estamos usando BASH, añadimos a /etc/profile :

if [ $USER = "oracle" ]; then
      if [ $SHELL = "/bin/ksh" ]; then
            ulimit -p 16384
            ulimit -n 65536
      else
            ulimit -u 16384 -n 65536
      fi
fi
4. Config de usuario Oracle
Nos logueamos como usurio oracle, y añadimos al final del  /.bash_profile
umask 022
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=test
ORA_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1
export ORACLE_BASE ORACLE_SID ORA_HOME
unset ORACLE_HOME
unset TNS_ADMIN
5. Arrancar el Instalador de Oracle
Nos logamos con el usuario con el que arrancamos el entorno gráfico. Y liberamos el servidor X:
xhost +
En caso de erro quizá sea necesario:
export DISPLAY=:0
xhost +
Después login con oracle
su -
password:
#su oracle
oracle$cd /tmp/Disk1; ./runInstaller -ignoreSysPrereqs
Hacemos la instalación que más rabia nos dé. Y si nos pide algo, debemos tener una consola logueados como root para instalar lo necesario. Lo más normal que nos pase:
- nos falte algún paquete --> apt-get install paq.deb
- No encuentre algún archivo --> find y después algún ln -s
- Falte alguna ruta en el PATH --> ln -s ejecutable_que_falta /bin/nom_ejec

6. Configurando Oracle 10g para el arranque

Para arrancar y parar Oracle 10g usando "wajig start|stop" commands, necesitamos editar /etc/oratab , y crear el script de arranque en /etc/init.d.
/etc/oratab :

test1:/u01/app/oracle/product/10.1.0/db_1:Y
test2:/u01/app/oracle/product/10.1.0/db_1:Y
test3:/u01/app/oracle/product/10.1.0/db_1:N
debian:~# su oracle
$  cat /etc/init.d/oracle
#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle listener and instance

#ORA_HOME="/u01/app/oracle/oracle/product/10.1.0/Db\_1"
ORA_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1
ORA_OWNR=oracle

# if the executables do not exist -- display error

if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
        echo "Oracle startup: cannot start"
        exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
    start)
        # Oracle listener and instance startup
        echo -n "Starting Oracle: "
        su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
        su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
        su - $ORA_OWNR -c "$ORA_HOME/bin/emctl start dbconsole"
        touch /var/lock/subsys/oracle
        echo "OK"
        ;;
    stop)
        # Oracle listener and instance shutdown
        echo -n "Shutdown Oracle: "
        su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
        su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
        su - $ORA_OWNR -c "$ORA_HOME/bin/emctl stop dbconsole"
        rm -f /var/lock/subsys/oracle
        echo "OK"
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $0 start|stop|restart|reload"
        exit 1
esac
exit 0
Para que el script esté disponible a la hora de arrancar "wajig start|stop oracle" :
ln -s /etc/init.d/oracle /etc/rc.d/rc2.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc4.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc0.d/K01oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc6.d/K01oracle
Para parar y arrancar:
wajig start oracle
wajig stop oracle
Para administrar con el Enterprise Manager de Oracle 10g:
http://localhost:1158/em
Posibles cosas a retocar:
$ vim /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart
#ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
ORACLE_HOME_LISTNER=/u01/app/oracle/oracle/product/10.2.0/db_1
Read More

9 mar 2010

Debian etch + VirtualPC 2007 + OracleXE

MOTIVACION
La ventaja de usar máquinas virtuales es increíble, y difícilmente enumerables. Habrá grandes detractores y también quien lo defiendan a capa y espada. En nuestro caso nos ha servido para tener un servidor Debian Etch con una base de datos OracleXE.

1. Instalar Virtual PC 2007
En mi caso lo he hecho desde un Windows 7 Ultimate x64, con una máquina virtual de 3GB de memoria Ram y Debian x86.

2. Debian Net Install
Descargamos la ISO de la versión de instalación por red. La asociamos a la máquina virtual que hemos creado y arrancamos la misma.

3. Instalación Base de Debian
Quien consiga hacer una instalación completa, pues se ahorrará mucho tiempo, quien no, pues tendrá que hacer una instalación mínima.
En mi caso pude hacerlo añadiendo la cadena:
noapic nolapic noreplace-paravirt
E
sto se hace como opciones de instalación. Importante también si se quiere aceptar varias resoluciones modificar la opcion 
vga=791


Una vez el sistema arranca con la instalación, puede haber un problema con la configuración de apt, sobre todo si como en mi caso estás detrás de un proxy, para eso, lo que hice es en la opción de configuración del apt, saltarme ese paso, y hacer una instalación mínima.


Una vez hecho todo lo posible y nos pida reiniciar, lo reiniciamos sin problemas.


4. Añadimos configuración de red
Cómo nos hemos saltado el paso de configurar apt, lo primero que hacemos es configurar la red.
#vim /etc/network/interfaces


añadimos la configuración particular de cada persona. En mi caso debo configurar el proxy:


#vim /etc/bash.bashrc
.....
export http_proxy=....
export ftp_proxy=....


5. Añadir repositorios
Buscamos en la web los repositorios de nuestra distro y los añadimos a:
#vim /etc/apt/sources.list
#apt-get update


5. Entorno grafico
Al que le guste el entorno gráfico, y haya añadido los repositorios correctamente, puede instalarlo:
#apt-get install xserver-xorg gnome gdm


Aqui hay un problema con el Virtual PC, y es que no acepta una profundidad de colores de más de 16 bits, por ello hay que editar el archivo de config:
#vi /etc/X11/xorg.conf
....
Depth=16
....


El resto de cosas debería dejarse igual excepto las secciones de Depth=24 que deberían ser eliminadas. 


aun así en mi caso me daba un error con las fuentes que solucioné:
#apt-get install xfonts-base


Lo último es editar el GRUB y añadir al arranque vga=791
Reiniciamos.


6. Instalacion OracleXE
Es parte tampoco es demasiado complicada, siempre que funcione el repositorio de Oracle. Para ello añadimos:
#vi /etc/apt/sources.list

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

# wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle
# apt-key add RPM-GPG-KEY-oracle
# apt-get update
# apt-get install oracle-xe
# /etc/init.d/oracle-xe configure

Oracle Database 10g Express Edition Configuration
-------------------------------------------------
Specify the HTTP port that will be used for Oracle Application Express [8080]:

Specify a port that will be used for the database listener [1521]:

Specify a password to be used for database accounts.  Note that the same
password will be used for SYS and SYSTEM.  Oracle recommends the use of
different passwords for each database account.  This can be done after
initial configuration:

Confirm the password:   (* make sure you remember this password *)

Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]: y

Starting Oracle Net Listener...Done
Configuring Database...Done
Starting Oracle Database 10g Express Edition Instance...Done
Installation Completed Successfully.
To access the Database Home Page go to "http://127.0.0.1:8080/apex"
#
En el navegadorhttp://127.0.0.1:8080/apex, usuario system y pass la que hayamos puesto en la configuracion.

7. Manejar OracleXE
Para ello se hace:
/etc/init.d/oracle-xe start|stop -->arranca y para el servicio
/etc/init.d/oracle-xe restart --> reinicia el servicio
/etc/init.d/oracle-xe enable --> Primer paso habilitar el servicio.

Y hasta aquí, esta pequeña guia.


Read More