Instalar Oracle 11g R2 en Ubuntu Server 11.04 (la mas completa).




Pues eso amig@s, vamos a indicar los pasos necesarios para instalar la base de datos y cliente de 64bits de Oracle en Ubuntu 11.04 Server.

Esta guia no esta oficialmente soportada por Oracle, solo son los pasos y ostias que me he dado para instalar esta base de datos en un Ubuntu Server 11.04 con KDE. (lo raro es que con gnome algunas librerias ya vienen instaladas)... Da igual sirve tanto para KDE como para Gnome.

Cualquier duda, dejen sus comentarios.

Para los que no lo saben, Ubuntu no esta oficialmente soportado por Oracle en la version 11g Release 2. Podriamos utilizar Oracle Linux pero no viene con ningun paquete (normal) instalado y si utilizaramos redhat deberiamos pagar una subscripcion para poder descargarnos los paquetes necesarios, asi que vamos por la via gratuita, ubuntu que va de lujo.

Lo mejor para hacer estas instalaciones de prueba es que utilicemos una MV (maquina virtual), yo utilizo VirtualBox, pero para gustos hay colores,:))


Comenzamos:

1-Nos descargamos la base de datos de 64bits desde www.oracle.com, la base de datos son 2 ficheros que luego hay que extraer a una misma carpeta, es decir a database. Tambien podemos descargarnos el cliente de 64bits para utilizar el SQLPLUS.

2-Una vez descargado, lo primero que debemos hacer en nuestro ubuntu es configurar la red como fija, para ello editamos el fichero interfases que se encuentra en /etc/network:

sudo nano /etc/network/interfaces

Ahi debemos cambiar donde dice por ejemplo iface eth0 inet dhcp por lo siguiente:

iface eth0 inet static

address 192.168.0.20
netmask 255.255.255.0
gateway 192.168.0.1

(lo de la ip depende siempre claro del rango que utilicemos en nuestro router o red).

Luego de guardar los cambios y salir, o bien podemos reiniciar el servicio de red o reiniciamos el equipo como ustedes prefieran...

2-Librerias y utilidades necesarias segun el instalador de Oracle:

elfutils-libelf-devel-0.137-3.el5.x86_64.rpm
elfutils-libelf-devel-static-0.137-3.el5.x86_64.rpm
gcc-c++-4.1.2-48.el5.x86_64.rpm
glibc-devel-2.5-49.i386.rpm
glibc-devel-2.5-49.x86_64.rpm
libaio-devel-0.3.106-5.i386.rpm
libaio-devel-0.3.106-5.x86_64.rpm
libstdc++-4.1.2-48.el5.x86_64.rpm
libstdc++-devel-4.1.2-48.el5.x86_64.rpm
sysstat-7.0.2-3.el5.x86_64.rpm
unixODBC-devel-2.2.11-7.1.i386.rpm
unixODBC-devel-2.2.11-7.1.x86_64.rpm

O lo que es lo mismo:

sudo apt-get install build-essential
sudo apt-get install libaio1
sudo apt-get install libaio-dev
sudo apt-get install unixODBC
sudo apt-get install unixODBC-dev
sudo apt-get install pdksh
sudo apt-get install expat
sudo apt-get install sysstat
sudo apt-get install libelf-dev
sudo apt-get install elfutils
sudo apt-get install lsb-cxx

Debemos instalar la libreria libstdc++ 5 por que ubuntu viene con la ver. 6:

64 bit

$ wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-20ubuntu1_amd64.deb

** Si el mirror o enlace no funciona, pueden probar solo con la ruta, sin el fichero por que a veces cambian la version y las antiguas las borran.

$ dpkg-deb -x libstdc++5_3.3.6-17ubuntu1_amd64.deb ia64-libs
$ sudo cp ia64-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib64/
$ cd /usr/lib64/

$ sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5

Luego instalamos el compilador y las otras herramientas:

sudo apt-get install gcc make binutils lesstif2 rpm libmotif3 libaio gawk alien ksh

3-Creamos los usuarios y grupos:

sudo groupadd oinstall
sudo groupadd dba
sudo groupadd nobody
sudo useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
sudo usermod -g nobody nobody

**
sudo usermod -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle << si ya existe el usuario oracle.
**

4-Creamos la carpeta destino donde se van a instalar los ficheros del software de la base de datos y los ficheros de datos (oradata):

mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
mkdir -p /u02/oradata

chown oracle:oinstall /u01/app/oracle
chown oracle:oinstall /u01/app/oraInventory
chown oracle:oinstall /u02/oradata

chmod 750 /u01/app/oracle
chmod 750 /u01/app/oraInventory
chmod 750 /u02/oradata


5-Creamos los enlaces simbolicos:

# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/rpm /bin/rpm
# ln -s /usr/bin/basename /bin/basename
# ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a

# ln -s /usr/lib/libpthread_nonshared.a /usr/lib/i386-linux-gnu/libpthread_nonshared.a

#ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a

6-Le indicamos al sistema que el usuario oracle debe tener acceso root editando el fichero que se encuentra en /etc/sudoers:

sudo nano /etc/sudoers

Y añadimos esta informacion

oinstall ALL=(ALL) ALL
oracle ALL=(ALL) ALL

7. Configuramos los parametros de memoria compartida, editando el fichero que se encuentra en /etc/sysctl.conf o ejecutando el siguiente script, para ejecutar este script debemos cambiarnos a superusuario con el comando su > INTRO y escribimos la contraseña de root:

