Instalar Oracle en Ubuntu

Para que no tengas que cambiarte a RedHat o a Suse al necesitar usar Oracle, aqui les dejo esta opción, es un manual para Debian, pero recordemos que ubuntu esta basado en Debian. Ya sabes, referecias al ultimo.

Oracle en Debian

Alejandro Ramírez (jano@jano.com.es)

Abstract

Oracle en Debian


Instalar Oracle

Estas instrucciones de instalación están adaptadas de Oracle® Database Quick Installation Guide 10g Release 1 (10.1) for Linux x86. (requiere registro gratuito). Visita también Oracle Database Documentation Library (requiere registro gratuito).

Descargar Oracle 10g

Ve a http://otn.oracle.com/software/products/database/oracle10g/index.html y descargar el siguiente fichero:

  $ cksum ship.db.cpio.gz
306399691 611574473 ship.db.cpio.gz

Note

cksum es una utilidad básica del sistema que muestra el CRC y tamaño en bytes de un fichero.

Descomprímelo. Aparecerá un directorio Disk1.

xhost +
su
export DISPLAY=:0.0
gunzip ship.db.cpio.gz
cpio -idmv <>

Note

Con las tres primeras líneas hacemos login como root y permitimos que este usuario root use el servidor X del usuario inicial. Lo necesitaremos luego para lanzar el instalador. cpio es un programa de archivado similar a tar.

Preparar el sistema

Instalar librerías y herramientas

Instala

  • libc6-dev 2.3.2.ds1-12. Una librería C usada por casi todos los programas escritos en ese lenguaje. Si no la instalamos, algunos ejecutables de Oracle en orahome/bin no se crearán adecuadamente porque requieren ficheros de cabecera en /usr/include.

  • binutils 2.14.90.0.7-8. Herramientas para desarrollar programas en Unix. En realiad esto solo es requerido por Oracle 8.

apt-get install libc6-dev binutils

Instala lo siguiente:

  • wajig: es un frontend para usar apt-get, apt-cache, dpkg, e init.d.

  • gcc: el compilador de c.

  • make: una herramienta de construcción de proyectos.

  • libmotif3: librerías compartidas para ejecutar programas OpenMotif.

  • lesstif2: librerías compartidas para LessTif, libXm, libMrm.

  • rpm: instalador de paquetes Debian. Funciona al margen del instalador de paquetes de Debian.

wajig install gcc make libmotif3 lesstif2 rpm

Los sistemas operativos certificados tienen ciertas utilidades en diferentes sitios que Debian. Añade estos enlaces simbólicos:

ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename

Espacio en disco

Según Oracle, el sistema debe tener 512Mb (524288 KB) de RAM y 1 Gb (1048576 KB) de swap o el doble de RAM. En sistemas con 2 o más Gb de RAM, la partición de intercambio puede ser entre una y dos veces el tamaño de la RAM. Siendo realistas, 512Mb de RAM es lo mínimo para poder arrancar el sistema, no para trabajar con Oracle.

Para ver la cantidad de RAM y swap:

grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo

Puedes obtener más espacio de swap usando un fichero en vez de reparticionando, aunque si estas configurando un servidor es más aconsejable reparticionar. Aqui se muestra como crear un fichero de 511995 kB y usarlo como swap (hazlo solo si necesitas más swap):

su - root
cd /root
dd if=/dev/zero of=/root/tmpswp bs=1k count=500000
chmod 600 tmpswp
mkswap tmpswp
swapon tmpswp
grep SwapTotal /proc/meminfo

El espacio en disco recomendable debería ser mayor de 4Gb, que se consumirá como sigue:

Table 1. espacio requerido en disco

espacio en /tmp para el Oracle Universal Installer400 Mb
Ficheros de instalación1.5 Gb
Productos opcionales de Oracle Database 10g que vienen en el "Companion CD"1 Gb
Ficheros de una base de datos1.2 Gb
Total4.1 Gb
Este comando muestra el espacio libre en disco:
df -k /

Límites del kernel

Ahora vamos a justar algunos parametros del kernel. Priumero vemos la configuración de nuestro sistema:

