Oracle 10.1.0.3 bajo Gentoo
Contents
Paquetes preliminares
Ponemos la variable pic en los use flags del make.conf
emerge -av libaio emerge -av libXtst emerge -av emerge emul-linux-x86-xlibs
Una vez añadido la variable pic en los USE Flags del make.conf, reinstalamos estos paquetes:
emerge glibc binutils app-emulation/emul-linux-x86-baselibs app-emulation/emul-linux-x86-xlibs -av
Software
Del download center de Oracle descargamos la versión de 64 bits. Descomprimimos los ficheros.
gunzip ship.db_Disk*gz for i in ship.db*cpio ; do cpio -idmv < $i ; done ;
Preparación del entorno
export TEMP=/tmp export TMPDIR=/tmp
Parametros de kernel. Editamos el fichero /etc/sysctl.conf y añadimos las siguientes líneas.
kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000
Para coger los parametros ejecutamos
sysctl -p
Creamos el usuario Oracle
groupadd dba groupadd oinstall useradd -c "Propietario del software Oracle" -g oinstall -G dba -d /oracle oracle passwd oracle
Aumentamos los limites del usuario Oracle, en el fichero /etc/security/limits.conf
oracle soft nofile 4096 oracle hard nofile 63536 * soft nproc 2047 * hard nproc 16384
Para que estos parametros se cojan a cada inicio de sesión editamos /etc/profile.d/oracle.sh
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 63536 else ulimit -u 16384 -n 63536 fi ORACLE_BASE=/oracle ORACLE_HOME=/oracle/product/10.1.0.3 ORACLE_SID='EXTRE' ORACLE_TERM=xterm ORACLE_OWNER=oracle TNS_ADMIN=/oracle/product/10.1.0.3/network/admin NLS_LANG=SPANISH_SPAIN.WE8ISO8859P1 ORA_NLS10=/oracle/product/10.1.0.3/nls/data CLASSPATH=/oracle/product/10.1.0.3/jdbc/lib/classes12.zip LD_LIBRARY_PATH=/oracle/product/10.1.0.3/lib:/oracle/product/10.1.0.3/lib32 DISABLE_HUGETLBFS=1 PATH=/oracle/product/10.1.0.3/bin ROOTPATH=/oracle/product/10.1.0.3/bin LDPATH=/oracle/product/10.1.0.3/lib:/oracle/product/10.1.0.3/lib32 TZ=CET fi
Creamos el fichero /etc/env.d/99oracle
ORACLE_BASE=/oracle ORACLE_HOME=/oracle/product/10.1.0.3 ORACLE_SID='EXTRE' ORACLE_TERM=xterm ORACLE_OWNER=oracle TNS_ADMIN=/oracle/product/10.1.0.3/network/admin NLS_LANG=SPANISH_SPAIN.WE8ISO8859P1 ORA_NLS10=/oracle/product/10.1.0.3/nls/data CLASSPATH=/oracle/product/10.1.0.3/jdbc/lib/classes12.zip LD_LIBRARY_PATH=/oracle/product/10.1.0.3/lib:/oracle/product/10.1.0.3/lib32 DISABLE_HUGETLBFS=1 PATH=/oracle/product/10.1.0.3/bin ROOTPATH=/oracle/product/10.1.0.3/bin LDPATH=/oracle/product/10.1.0.3/lib:/oracle/product/10.1.0.3/lib32 TZ=CET
Instalación del producto
su - oracle export DISPLAY="ip.de.nuestro.clienteX:0" ./runInstaller -ignoreSysPrereqs Seguimos la pantalla del instalador,...
La segunda vez que tenemos que ejecutar el root.sh hay que realizar estos cambios. Se ha cambiado el init.cssd para que funcione con gentoo. Hemos parcheado varios ficheros. Hemos utilizado la herramienta relink con varios ficheros de oracle (para el de client_noshared, hay que utilizar las AMD64 Stuffs).
Asistente de conexión
Durante la instalación instalación ha fallado el asistente de conexión, porque las librerías no se habian creado correctamente, todavia no estaba parcheado los distintos ficheros.
netca
Levanta el asistente que nos crea el tnsnames.ora y el listener.ora
Scripts de inicio
oratab
Cambiar el fichero /etc/oratab
INSTANCIA:/oracle/product/10.1.0.3:Y
ora.database ora.listener ora.console
Creamos los ficheros en la carpeta /etc/init.d. Creamos los 3 ficheros. Y les damos permiso de ejecución:
chmod +x ora.*
Damos de alta los scripts en el sistema de arranque:
rc-update add ora.database default * ora.database added to runlevel default rc-update add ora.listener default * ora.listener added to runlevel default rc-update add ora.console default * ora.console added to runlevel default
ora.rawdevices
Para que oracle utilice dispisitivos raw (mejora bastante el rendimiento con respeto sistema de ficheros), utilizamos un pequeño scipts que inicializa las particiones raw.
configuración ora.rawdevices
En la carpeta /etc/conf.d/ editamos el fichero ora.rawdevices, el kernel esta compilado con 8192 raw devices (por defecto el kernel viene con 256).
#Compilado en el kernel con 8192 por defecto el kernel viene con 255 MAXRAW=8192 #Establecemos propietarios de los raw devices y permisos OWNER="oracle" GROUP="oinstall" PERMS="660" #Asignacion del Raw device a una particion config_raw201="/dev/sda7" config_raw202="/dev/sda8"
Las particiones tambien pueden ser logical volumes sin formatar.
Script ora.rawdevices
En la carpeta /etc/init.d creamos el fichero ora.rawdevices siguiente:
#!/sbin/runscript # Copyright 2006-2008 Luniel Systems # Distributed under the terms of the GNU General Public License v2 # $Header: $ depend() { need net before ora.database } start() { ebegin "Asignando Raw device a chunks de Oracle" for minor in `seq 1 ${MAXRAW}` do particion=config_raw${minor} eval particion=\$$particion if [ ! "#${particion}#" = "##" ]; then echo "Asignando el device /dev/raw${minor} a la particion $particion" if [ -e $particion ]; then if [ ! -c /dev/raw$minor ]; then /bin/mknod /dev/raw$minor c 162 $minor fi if [ $? ]; then /sbin/raw /dev/raw$minor $particion if [ $? ]; then chmod $PERMS /dev/raw$minor chown $OWNER:$GROUP /dev/raw$minor fi fi eend $? else eend 1 fi fi done } stop() { ebegin "eliminando Raw devices" for minor in `seq 1 ${MAXRAW}` do particion=config_raw${minor} eval particion=\$$particion if [ ! "#${particion}#" = "##" ]; then echo "Eliminando el device /dev/raw${minor} a la particion $particion" if [ -c /dev/raw$minor ]; then rm /dev/raw$minor fi eend $? fi done }
Arranque automatico
Para que los raw devices se arranquen de forma automatica ejecutamos
rc-update add ora.rawdevices default
Luego para poder usuarlo con oracle creamos un link al /dev/rawxxx y le damos el link como archivo de datos.
Creación de la base de datos
Utilizamos el asistente de Oracle.
dbca
Añadimos el usuario oracle al grupo disk en el archivo /etc/group
disk::6:root,adm,oracle
Referencias
--Daniel Simao 15:38 18 jun 2008 (UTC)