echo "#">> /etc/sysctl.conf
echo "# Oracle 11gR2 entries">> /etc/sysctl.conf
echo "fs.aio-max-nr=1048576" >> /etc/sysctl.conf
echo "fs.file-max=6815744" >> /etc/sysctl.conf
echo "kernel.shmall=2097152" >> /etc/sysctl.conf
echo "kernel.shmmni=4096" >> /etc/sysctl.conf
echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range=9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default=262144" >> /etc/sysctl.conf
echo "net.core.rmem_max=4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default=262144" >> /etc/sysctl.conf
echo "net.core.wmem_max=1048586" >> /etc/sysctl.conf
echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf

Luego recargamos el fichero de configuracion sysctl.conf con el comando # sysctl -p. (sin el .).

8-Como vamos a utilizar Bash debemos añadir este código a /etc/profile

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


9-Modificamos el fichero limits.conf que se encuentra en /etc/security/limits.conf y agregamos estas lineas:

sudo nano /etc/security/limits.conf

oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535

10-Descomprimimos la instalacion y la preparamos:

Unzip linux.x64_11gR2_database_1of2.zip
Unzip linux.x64_11gR2_database_2of2.zip

Al descomprimir estos ficheros se nos queda la carpeta database por lo que debemos asignarle un grupo con estos comandos:

sudo chown -R oracle:oinstall database
sudo chown -R oracle:oinstall /u01/app/oracle

11-Comenzamos la instalacion de Oracle, para ello entramos en la carpeta database y arrancamos el script runinstaller.sh (ojo, ya como usuario oracle no como root):

su oracle
cd /path_to_extracted_files
./runInstaller

-------------------------------------------------------------------------------------------------------------------------

Actualización 09-08-2016: Si por un casual, al lanzar la instalación de Oracle, nos devuelve el siguiente error:

No protocol specified
/usr/bin/xdpyinfo: unable to open display ":0.0".

Tendremos que realizar los siguientes pasos:

1-Accedemos como root (su root)
2-Ejecutamos como root: DISPLAY=:0; export DISPLAY; xhost +;
3-Nos volvemos a conectar como el usuario oracle: su oracle
4-Como usuario oracle, ejecutamos DISPLAY=:0 ; export DISPLAY

5-Volvemos a ejecutar la instalación.

-------------------------------------------------------------------------------------------------------------------------

12-Luego de la instalacion hay que ejecutar los script que solicita el instalador de Oracle, debemos cambiarnos a root para ejecutarlos:

su
Password:

/u01/app/oracle/oraInventory/orainstRoot.sh

Y

/u01/app/oracle/product/11.2.0/db_home1/root.sh

13-Por ultimo definimos las variables de entorno en el fichero etc/profiles:

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

export ORACLE_OWNR=oracle
export
export ORACLE_UNQNAME=ORCL << siempre y cuando nuestra bbdd se llame ORCL...
export ORACLE_SID=ORCL << siempre y cuando nuestra bbdd se llame ORCL...
PATH=$PATH:$/u01/app/oracle/product/11.2.0/dbhome_1/bin

14-Para instalar el cliente de Oracle debemos realizar estos breves pasos, lo anterior ya no es necesario por que las librerias ya las hemos instalado para la base de datos:

14.1 Nos descargamos el cliente desde www.oracle.com y lo descomprimimos:

unzip linux.x64_11gR2_client.zip

14.2 Entramos al directorio client y ejecutamos el script runinstaller.sh (como usuario oracle):

cd client
./runInstaller

Despues de la instalacion del cliente es necesario ejecutar los script que indica la instalacion, como usuario root.

NOTA: En los prerequisitos del instalador, nos informa que las librerias requeridas no existen, esto es por que justo la version que figura ahi fue la que se utilizo en la creacion del instalador pero con las que hemos instalado anteriormente funcionan perfecto.

Si necesitan crear el script de inicio para que arranque solo el listener y bbdd, en este mismo blog hace un par de semanas publique el script.

Espero que les resulte util....

Salu2.
Share on Google Plus
    Blogger Comment

8 comentarios:

Ternero dijo...

Hola,
Muchisimas por cada aportación que realizas a este mundo.
Una pregunta que librería sería para una BBDD de 32Bit :( no dispongo de tecnologias de 64 aún en casa.
cuando haces referencia a:
$ wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-20ubuntu1_amd64.deb

Andrés Gómez dijo...

hola, gracias por el tutorial, estoy tratando de seguirlo en la 10.10 de ubuntu, pero tengo un problema al llegar a la ejecución, de runInstaller, devuelve un error así " .oui:2: Syntax error: ")" unexpected ", podrías tener alguna idea de como solucionarlo?

MUCHAS GRACIAS. SALUDOS!

Ebenezer dijo...
Este comentario ha sido eliminado por el autor.
Ebenezer dijo...

yo tengo el mismo error que Andres Gomez, y lo estoy instalando en Ubuntu 11.04 de 64 bits

encontre un post que dice que es por la version que se bajo de Oracle, si bajasta tambien la que dice zlinux, ahorita estoy bajando la otra, deja pruebo con esa y te comento como me va!!

Andres Carrillo dijo...
Este comentario ha sido eliminado por el autor.
Andres Carrillo dijo...

hola quiero hacer un upgrade de 10g a 11g pienso en hacerlo con DBUA pero no estoy seguro lo voy a realizar sobre ubuntu 10.10 de 64bits alguien que haya hecho algo me puede dar una luz de por donde ir?

Andres Carrillo dijo...
Este comentario ha sido eliminado por el autor.
Andres Carrillo dijo...
Este comentario ha sido eliminado por el autor.