Archive for the oracle en linux Category

Oracle 10g en Ubuntu server 9.04

Posted in oracle en linux on julio 16, 2012 by carloslinux

INSTALACIÓN DE ORACLE 10g EN UBUNTU SERVER 9.04 UTLILIZANDO VIRTUALBOX  Y CON 512 MB DE RAM EN EL SISTEMA HUESPED

Ubuntu Server es uno de los servidores Linux que menos recursos consumen, por este motivo decidí probar la instalación de  Oracle 10g en este sistema.

Soy profesor de Oracle y Linux y llevo años instalando Oracle en Centos,  que es un clon de Redhat Enterprise Server,  para mis clases y la verdad es que me he quedado asombrado de lo bien que funciona Oracle en Ubuntu Server, sin duda más rápido que en Centos o en Oracle Enterprise Linux que es otro clon de Redhat, lástima que no este soportado oficialmente por Oracle,  además la instalación es  más sencilla.

Comento aquí  los pasos de la instalación:

Después de instalar Ubuntu server 9.04 con la instalación por defecto con IP estática y añadiendo únicamente el paquete OpenSSh-Server , activamos la cuenta del root

sudo passwd root

introducimos el password y nos logueamos como root

su –

Añadimos los siguientes paquetes;

apt-get install lxde

Este es un entorno gráfico muy ligero que apenas consume recursos, lo necesitaremos  para lanzar el asistente de instalación, a no ser que lo hagamos en modo silencioso, aunque esta opción la veremos en otro futuro post

apt-get install galeon

un navegador muy ligero también (opcional)

apt-get install vim-full

A mi que gusta usar el vi y el que viene con Ubuntu es una versión mínima poco manejable (opcional)

Instalamos herramientas de compresión, por lo menos el unzip lo vamos a necesitar.

aptitude install rar p7zip-full unace unzip file-roller

Instalamos los paquetes necesarios para que funcione la instalación de Oracle

apt-get install gcc libaio1 lesstif2 lesstif2-dev make rpm libc6 libstdc++5 binutils


apt-get install libmotif3

creamos las siguientes enlaces simbólicos:


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

Editamos el archivo /etc/sysctl.conf y añadimos 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

luego ejecutamos el siguiente comando para que los cambios tengan efecto y no tener que reiniciar, esto no es “güindos”.

/sbin/sysctl -p

Editamos el fichero /etc/security/limits.conf y añadimos estos valores:

* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

Añadimos lo siguiente al fichero  /etc/pam.d/login

session required /lib/security/pam_limits.so

Crearmos el usuario oracle y los grupos necesarios


/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/groupadd nobody
/usr/sbin/useradd -m oracle -g oinstall -G dba oracle

le ponemos el passwor al usuario oracle

passwd oracle

En Ubuntu server cuando creas un usuario, por defecto le pone el shell sh, abrimos el fichero /etc/passwd y le cambiamos al shell bash

La entrada  del usuario oracle en el  fichero /etc/passwd  quedaría así

oracle:x:1000:1001:oracle,,,:/home/oracle:/bin/bash”

Creamos los directorios donde se alojará el software de Oracle y damos los permisos necesarios.

mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01

mkdir /var/lock/subsys

Nos conectamos como usuario oracle y añadimos esto al fichero /home/oracle/.profile

umask 022
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=TSH1; 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.2.0/db_1/bin; export PATH

Nos conectamos como root y reiniciamos el sistema para que aparezca el nuevo entorno gráfico y cuando arranca, nos logeamos con el usuario oracle, abrimos un terminal y descomprimimos el software de Oracle 10g que nos hemos descargado  previamente de la página de Oracle

la verdad es que pinta bien el escritorio lxde”

Entramos en la carpeta database y ejecutamos el comando de instalación

./runInstaller -ignoreSysPreReqs

Orecle se quejará y dará una serie de fallos, pues el Sistema Operativo no es el esperado, ignoramos estos fallos y seguimos a delante...

y comienza la instalación …

comprobamos las rutas y si no son las que aparecen en la imagen anterior, las cambiamos

En este caso, creamos una base de datos de propósito general y en lo único que tenemos que poner atención es el la ventana donde especificamos el nombre de la instancia “ORACLE_SID”  ya que en el fichero .profile  del usuario oracle lo definimos como TSH1

Luego aparece la siguiente pantalla para definir los grupos del sistema operativo con privilegios de sysdba , ponemos dba en las dos casillas

damos siguiente, siguiente … hasta el final que nos aparece una pantalla en la que nos indica que tenemos que lanzar unos comandos como usuario root

Abrimos una consola,  nos conectamos como root, los lanzamos y volvemos a la pantalla y damos aceptar

Seguidamente saldrá la pantalla del asistente de creación de bases de datos y una vez finalizado el proceso,  nos aparecerá esta última pantalla que nos muestra la URL de conexión a la base de datos mediante Enterprise Manager

Damos aceptar y finaliza la instalación.

