Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Instalacion de Oracle 11 en Suse 10
Instalacion de Oracle 11 en Suse 10
Por ejemplo:
$ xhost somehost.us.example.com
Donde local_host es la direccin IP de nuestra estacin de trabajo desde donde vamos a instalar el
oracle remotamente
II.- DESCARGA Y COPIA DE LOS ARCHIVOS AL DISCO DURO
1.- Bajamos oracle_11gR1_database.zip de la web de oracle:
http://www.oracle.com/technology/software/products/database/index.html
En mi caso lo tengo en el escritorio (las descargas por defecto en firefox), por lo que, s
a) Movemos el archivo linux.x64_11gR1_database.zip a /home/oracle
# mv /root/Desktop/linux.x64_11gR1_database.zip /home/oracle
b) Descomprimimos linux.x64_11gR1_database.zip
# unzip linux.x64_11gR1_database.zip
linux.x64_11gR1_database.zip
runInstaller
stage
welcome.html
Nota: posteriormente en la seccin de creacin de usuarios y grupos le vamos a dar los permisos
necesarios al usuario oracle para que pueda utilizar estos archivos.
REQUISITOS DE HARDWARE Y SOFTWARE PARA LA CORRECTA INSTALACIN
NOTA: La instalacin lo vamos a hacer de manera directa en el nuevo servidor de base de datos, por lo
que no habilitaremos X Window para que se ejecute en una PC remota.
HARDWARE NECESARIO
MEMORIA
Determinamos la capacidad de almacenamiento de nuestro servidor con el comando
# grep MemTotal /proc/meminfo
MemTotal:
1522780 kB
En mi caso como vemos tengo aproximadamente 1487 MB por lo que si veo en la tabla le corresponde
un total de 1.5 * 1487 = 2231 MB
Ahora para checar la cantidad de memoria swap que tengo, tecleo lo siguiente:
# grep SwapTotal /proc/meminfo
SwapTotal:
1574360 kB
O sea 1537 MB
Por lo que vemos nos hace falta mas memoria para swap 1537 MB < 2231 MB, nos falta: 694 MB;
Procederemos a aumentar la memoria swap
#
#
#
#
Para verificar que el swap se haya asignado se puede digitar el siguiente comando:
# grep SwapTotal /proc/meminfo
SwapTotal:
2285008 kB
used
1522780
274196
2285008
free
shared
buffers
1472016
50764
1248584
172
2284836
cached
42892
1154928
Oracle Database 11g, la la administracin automtica de memoria requiere de mas memoria compartida
(shared memory) (/dev/shm) as como archivos descriptores. La memoria compartida debe ser al
menos del tamao de MEMORY_MAX_TARGET y MEMORY_TARGET para cada instancia de Oracle en
nuestra computadora. Si MEMORY_MAX_TARGET o MEMORY_TARGET tiene un valor distinto de cero y
la memoria compartida no tiene el tamao adecuado, entonces nos enviar un mensaje de error:ORA00845 al iniciar oracle. El numero de archivos descriptores para cada instancia de Oracle debe ser al
menos 512*PROCESSES. Tambin, el limite de los descriptors para cada proceso debe ser al menos
512. Si los archivos descriptores no tienen los tamaos adecuados, veremos el mensaje de error ORA27123 de varios procesos de Oracle y de Linux el error EMFILE (demasiados archivos abiertos) errores
en procesos distintos de oracle.
To determine the amount of shared memory available, enter the following command:
# df -k /dev/shm/
Nota:
MEMORY_MAX_TARGET and MEMORY_TARGET no se puede usar cuando LOCK_SGA esta habilitado o
con paginas grandes en Linux.
En la pgina de parmetros de inicializacin, en un sistema Linux, nota que el tamao de (SGA y PGA),
que establece el parmetro de inicializacin MEMORY_TARGET o MEMORY_MAX_TARGET, no puede ser
mayor que la memoria compartida del sistema de archivos en el sistema operativo.
Por ejemplo, si el tamao de la memoria compartida de nuestro sistema de archivos en nuestro sistema
es de 1 GB, pero nuestro tamao de memoria (MEMORY_TARGET) de 2 GB, entonces recibiremos el
siguiente mensaje de error al iniciar:
ORA-00845: MEMORY_TARGET not supported on this system
ORA-01078: Failure in processing system parameters
Ademas si revisamos todos los parametros de inicializacion, veremos que si nuestro nombre de base de
datos es mayor que 8 caracteres, entonces el valor del nombre de la base de datos (en el parametro
DB_NAME) esta recortada a los primeros 8 caracteres, y el valor del parmetro DB_UNIQUE_NAME
toma el valor de la variable global.
ARQUITECTURA DEL SISTEMA
Vamos a verificar que nuestro PC cumpla con los requisitos del sistema necesarios para la instalacin de
Oracle
# uname -m
i686
1K-blocks
23494316
1K-blocks
23494316
udev
761388
172
761216
1% /dev
Necesita
265 (MB)
1.29 (GB)
890 (MB)
1.02 (GB)
Recomendado
Pentium IV 2 GHz or
superior
1 GB RAM (recommended),
256 MB RAM (min)
65536 colores, con una
resolucin de 1024 X 768
REQUERIMIENTOS DE SOFTWARE
SISTEMA OPERATIVO: SUSE Linux Enterprise Server 10.0
Para determinar la distribucin y versin de Linux:
# cat /proc/version
Linux version 2.6.16.21-0.8-smp (geeko@buildhost) (gcc version 4.1.0 (SUSE Linux)) #1 SMP Mon Jul 3 18:25:39
UTC 2006
KERNEL: Para SUSE Linux Enterprise Server 10 debe ser 2.6.16.21 o superior
Para determinar la versin del kernel
# uname -r
2.6.16.21-0.8-smp
Requerimientos
binutils-2.16.91.0.5
compat-libstdc++-5.0.7
gcc-4.1.0
glibc-2.4-31.2
glibc-devel-2.4-31.2
ksh-93r-12.9
libaio-0.3.104
libaio-devel-0.3.104
libelf-0.8.5
libgcc-4.1.0
libstdc++-4.1.0
libstdc++-devel-4.1.0
make-3.80
sysstat-6.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
x86-64
binutils-2.16.91.0.5
compat-libstdc++-5.0.7-22.2
gcc-4.1.0
gcc-c++-4.1.0
glibc-2.4-31.2
glibc-32bit-2.4-31.2 (32 bit)
glibc-devel-2.4
glibc-devel-32bit-2.4 (32 bit)
libaio-0.3.104
libaio-32bit-0.3.104 (32 bit)
libaio-devel-0.3.104
libelf-0.8.5
libgcc-4.1.0
libstdc++-4.1.0
libstdc++-devel-4.1.0
make-3.80
sysstat-6.0.2
NOTA: Los paquetes pueden ser de la versin que se muestra en la tabla o superior (Para el caso de
los que tienen SUSE Linux Enterprise Server 10 SP1)
Para comprobar la existencia de cada uno de los paquetes tecleamos:
# rpm -q package_name
Donde package_name es el paquete a comprobar. Por ejemplo en nuestro caso nos arrojo que teniamos
instalados todos los paquetes menos el ltimo:
# rpm -q binutils-2.16.91.0.5
binutils-2.16.91.0.5-23.4
# rpm -q compat-libstdc++-5.0.7
compat-libstdc++-5.0.7-22.2
# rpm -q gcc-4.1.0
gcc-4.1.0-28.4
# rpm -q glibc-2.4-31.2
glibc-2.4-31.2
# rpm -q glibc-devel-2.4-31.2
glibc-devel-2.4-31.2
# rpm -q ksh-93r-12.9
ksh-93r-12.9
# rpm -q libaio-0.3.104
libaio-0.3.104-14.2
# rpm -q libaio-devel-0.3.104
libaio-devel-0.3.104-14.2
# rpm -q libelf-0.8.5
libelf-0.8.5-47.2
# rpm -q libgcc-4.1.0
libgcc-4.1.0-28.4
# rpm -q libstdc++-4.1.0
libstdc++-4.1.0-28.4
# rpm -q libstdc++-devel-4.1.0
libstdc++-devel-4.1.0-28.4
# rpm -q make-3.80
make-3.80-202.2
# rpm -q sysstat-6.0.2
sysstat-6.0.2-16.4
# rpm -q unixODBC-2.2.11
unixODBC-2.2.11-21.4
# rpm -q unixODBC-devel-2.2.11
package unixODBC-devel-2.2.11 is not installed
El cual instalaremos desde yast, para ello damos clic en Computer->Yast->software>Instalar/desinstalar software y en buscar tecleamos el nombre del paquete sin la versin por ejemplo:
unixODBC-devel
Y marcamos el paquete para su instalacin.
En caso de no encontrar errores tenemos que descargarlos directamente desde Internet y en este caso
particular desde http://www.unixodbc.org/.
Pero en la mayora de casos encontraremos los paquetes en rpm en el sitio http://rpm.pbone.net/ nos
manda a cada uno de los sitios en donde se encuentran disponibles.
NOTA: En el caso de la versin a 64 bits todos los paquetes se encuentran en el CD ROM o DVD de
instalacin de Suse Linux , solo en el caso de 32 bits los tenemos que descargar desde Internet.
INSTALAMOS LOS CONTROLADORES DE ORACLE PARA ODBC
unixODBC-32bit-2.2.11 (32 bit) or later
unixODBC-devel-32bit-2.2.11 (32 bit) or later
Se pueden encontrar por ejemplo en
ftp.opensuse.org/distribution/SL-10.1/inst-source/suse/x86_64/unixODBC-32bit-2.2.11-19.x86_64.rpm
Para 64 bits, lo descargamos e instalamos con:
# rpm -Uvh unixODBC-32bit-2.2.11-19.x86_64.rpm
Si no existe lo creamos
# /usr/sbin/groupadd dba
NOTA: En caso de que ya existiese el directorio personal del usuario oracle entonces nada mas le
damos los permisos.
Vamos a determinar el shell del usuario oracle
# su - oracle
$ echo $SHELL
$ exit
En nuestro caso nos percatamos que es bash esto hay que tenerlo muy en cuenta futuras operaciones.
CREACIN DEL USUARIO nobody
# id nobody
uid=65534(nobody) gid=65533(nobody) groups=65533(nobody),65534(nogroup)
Nota:
Los parametros de kernel.sem deben ser cuatro, si algun tenemos un valor menor al que se muestra
anteriormente, entonces colocamos el valor mximo (parmetro max en default). El valor minimo
requerido para shmmax es 0.5 GB. Aunque Oracle recomienda que shmmax tenga 2.0 GB para un
ptimo desempeo del sistema.
Despus de especificar los nuevos valores en /etc/sysctl.conf, estos se cambian cuando reiniciamos
el sistema. Pero en SUSE Linux Enterprise Server introducimos el siguiente comando para que el
sistema lea estos nuevos valores del archivo /etc/sysctl.conf:
# /sbin/chkconfig boot.sysctl on
2. Depus debemos de teclear otro commando para cambiar los nuevos parametros nuevos del kernel
# /sbin/sysctl -p
Hay que revisar la salida de estos comandos para asegurarnos de que efectivamente se realizaron los
cambios y en caso de que no volvemos a teclear nuevamente los comandos anteriores nuevamente.
Para checar cada uno de los parmetros del kernel de manera individual es necesario teclear lo
siguiente:
Parameter
semmsl, semmns, semopm,
and semmni
shmall,
shmmni
shmmax,
and
Command
# /sbin/sysctl -a | grep sem
file-max
ip_local_port_range
rmem_default
rmem_max
wmem_default
wmem_max
Item en
limits.conf
nofile
Hard Limit
65536
nproc
16384
soft
hard
soft
hard
nproc
nproc
nofile
nofile
2047
16384
1024
65536
required
pam_limits.so
3. Para que el shell por default tengan los valores adecuados en el usuario oracle cambia o agrega al
final la lnea al archivo /etc/profile.local ( si no existe entonces lo creamos):
# vi /etc/profile.local
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
En caso de que no tengamos rastros de una instalacin previa de oracle entonces procederemos a la
creacin de los directorios para la instalacin de oracle.
CREACION DEL DIRECTORIO BASE DE ORACLE
Vamos a determinar nuestro mount_point que puede ser cualquiera de los siguientes, o bien una
propia:
/u01/app/oracle
/u01/app/orauser
/opt/oracle/app/oracle
Vamos a elegir el primero /u01/app/oracle
1.- Determinamos si existe espacio suficiente
# df -k
2.- Si es as entonces creamos los directorios con los correspondientes grupos propietarios y usuarios
propietarios, en caso contrario tendramos que liberar espacio.
# mkdir -p /u01/app
# chown -R oracle:oinstall /u01/app
# chmod -R 775 /u01/app/
CREANDO DIRECTORIOS PARA LOS ARCHIVOS DE RECUPERACIN
Vamos a ver si tenemos espacio suficiente tecleamos el comando:
# df -k
Recovery files
Teclea los siguientes commandos para crear los directorios y asignarles propietarios y permisos
adecuados:
Para los archivos del directorio de base de datos:
# mkdir /u01/app/oracle/oradata
# chown oracle:oinstall /u01/app/oracle/oradata
# chmod 775 /u01/app/oracle/oradata
Ahora vamos a cambiar la variable de entorno para indicarle el nuevo directorio de tmp
vi /home/oracle/.profile
$ TMP=/u01/app/oracle/tmp
$ TMPDIR=/u01/app/oracle/
$ export TMP TMPDIR
$ exit
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=ORABUCB
export ORACLE_BASE ORACLE_SID
ORACLE_HOSTNAME=database.cbachilleres.edu.mx
export ORACLE_HOSTNAME
Aprobado
Preparando
para
iniciar
Oracle
Universal
Espere...oracle@database:/u01/app/database>
Installer
desde
/tmp/OraInstall2008-04-14_06-06-34AM.
1. On the Select Installation Method page, you can select either Basic Installation or
Advanced Installation. Select Advanced Installation.
2. Select Installation Type. Youre given three choicesEnterprise Edition, Standard
Edition, and Custom. Choose Enterprise Edition.
3. On the Install Location page, specify the path for the Oracle base and Oracle home locations,
which is where the Oracle Universal Installer will install the database files. Click Next.
4. On the Product-Specific Prerequisite Checks page, the Oracle Universal Installer will
verify that your environment meets the minimum requirements for installing the various
products you want to install. These checks include the kernel parameters, swap space
requirements, validation of the Oracle base location, and network configuration requirements.
Its a good idea to go ahead and fix any warnings produced by the Oracle Universal
Installer at this stage, say by updating the kernel on a Linux system, although you can
get away with not doing so in most cases since the Oracle Universal Installer offers you
the choice of continuing despite a warning. Once you pass the requirement checks,
click Next.
DESPUS DE LA INSTALACIN
Editar y modificar /etc/oratab y colocamos al final "Y":
ORABUCB:/u01/app/oracle/db:Y
# vi /etc/oratab
ORABUCB:/u01/app/oracle/db:Y
Para que Oracle inicie desde que arranque, creamos el archivo llamado oracle (o el que ms nos
agrade) colocamos este script en /etc/init.d con el siguiente contenido:
Nos logueamos como root y tecleamos lo siguiente:
# vi /etc/init.d/oracle
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle DB: "
echo -n $"Starting Oracle EM DB Console:"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/oracle
echo "OK"
;;
stop)
NOTA: Si queremos que de manera automtica se inicie entonces tambin podemos utilizar insserv:
insserv -d /etc/init.d/nombre_servicio Registra un servicio
insserv -r /etc/init.d/servicio Quita un servicio
Que en nuestro caso, si no se hubiere levantado el servicio de oracle lo haramos con
# insserv d /etc/init.d/oracle
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
ORACLE_SID=ORABUCB
ORACLE_HOSTNAME=database.cbachilleres.edu.mx
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin
Hay que agregarnos al grupo dba. Podemos usar usermod o editar el archivo /etc/group y agregar al
final de la linea que empierza con dba nuestro usuario dba (my username is edilberto):
# vi /etc/group
dba:!:1000:oracle,edilberto
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
ORACLE_SID=ORABUCB
ORACLE_HOSTNAME=database.cbachilleres.edu.mx
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin
En /u01/app/oracle/product/11.1.0/db_1/bin:
$ cd /u01/app/oracle/db/bin
ejecutar sqlplus
Y la instancia de la BD arrancara y desplegara un reporte de estado de la BD
$ sqlplus /nolog
SQL*Plus: Release 11.1.0.6.0 - Production on Thu Apr 17 18:36:34 2008
Copyright (c) 1982, 2007, Oracle.
ERRORES COMUNES
database:/etc/init.d # insserv -d /etc/init.d/oracle
insserv: Service raw has to be enabled for service oracle
insserv: exiting now!
database:/etc/init.d # chkconfig raw on
database:/etc/init.d # insserv -d /etc/init.d/oracle
NO SE LEVANTA Enterprise Manager Database Control
$
$
$
$
$
$