/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep shm
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep ip_local_port_range
La salida debe ser
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
asi que editamos /etc/sysctl.conf y añadimos o cambiamos estas 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
Al reiniciar el sistema, /etc/inittab invocará el script /etc/init.d/bootmisc.sh que leera la configuración del kernel de /etc/sysctl.conf. Pero si queremos que los cambios apliquen inmediatamente hacemos esto:
/sbin/sysctl -p

Para ver los límites del shell ejecutamos ulimit -a, que mostrará algo similar a esto:

core file size        (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 2047
virtual memory (kbytes, -v) unlimited
Por defecto, hay un límite por usuario, de 1024 descriptores de fichero, y 2047 procesos. Vamos a editar el fichero /etc/security/limits.conf para ajustar estos valores:
*               soft    nproc   2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
Las dos últimas líneas imponen un límite inicial de 1024, pero permiten que un usuario aumente el límite a 65536 usando el comando ulimit -n 65536. Las dos primeras líneas limitan el número de procesos.

Añade lo siguiente a /etc/pam.d/login:

session    required     /lib/security/pam_limits.so
pam_limits.so es el módulo PAM que procesa la configuración del fichero /etc/security/limits.conf que cambiamos antes.

Suponiendo que el usuario oracle usa un shell Bash, Bourne, o Korn, añade lo siguiente a $HOME/.bash_profile:

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

Directorios y permisos

Creamos un usuario (oracle) y un par de grupos

  • oinstall: propietario de los ficheros de Oracle. Este grupo se usa cuando los dbas no mantienen la instalación de software. En caso contrario, bastaría con hacerlo todo con el grupo dba.

  • dba: grupo de usuarios con privilegios SYSDBA.

Para comprobar si existen haz:
grep oinstall /etc/group
grep dba /etc/group
grep nobody /etc/group
id oracle
id nobody

Crea los que falten con esto:

/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/groupadd nobody
/usr/sbin/useradd -c "Oracle Software Owner" -g oinstall -G dba oracle
/usr/sbin/useradd -g nobody nobody

# cambiamos el password del usuario oracle
passwd oracle

Creamos el directorio base de oracle (/u01/app/oracle), y opcionalmente un directorio de datos para las bases de datos que creemos (/u02/oradata):

mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02
El directorio base debería tener 2.5Gb (2621440 KB) libres o 3.7Gb (3879731 KB) si no creamos un directorio de datos. Cuando no creamos un directorio de datos, oracle usa /u01/app/oracle/oradata. Cada base de datos ocupa un subdirectorio del directorio de datos.

Haz login como oracle

su oracle
y añade esta línea al final de /home/oracle/.bash_profile:
umask 022

Crea este directorio

mkdir -p /home/oracle/config/10.1.0

Añade estas variables de entorno:

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.1.0/db_1; export ORACLE_HOME
ORACLE_SID=test; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_OWNER=oracle; export ORACLE_OWNER
#TNS_ADMIN=/home/oracle/config/10.1.0 export TNS_ADMIN
NLS_LANG=SPANISH_SPAIN.WE8ISO8859P1; export NLS_LANG
#ORA_NLS10=${ORACLE_HOME}/db_1/nls/data; export ORA_NLS10
CLASSPATH=${CLASSPATH}:${ORACLE_HOME}/jdbc/lib/classes12.zip
LD_LIBRARY_PATH=${ORACLE_HOME}/lib; export LD_LIBRARY_PATH
DISABLE_HUGETLBFS=1; export DISABLE_HUGETLBFS
TEMP=/tmp; export TEMP
TMPDIR=/tmp; export TMP

PATH=$PATH:/u01/app/oracle/product/10.1.0/db_1/bin; export PATH

Crea este directorio que parece que usa para guardar un fichero de lock:

mkdir /var/lock/subsys

Instalación

Instalación

Asegurate de que la redirección de X esta activada, y ejecuta el instalador como usuario oracle:

xhost +
su oracle
# cd al directorio donde descomprimimos
cd /var/install/Disk1

Puesto que el instalador solo se ejecuta en sistemas operativos certificados (Red-Hat o United Linux), podemos hacer una de dos cosas para arrancar el instalador:

  • engañar al instalador para que piense que esta en Red-Hat (la ^D es Ctrl+D)

    cat > /etc/redhat-release
    Red Hat Linux release 2.1 (drupal)
    ^D
    y luego ejecutar el instalador
    ./runInstaller 
  • o simplemente, pedirle que ignore los prerequisitos:

    ./runInstaller -ignoreSysPrereqs

Cuando te pida que ejecutes root.sh, haz esto antes:

ln -s /etc /etc/rc.d

Pantallas de la instalación

Table 2. Instalación

PantallaAcción
BienvenidoPulsa Siguiente.
Especificar Ubicación de los ArchivosYo usé los valores
  • Ruta de Acceso: /var/install/oracle/Disk1/stage/products.xml

  • Nombre: OraDb10g_home1

  • Ruta de acceso: /u01/app/oracle/product/10.1.0/db_1

Pulsa Siguiente.
Seleccionar tipo de Tipo de InstalaciónSelecciona Standard Edition o Enterprise Edition. Yo seleccione la primera. Pulsa Siguiente.
Seleccionar Configuración de Base de DatosYo seleccione "Uso General". Pulsa Siguiente.
Especificar Opciones de Configuración de Base de DatosValores:
  • Nombre de la Base de Datos Global: test.debian

  • SID: test

  • Seleccionar juego de caracteres de Base de Datos: Europeo Occidental WE8ISO8859P1.

  • Crear base de datos con esquemas de ejemplo: Seleccionado.

En /etc/hosts tengo una línea que vincula mi IP con el nombre debian, de modo que test.debian, significará base de datos "test" en el sistema con IP 192.168.1.36 (que es mi IP). Pulsa Siguiente.
Seleccionar Opción de Gestión de Base de DatosPulsa Siguiente.
Especificar Opción de Almacenamiento de Archivo de Base de DatosYo seleccioné "Sistema de Archivos" con /u02/oradata como directorio de almacenamiento de las bases de datos. Pulsa Siguiente.
Especificar Opciones de Copia de Seguridad y RecuperaciónNo Activar Copias de Seguridad Automáticas. Pulsa Siguiente.
Especificar Contraseñas de Esquema de Base de DatosAqui nos pide contraseña para las cuentas SYS, SYSTEM, SYSMAN, DBSNMP. Yo escogí "secreto" como contraseña única. Pulsa Siguiente.
ResumenPulsa Instalar.
Asistente de Configuración de Base de DatosCuando el aistente finaliza muestra la siguiente información:
  • Nombre de la Base de Datos Global: test.debian

  • Identificador del Sistema (SID): test

  • Nombre de Archivo de Parámetros del Servidor: /u01/app/oracle/product/10.1.0/db_1/dbs/spfiletest.ora

  • Enterprise Manager: http://debian.elpiso:5500/em

También nos indica que todas las cuentas excepto SYS, SYSTEM, DBSNMP, SYSMAN, estan bloqueadas. Pulsa Aceptar.
Privilegios de ConfiguraciónNos pide que ejecutemos un script como root. Lo hacemos. Aceptamos los valores por defecto. En mi caso el script termina tras diez minutos esperando a conectarse con el demonio "Cluster Ready Service". Ignoro este error, vuelvo al instalador, y pulso Aceptar.
Fin de InstalaciónEl instalador termina mostrando las URLs de varias herramientas. Anoto dichas URLs y pulso Salir.

Mensajes de consola al ejecutar root.sh:

debian:/u01/app/oracle/product/10.1.0/db_1# ./root.sh
Running Oracle10 root.sh script...
\nThe following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/10.1.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Oracle Cluster Registry for cluster has been initialized

Adding to inittab
Checking the status of Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
Giving up: Oracle CSS stack appears NOT to be running.
Oracle CSS service would not start as installed
Automatic Storage Management(ASM) cannot be used until Oracle CSS service is started

Mensaje de fin de instalación:

Se han desplegado las siguientes aplicaciones J2EE y se puede
acceder a ellas en las siguientes direcciones URL.

URL de Ultra Search:
http://debian.elpiso:5620/ultrasearch

URL de Herramienta de Administración de Ultra Search:
http://debian.elpiso:5620/ultrasearch/admin

URL de iSQL*Plus:
http://debian.elpiso:5560/isqlplus

URL de Enterprise Manager 10g Database Control:
http://debian.elpiso:5500/em

Usuarios:

  • DBSNMP

  • SYS. Es el único usuario con acceso al esquema SYS, que guarda las tablas y vistas para el diccionario de datos de la base de datos. Solo se usa para cambiar los parametros de almacenamiento del diccionario de datos. Este usuario se crea automaticamente al crear una base de datos y tiene rol DBA.

  • SYSMAN

  • SYSTEM. Solo se usa para crear tablas y vistas con información realtiva a la administración de la base de datos. Este usuario se crea automaticamente al crear una base de datos y tiene rol DBA.

Roles

  • SYSDBA. Puede conectarse como usuario SYS. Tiene los siguientes privilegios especiales:

    • Perform STARTUP and SHUTDOWN operations

    • ALTER DATABASE: open, mount, back up, or change character set

    • CREATE DATABASE

    • DROP DATABASE

    • CREATE SPFILE

    • ALTER DATABASE ARCHIVELOG

    • ALTER DATABASE RECOVER

    • Includes the RESTRICTED SESSION privilege

  • SYSOPER. Permite tareas administrativas sin acceso a los datos de usuario. Tiene los siguientes privilegios especiales:

    • Perform STARTUP and SHUTDOWN operations

    • CREATE SPFILE

    • ALTER DATABASE OPEN/MOUNT/BACKUP

    • ALTER DATABASE ARCHIVELOG

    • ALTER DATABASE RECOVER (Complete recovery only. Any form of incomplete recovery, such as UNTIL TIME|CHANGE|CANCEL|CONTROLFILE requires connecting as SYSDBA.)

    • Includes the RESTRICTED SESSION privilege.

Comprobación

Compruebo que servicios estan a la escucha:

debian:~# netstat -l| grep "5500\|5560\|5620"
tcp 0 0 *:5560 *:* LISTEN
tcp 0 0 *:5500 *:* LISTEN
  1. La base de datos y el proceso Oracle Net listener estan ejecutandose.

  2. Oracle Enterprise Manager Database Control y iSQL*Plus estan ejecutandose y son accesible con un navegador.

Table 3. Servicios

PuertoServicioComando
1521Listener.$ORACLE_HOME/bin/tnslsnr
5560iSQL*Plus
5500Oracle Database Control corriendo como aplicación web de OC4J.$ORACLE_HOME/jdk/bin/java

Los siguientes son procesos de Oracle que aparecen tras la instalación. Podemos verlos con ps -efH.

iSQL*Plus

Consola para trabajar con PL/SQL. Disponible como aplicación web en http://debian.elpiso:5560/isqlplus. Teniendo en cuenta la URL, debería haber un puerto a la escucha en 5560:

netstat -l | grep 5560
Management Agent Watchdog

Reinicia automaticamente el Oracle Management Agent. Comprobamos que esta en ejecución con

ps -ef | grep emwd
Oracle Database Control

El Database Control es una aplicación Web que podemos usar para administrar una base de datos Oracle. Conecto en la URL http://debian.elpiso:5500/em usando usuario SYS y role SYSDBA. El password es el que especificamos durante la instalación. Teniendo en cuenta la URL, debería haber un puerto a la escucha en 5500:

netstat -l | grep 5500
Oracle Management Agent

The Oracle Management Agent is responsible for monitoring all targets on the host, for communicating that information to the middle-tier Management Service, and for managing and maintaining the host and the products installed on the host. Comprobamos que esta en ejecución con

ps -efH | grep emagent

Yo no lo uso, asi que le hice un kill al emwd y al emagent (por ese orden).

The listener is down: listener "LISTENER" is not running using /u01/app/oracle/product/10.1.0/db_1/network/admin/listener.ora

Para conectarte a SQL*PLUS haz esto:

oracle@debian:/u01$ sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on Dom Jul 4 19:41:32 2004

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL> CONNECT SYS/secreto AS SYSDBA
Conectado.

Si aparece un mensaje

ORA-12705: invalid or unknown NLS parameter value specified
ejecuta
unset ORA_NLS10

Net Services

Oracle Net es un componente de Net Services que permite la conexión de clientes a la base de datos. Net Services se conocía anteriormente como Net8, y antes como SQL*Net.

En UNIX, Oracle busca el fichero tnsnames.ora en los sitios siguientes:

  • $ORACLE_HOME/network/admin

  • /var/opt/oracle

  • Un directorio apuntado por la variable TNS_ADMIN. Cuando hay varios usuarios usando un mismo fichero tnsnames, lo más comodo es que apunten la variable TNS_ADMIN a un directorio compartido.

Cuando conectamos usando usuario/password@SID, oracle sigue estos pasos:

  1. Lee el valor de NAMES.DEFAULT_DOMAIN en el fichero sqlnet.ora, y se lo añade al SID de la base de datos. Si el SID es test, y el valor leído es debian, la cadena resultante es "test.debian".

  2. Resuelve la cadena anterior en el fichero tnsnames.ora.

Si conectamos usando usuario/password@SID.dominio, oracle no lee el fichero sqlnet.ora. Va directamente al fichero tnsnames.ora.

Un ejemplo de sqlnet.ora:

NAMES.DEFAULT_DOMAIN = debian

# autentificacion en windows
# SQLNET.AUTHENTICATION_SERVICES= (NTS)

# prioridad de resolucion de nombres
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

Un ejemplo de tnsnames.ora:

EXTPROC_CONNECTION_DATA.DEBIAN =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = IPC)
(KEY = EXTPROC1)
)
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