DESHABILITANDO LAS X WINDOWS EN UBUNTU SERVER

Un servidor de Bases de Datos  Oracle debe tener las X deshabilitadas para consumir menos recursos, En Ubuntu  no existe ya el fichero inittab donde se podían cambiar los niveles de ejecución.

Una de las maneras para deshabilitar las X windows en Ubuntu Server es deshabilitando gdm de  esta manera:

sudo update-rc.d -f gdm remove

¡¡¡ OJO!!!  Sólo podremos acceder desde  terminales remotos .

Y si queremos volver a habilitarlas:

sudo update-rc.d -f gdm defaults 

No obstante, aún teniendo  las X deshabilitadas, podemos lanzar los asistentes gráficos desde un terminal remoto, para lo cual instalamos el  paquete x11-apps en el servidor

apt-get install x11-apps

Después desde cualquier terminal remoto, accedemos de la siguiente manera:

carlos@carlos-ubuntu:~$ ssh -X oracle@192.168.1.242

una vez dentro del sistema probamos con el asistente de creación de bases de datos:

Por Carlos Heras

Safe Creative #1105079160118

Anuncios

Instalación de Oracle xe en Ubuntu Server

Posted in oracle en linux on junio 25, 2012 by carloslinux

En este post voy a explicar los pasos de instalación de Orace XE en Ubuntu Server 9.04

He elegido esta versión de Ubuntu por que pienso que es más estable que los posteriores 9.10 y 10.4 o por lo menos a mí me ha dado menos problemas.

La instalación que he hecho es la mínima, con la salvedad de incluir el Ssh-Server para poder conectarme desde máquinas remotas y configurando la red con IP fija.

Opcionalmente, lo  primero de todo es activar el acceso del root, (a mí no me gusta andar con el sudo para arriba sudo para abajo):

sudo passwd root

Luego nos conectamos como root y creamos el swap necesario para la instalación de Oracle xe

su –

dd if=/dev/zero of=/swpfs1 bs=1M count=1000

mkswap /swpfs1

swapon /swpfs1

Ahora agregamos el siguiente repositorio para poder descargar el Oracle efectuando los tres siguientes pasos

1.- vi /etc/apt/sources.list

deb http://oss.oracle.com/debian unstable main non-free

2.- wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add –

3.- apt-get update

Ya podemos instalar el Oracle, he elegido “oracle-xe-universal ” porque tiene soporte para nuestro idioma y otros a parte del inglés

apt-get install oracle-xe-universal

Una vez instalado configuramos el puerto que por defecto es el 8080, el listener que por defecto es el 1521 y la contraseña del sys, para lo cual ejecutamos el siguiente comando

/etc/init.d/oracle-xe configure

Un de los problemas que me he encontrado en la instalación,  es que se crea automáticamente el usuario oracle,  pero no crea su HOME y por lo tanto no crea las variables de entorno requeridas para poder ejecutar comandos de oracle.

Para solucionar esto le creamos el fichero oculto .profile con el contenido siguiente (se puede hacer un copy paste):

1.- Abrimos el fichero inexistente todavía .profile

vi /usr/lib/oracle/xe/.profile

2.- Insertamos las siguientes líneas :

# ~/.profile: executed by Bourne-compatible login shells.

if [ “$BASH” ]; then

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

fi

mesg n

##Variables de servidor oracle xe

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_HOME

export ORACLE_SID=XE

export PATH

Ahora ya nos podemos conectar con el usuario oracle y ver que todo funciona correctamente

root@server5:~# su – oracle

oracle@server5:~$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 – Production on Fri Jun 25 12:56:57 2010

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

SQL> connect / as sysdba

Connected.

SQL>

Otro de los problemas que me he encontrado en la instalación es que para acceder a la aplicación web cliente “apex” desde maquinas remotas, se tiene que habilitar dicho acceso desde el propio servidor y mediante web y como estamos en entorno de texto no tenemos esa posibilidad.

La solución que he dado es instalar el el paquete x11-apps que nos permite lanzar aplicaciones gráficas del propio servidor desde un shell remoto:

apt-get install x11-apps

Ahora sólo nos queda instalar un navegador, yo he elegido “galeon” por ser un navegador bastante ligero:

apt-get install galeon

Para lanzar galeon, abrimos un terminal desde otra maquina y  nos conectamos al servidor de la siguiente manera:

ssh -X root@192.168.1.245

Una vez conectados al servidor lanzamos galeon

root@server5:~# galeon

Nos aparecerá el navegador en la máquina remota y accedemos a oracle poniendo la siguiente URL en el navegador:

http://127.0.0.1:8080/apex/


Ahora en la pestaña administration,  habilitamos el acceso remoto para poder conectarnos desde cualquier máquina por web

Probablemente habrá otra manera de habilitar el acceso remoto por web en línea de comandos, pero yo no lo he encontrado, aunque también es verdad que no he buscado mucho.
Por Carlos Heras
Safe Creative #1105079160118

