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/oracleORACLE_HOME_LISTNER=/u01/app/oracle/oracle/product/10.2.0/db_1
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.