TEST.DEBIAN =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = 192.168.1.36)
(PORT = 1521)
)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TEST)
)
)

El listener usa el fichero listener.ora, que también debe estar en el directorio apuntado por TNS_ADMIN. Este es un ejemplo del contenido del fichero:

# LISTENER is the name of the listener
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = IPC)
(KEY = EXTPROC0)
)
)
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = 192.168.1.36)
(PORT = 1521)
)
)
)
)

# SID list of the listener LISTENER
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = test.debian)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
(SID_NAME = test)
)
)

# directorio de log para el listener LISTENER
LOG_DIRECTORY_LISTENER = /home/oracle/config

Si has cambiado la variable TNS_ADMIN, quiza quieras reiniciar el Listener:

lsnrctl stop
lsnrctl start

Para comprobar que el listener funciona usa tnsping:

oracle@debian:~$ tnsping test.debian

TNS Ping Utility for Linux: Version 10.1.0.2.0 - Production on 04-JUL-2004 22:15:20

Copyright (c) 1997, 2003, Oracle. All rights reserved.

Archivos de parámetros utilizados:
/home/oracle/config/sqlnet.ora


Adaptador TNSNAMES utilizado para resolver el alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.1.36) (PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED)
(SERVICE_NAME = TEST)))
Realizado correctamente (0 mseg)