SPFILE EN ENTORNO DE REAL APPLICATION CLUSTER

Posted in oracle en linux on enero 7, 2012 by carloslinux

 

 

 

 

 

 

Uno de los cambios que debemos contemplar en un entorno de RAC es la gestión del spfile y pfile.

Muestro a continuación una practica del manejo de dichos ficheros.

SQL> select * from v$active_instances;

 

INST_NUMBER INST_NAME

———– ————————————————————

1 rac1.localdomain:RAC1

2 rac2.localdomain:RAC2

 

RECUPERACION DEL SPFILE EN ENTORNO DE RAC

 

1) CREAMOS UN PFILE A PARTIR DEL SPFILE COMO COPIA DE SEGURIDAD

 

SQL> create pfile=’/home/oracle/init.ora’ from spfile;

 

File created.

 

2)COMPROBACION DEL SPFILE

 

SQL> show parameter spfile;

 

NAME TYPE VALUE

———————————— ———– ——————————

spfile string +DATA/rac/spfilerac.ora

 

3) CREAMOS UN NUEVO DIRECTORIO EN LOS DISCOS ASM

 

[oracle@rac1 ~]$ export ORACLE_SID=+ASM1

[oracle@rac1 ~]$ asmcmd

ASMCMD> ls

DATA/

ASMCMD> cd DATA

ASMCMD> ls

RAC/

ASMCMD> mkdir SPFILE

ASMCMD> ls

RAC/

SPFILE/

ASMCMD> exit

4) CAMBIAMOS LA NUEVA RUTA DEL SPFILE EN EL INIT.ORA DE CADA NODO

 

[oracle@rac1 ~]$ cd /u01/app/oracle/product/10.2.0/db_1/dbs/

[oracle@rac1 dbs]$ cp initRAC1.ora initRAC1.ora.org — HACEMOS COPIA DE SEGURIDAD

 

[oracle@rac1 dbs]$ vi initRAC1.ora

 

-QUEDANDO DE ESTA MANERA EN LOS DOS NODOS

[oracle@rac1 dbs]$ cat initRAC1.ora

 

 

SPFILE=’+DATA/SPFILE/spfileRAC.ora’

 

5) PARAMOS LAS DOS INSTANCIAS

 

[oracle@rac2 dbs]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.1.0 – Production on Fri Jan 7 19:08:46 2011

 

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

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> SHUTDOWN IMMEDIATE;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> EXIT

 

[oracle@rac1 ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.1.0 – Production on Fri Jan 7 19:08:28 2011

 

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

 

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

 

6) ARRANCAMOS LA INSTANCIA RAC1 EN NOMOUNT CON EL PFILE CREADO ANTERIORMENTE

 

SQL> startup nomount pfile=’/home/oracle/init.ora’

ORACLE instance started.

 

Total System Global Area 285212672 bytes

Fixed Size 1218968 bytes

Variable Size 155190888 bytes

Database Buffers 121634816 bytes

Redo Buffers 7168000 bytes

 

7) CREAMOS EL SPFILE

 

SQL> create spfile=’+DATA/SPFILE/spfileRAC.ora’ from pfile=’/home/oracle/init.ora’;

 

File created.

 

8) PARAMOS LA BASE DE DATOS

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

 

9) ARRANCAMOS DE MANERA NORMAL LA PRIMERA INSTANCIA

SQL> startup

ORACLE instance started.

 

Total System Global Area 285212672 bytes

Fixed Size 1218968 bytes

Variable Size 155190888 bytes

Database Buffers 121634816 bytes

Redo Buffers 7168000 bytes

Database mounted.

Database opened.

 

10) COMPROABAMOS QUE EL CAMBIO HA SIDO REALIZADO CON ÉXITO

 

SQL> show parameter spfile;

 

 

 

NAME TYPE VALUE

———————————— ———– ——————————

spfile string +DATA/spfile/spfilerac.ora

SQL> exit

 

11) ARRANCAMOS LA SEGUNDA INSTANCIA Y COMPROBAMOS

 

[oracle@rac1 dbs]$ ssh rac2

Last login: Fri Jan 7 19:01:34 2011 from rac1.localdomain

[oracle@rac2 ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.1.0 – Production on Fri Jan 7 19:21:10 2011

 

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

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area 285212672 bytes

Fixed Size 1218968 bytes

Variable Size 138413672 bytes

Database Buffers 138412032 bytes

Redo Buffers 7168000 bytes

Database mounted.

Database opened.

SQL> show parameter spfile;

 

NAME TYPE VALUE

———————————— ———– ——————————

spfile string +DATA/spfile/spfilerac.ora

SQL>

y ya está

NOTA CURIOSA:

no se por que, pero:

con show parameter spfile; nos muestra el directorio SPFILE en minúsculas y el fichero spfile como spfilerac.ora en vez de spfileRAC.ora, que es como se llama realmente