martes, 8 de mayo de 2007

Instalación de un Oracle sobre Linux:

Los pasos que hay que seguir para la instalación de un servidor Oracle sobre una máquina Linux son:

1º.- Hacer espacio suficiente:

Para ello lo primero que debemos hacer es crear una nuava partición donde metamos la instalación y los datos de Oracle.
Si lo queremos hacer correctamente lo que deberiamos hacer es hacerlo por separado, pero dependerá del servidor que utilicemos y sus caracteristicas.

Para crear una nueva partición sobre Linux debemos utilizar el siguiente comando:

fdisk sdXXX

siendo sdXX el disco físico donde queremos realizar la partición, (para ver los discos disponibles podemos utilizar el comando df).
Una vez en fdisk podemos usar “m” para obtener la ayuda correspondiente, pero básicamente los pasos a seguir son:
a.- Crear la nueva partición (n).
b.- Asignarle un tipo (t).
c.- Escribir los datos en el sistema de ficheros (w).

Una vez creada la partición con fdisk debémos darle formato, para ello usamos la instrucción: mkfs con los siguientes parámetros:
mkfs –t ext3 /dev/ sdXXX1

Esto le dará formato al nuevo disco que hayamos creado, ahora solo nos quedará que se pueda montar de forma automática cada vez que arranquemos el sistema, para ello debemos añadir la siguiente línea al fichero fstab, que se encuentra en /etc.

/dev/ sdXXX1 / ext2 defaults 1 1


Una vez hecho esto ya tenemos el espacio necesario para la instalación de Oracle.


2º.- Bajamos Oracle Database.
Una vez que hemos hecho los prerrequisitos de espacio en disco duro, debemos asegurarnos que cumplimos con el resto de requisitos para ello podemos bajarnos de forma gratuita la última versión de Oracle desde la página de Oracle:

http://www.oracle.com/technology/software/products/database/oracle10g/index.html

3º.- Instalación del oracle:

Una vez descargado los archivos hay que seguir los pasos que se están en la documentación que viene con el cd.

Si seguimos todos los pasos y cumplimos los prerrequisitos no debería darnos problemas.

4º.- Automatizar el arranque de Oracle al iniciar el sistema:

Para debemos hacer lo siguiente:

a.- Modificar el fichero /etc/oratab para que tenga la siguiente forma:

# This file is used by ORACLE utilities. It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.

# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME::
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
*:/oracle/app/product/10.1.0/Db_1:N
#SIGC:/oracle/app/product/10.1.0/Db_1:N
SIGC:/oracle/app/product/10.1.0/Db_1:Y


Este fichero se genera durante la instalación de Oracle.

b.- Crearnos un fichero oracle en /etc/init.d con el siguiente contenido:

#!/bin/bash

#
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 93 15
# description: Startup/Shutdown Oracle listener and instance



ORA_HOME="/oracle/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
# Arrancamos el Oias
#echo -n "Starting Oracle Application Server: "
#su - $ORA_OWNR -c "./arranca_ias.sh"
echo "OK"
;;
stop)
# Paramos el Oias
#echo -n "Shutdown Oracle Application Server"
#su - $ORA_OWNR -c "./para_ias.sh"
# 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


Es muy importante la línea que se encuentra comentada al principio: # chkconfig: 345 93 15 porque va a ser la que determine los parámetros de arranque (345) y su prioridad (93 15) al arrancarlos o matarlos.

Para poder incluirlo dentro del arranque del sistema debemos ejecutar:
chkconfig --add oracle

Donde oracle es el fichero que nos hemos creado antes (/etc/init.d/oracle).

5º.- Configuración de las conexiones desde el exterior:
Para poder realizar las conexiones desde el exterior hay que modificar el fichero tnsnames.ora en el caso de que no lo hay hecho automáticamente para que tenga el siguiente formato:


# tnsnames.ora Network Configuration File: /oracle/app/product/10.1.0/Db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

SIGC= (DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=localhost.localdomain)
(PORT=1521)
)
)
(CONNECT_DATA=
(SID=sigc)
(SERVER=DEDICATED)
)
)

#EXTPROC_CONNECTION_DATA =
# (DESCRIPTION =
# (ADDRESS_LIST =
# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
# )
# (CONNECT_DATA =
# (SID = PLSExtProc)
# (PRESENTATION = RO)
# )
# )





Corolario: Comandos de Oracle

emctl status dbconsole  nos muestra el estado de la consola de oracle, pero debemos tenerlo apagado por defecto porque consume muchos recursos.

lsnrctl  listener de oracle, que es donde se configura el acceso desde la red de nuestro servidor, para que funcione, por derfecto tiene un fichero de configuración llamado listener.ora donde se pueden configurar las restricciones de acceso a nuestro servidor, nosostros en principio simplemente lo debemos quitar.

sqlplus  programa de oracle que nos permite el acceso a la base de datos con sql, también desde aquí podemos arrancar y parar las difernetes instancias de la Base de Datos mediante shut inmediate y startup.
Si queremos entrar como dba debemos ejecutar: <>

dbca Data Base Control Administration, sirve para crear/modificar/borrar instancias de una Base de Datos.