netca

Para probar los anteriores ficheros, o configurar otros desde cero podemos usar el Asistente de Configuración:

netca

Escoge "Local Net Service Name configuration" para probar el tnsnames.ora. Un error común:

Connecting...ORA-12514: TNS:el listener no conoce actualmente
el servicio solicitado en el descriptor de conexi�n

O en inglés

Connecting...ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect descriptor

Arrancar y parar Oracle

Edita /etc/oratab para indicar que bases de datos deben arrancar con el sistema. Aqui solo arranco la base de datos test asi que todo el contenido de mi fichero es este:

*:/u01/app/oracle/product/10.1.0/db_1:N
test:/u01/app/oracle/product/10.1.0/db_1:Y

Crea el script de arranque en /etc/init.d/oracle con este contenido:

#!/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/product/10.1.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: "
# start TNS listener
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
# start database
su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/oracle
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
# stop TNS listener
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
# stop database
su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
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

Hazlo ejecutable

chmod 755 oracle

Añadelo a los niveles de ejecución

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

El fichero listener.ora es la configuración para el SQL*Net Listener. Como valor del campo HOST, ebes poner la IP del equipo, no el hostname de la máquina. La ruta a este fichero es /u01/app/oracle/product/10.1.0/db_1/network/admin/listener.ora.

Ahora ya deberiamos poder ejecutar o parar oracle con wajig:

wajig start oracle
wajig stop oracle

Veras algo como esto:

debian:/etc/init.d# wajig start oracle
Starting Oracle:
LSNRCTL for Linux: Version 10.1.0.2.0 - Production on 26-JUN-2004 13:18:52

Copyright (c) 1991, 2004, Oracle. All rights reserved.

Message 1070 not found; No message file for product=network, facility=TNSTNS-12545:
Message 12545 not found; No message file for product=network, facility=TNS
TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
TNS-00515: Message 515 not found; No message file for product=network, facility=TNS
Linux Error: 2: No such file or directory

SQL*Plus: Release 10.1.0.2.0 - Production on Sat Jun 26 13:18:55 2004

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL> Connected to an idle instance.
SQL> ORACLE instance started.

Total System Global Area 188743680 bytes
Fixed Size 778036 bytes
Variable Size 162537676 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
Database mounted.
Database opened.
SQL> Disconnected from Oracle Database 10g Release 10.1.0.2.0 - Production

Database "test" warm started.
touch: cannot touch `/var/lock/subsys/oracle': No such file or directory
OK

Si queremos hacerlo manual, arrancamos el listener TNS:

lsnrctl start
Para ver si el listener se está ejecutando podemos hacer ps -ef | grep lsnr, o netstat -a | grep 1521.

Usar Oracle

sqlplus scott/tiger@test
Referencias:
http://www.1x4x9.info/files/oracledebian/html/online-chunked/

si tienes problemas al instalar u operar, quisas te sirva este link:
http://www.ubuntu-es.org/index.php?q=node/2755&page=1

Saludos!!!!

P.D.: Coco, ya deja tus pinches choros de solaris!!!, no tenias que desinstalar ubuntu para poder usar Oracle!!! jajajaja (es broma compañero, no lo vayas a tomar a mal we)

20 comentarios:

Anónimo dijo...

buy tramadol online tramadol hcl shelf life - tramadol hcl for toothache

Anónimo dijo...

xanax medication xanax and zanaflex drug interactions - what does xanax and alcohol do to the body

Anónimo dijo...

buy tramadol online tramadol withdrawal and sneezing - buy tramadol online visa

Anónimo dijo...

buy tramadol online tramadol overdose long term effects - buy tramadol legit

Anónimo dijo...

generic xanax buy xanax online cheap - generic xanax 0.5mg pills

Anónimo dijo...

buy tramadol online tramadol hcl 50 mg shelf life - tramadol dosage for dogs by weight

Anónimo dijo...

order carisoprodol online carisoprodol 350 mg for pain - what is carisoprodol 350 mg side effects

Anónimo dijo...

buy carisoprodol soma generic carisoprodol - tramadol carisoprodol abuse

Anónimo dijo...

buy tramadol online tramadol 50 mg sleep - tramadol 50 mg vs hydrocodone

Anónimo dijo...

buy xanax xanax 1mg review - xanax 2 mg for sleep

Anónimo dijo...

buy cialis online cialis daily use dosage - once daily cialis

Anónimo dijo...

tadalafil without prescription price for cialis daily use - cialis 5 mg

Anónimo dijo...

cialis sale cialis online from us pharmacy - generic cialis as good

Anónimo dijo...

buy generic cialis price comparison for cialis - buy cialis

Anónimo dijo...

buy tramadol online buy tramadol online usa - tramadol no high

Anónimo dijo...

http://landvoicelearning.com/#23561 tramadol for dogs + rimadyl - tramadol apap high

Anónimo dijo...

buy tramadol online tramadol addiction cure - tramadol dosage adults

Anónimo dijo...

buy tramadol tramadol 50 mg compared to percocet - generic equivalent tramadol

Anónimo dijo...

tramadol online no prescription tramadol rx purchase - tramadol sandoz l.p. 100 mg

Anónimo dijo...

buy tramadol tramadol use for withdrawal symptoms - tramadol withdrawal day 1