Como instalar o Oracle 11g no Ubuntu

Como instalar o Oracle 11g no Ubuntu

Como instalar oracle 11g no Ubuntu

Colaboração: Aldemari Borges

Data de Publicação: 25 de August de 2008

Neste artigo, iremos tratar sobre a instalação do Oracle 11g no Ubuntu 8.04, versão Desktop. A versão Desktop foi escolhida em decorrência da obrigação da instalação deste SGBD, exigir impreterivelmente, interface gráfica. No entanto, podemos considerar para efeitos gerais, que a versão Desktop seria a versão server* + interface gráfica + aplicativos desktop(openoffice, gimp, etc...). E que esta não irá influir tecnicamente de forma a inviabilizar seu funcionamento esperado.

Para quem instalar em servidor com hardware de servidor, é possível instalar a versão do kernel do prório ubuntu server, através do comando:

sudo apt-get install linux-server

O Oracle, pioneiro em sistemas de banco de dados gerenciável. Surgido através de um projeto para a CIA(Central Intelligence Agency). Que inclusive nomeou este produto, pois neste projeto tinha seu codinome de: "Oracle". Que mais tarde tornou-se produto comercializável para o mundo. Apesar de que, existe uma versão do Oracle, Label Security, chamada Trusted Oracle. Que sua liberação de utilização depende de aprovação do governo Norte-Americano. Ela possui maiores recursos a nível de segurança.

E pensavas que usávas a versão mais sofisticada hein?

Outra consideração cabível, seria relacionada a versão do sistema operacional que iremos utilizar. A Oracle recomenda e homologa apenas as distribuiçõess Entreprise's da RedHat e Suse, além de sua própria distribuição Unbreakable Linux. No entanto, somos do "lado negro da força" e iremos instalar em cima do Ubuntu 8.04, free, just it.

Área de SWAP

De antemão, precisaremos que na instalação do Linux, tenha sido setada uma área de SWAP de no mínimo 5GB.

Baixar o software

Primeiramente façamos o download do software no site da Oracle(http://www.oracle.com/technology/software/products/database/index.html). A Oracle permite que quase todos possam fazer este download com "facilidade", bastante apenas fazer um cadastrado no site. Lembrando que sua utilização em produção deve respeitar as leis de propriedade de uso do software.

A versão em questão seria a Oracle Database 11g Release 1 (11.1.0.6.0), para linux X86.

O arquivo a ser baixado possui 1.8GB.

Muita calma nesta hora(ou horas!).

Setando a senha do root

O Ubuntu não vem com a senha de root pré-definida. Devemos então setá-la, pois em alguns casos abaixo, deverá ser usada a conta de root para haver sucesso.

Para tanto executar como usuário "pré-administrador":

user@machine:~$ sudo passwd root

Alterando os Semáforos

Os semáforos condizem com a características que estabelecem o gerenciamento de inter-processos compartilhado.

Para verificar qual a atual configuração do semáforo do seu sistema, usar:

root@machine:~# cat /proc/sys/kernel/sem

Irão aparecer quatro informações;

  • SEMMSL = O kernel SEMMSL parâmetro é usado para controlar o número máximo de semáforos semáforos per set. A Oracle recomenda a fixação SEMMSL como sendo o maior parâmentro PROCESS do arquivo init.ora para todos os bancos de dados hospedados com o sistema Linux, acrescido de 10. Além disso, a Oracle recomenda a fixação de um valor de SEMMSL não inferior a 100.

  • SEMMNS = Número máximo de semáforos para todo o SO(Deve idealemente ser SEMMNI*SEMMSL)

  • SEMOPM = O kernel SEMOPM parâmetro é usado para controlar o número de semáforos operações que podem ser realizadas por chamada de sistema SEMOP.(O sistema de chamada semop(é uma função) fornece a capacidade de fazer várias operações de semáforos com um sistema de chamadas semop. Um conjunto semáforos pode ter o número máximo de SEMMSL semaphores por semáforos conjunto e, portanto, é recomendado para definir SEMOPM igual a SEMMSL.)

  • SEMMNI = O kernel SEMMNI parâmetro é usado para controlar o número máximo de semáforos conjuntos em todo o sistema Linux. A Oracle recomenda a fixação de um valor de SEMMNI não inferior a 100.

Coloquemos valores aceitáveis(padrão) para a instalação do Oracle 11g:

root@machine:~# echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf

==Definindo quantidade máxima de arquivos abertos==

Esta definição visa estabelecer a quantidade máxima de arquivos abertos no Sistema Operacional Linux.

root@machine:~# echo "fs.file-max=65536" >> /etc/sysctl.conf

==Memória compartilhada==

No Linux há a utilização de memória compartilhada no sistema, permitindo o acesso comum a processos em uso. Muito conhecido pelos Unixer's como System V IPC(Inter-process Comunication).

Este comando abaixo irá exibir a situação atual relacionada.

root@machine:~# ipcs -lm

==SHMMAX==

O SHMMAX parâmetro é usado para definir o tamanho máximo em bytes para um segmento de memória compartilhada, e deve ser grande o suficiente para definir o tamanho SGA que se irá definir.

Para sistemas de 32 bits, o SGA máximo padrão é de 1.7GB. Ou seja, para este caso basta definirmos um SHMMAX de 2Gb que irá atender satisfatoriamente a necessidade. Não há necessidade de maiores valores.

Para 2GB de memória compartilhada têm-se:

root@machine:~# echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf

==SHMMNI==

Este kernel parâmetro é usado para definir o número máximo de cada segmento de memória compartilhada(PAGE_SIZE). O valor padrão para este parâmetro é 4096.

root@machine:~# echo "kernel.shmmni=4096" >> /etc/sysctl.conf

==SHMALL==

Este parâmetro define a quantidade total de páginas de memória compartilhada.

root@machine:~# echo "kernel.shmall=2097152" >> /etc/sysctl.conf

==Tuning TCP==

Definir o range de portas altas:

root@machine:~# echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf

Definir o tamanho do buffer de memória de escrita default e máximo:

root@machine:~# echo "net.core.wmem_default = 1048576" >> /etc/sysctl.conf

root@machine:~# echo "net.core.wmem_max = 1048576" >> /etc/sysctl.conf

Definir o tamanho do buffer de memória de leitura default e máximo:

root@machine:~# echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf

root@machine:~# echo "net.core.rmem_max = 262144" >> /etc/sysctl.conf

Após tudo isso, façamos a leituras destas definições:

root@machine:~# sysctl -p

Continuando....

Vamos agora criar o usuário que irá rodar o SGBD Oracle:

root@machine:~# addgroup oinstall

root@machine:~# addgroup dba

root@machine:~# mkdir -p /u01/app/oracle

root@machine:~# useradd -c "Oracle" -g oinstall -G dba -p password -d /u01/app/oracle -s /bin/bash oracle

root@machine:~# passwd oracle

root@machine:~# cp /etc/skel/.profile /u01/app/oracle/.bash_profile

root@machine:~# chown -R oracle:dba /u01

root@machine:~# echo "export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_2/" >> /u01/app/oracle/.bash_profile

root@machine:~# echo "export ORACLE_SID=NOMEDASID" >> /u01/app/oracle/.bash_profile

root@machine:~# echo "export PATH=$PATH:/u01/app/oracle/product/11.1.0/db_2/bin/" >> /u01/app/oracle/.bash_profile

Definindo limites para o usuário Oracle

Precisaremos fazer algumas definições de limites de número máximo de processos aberto pelo usuário Oracle:

Com o usuário Oracle(su - oracle) poderemos verificar a atual situação:

oracle@machine:~$ ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 16383

max locked memory (kbytes, -l) 32

max memory size (kbytes, -m) unlimited

open files (-n) 1024

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 8192

cpu time (seconds, -t) unlimited

max user processes (-u) 16383

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

Deveremos então modificar alguns valores:

O arquivo /etc/security/limits.conf é o gardião destas informações de forma estática.

Ao final do arquivo adicione as linhas abaixo(com TAB):

oracle soft nproc 2047

oracle hard nproc 16383

oracle soft nofile 4096

oracle hard nofile 65535

No arquivo /etc/pam.d/login, adicione ao final o seguinte:

session required /lib/security/pam_limits.so

session required pam_limits.so

obs: Para testar as mudanças acima, pressionar as teclas CTRL+ALT+2, logar como oracle, e o comando ulimit -u e ulimit -n.

Precisaremos instalar alguns pacotes básicos:

root@machine:~# apt-get install gcc make binutils lesstif2 libc6 libc6-dev\

rpm libmotif3 libaio1 libaio-dev gawk alien libg20 ksh gcc-3.3 g++-3.4\

libstdc++5 gettext cabextract libpng3 libjpeg62 libjpeg-progs

==Instalador==

Devemos então copiar o arquivo baixado para o diretório padrão definido /u01/app/oracle A permissão ao usuário oracle deve ser concedida:

root@machine:~# chown -R oracle:dba /u01/app/oracle

root@machine:~# ln -s /usr/lib/rpm/ /var/lib/rpm

==Manha do gato(:)~==

Para compartilhar sua interface gráfica deveremos fazer alguns procedimentos:

user#machine:~$ xhost +

user@machine:~$ su - oracle(coloque a senha pré-definida)

oracle@machine:~$ export DISPLAY=:0.0

oracle@machine:~$ /u01/app/oracle/Oracle11g/database/runInstaller

Siga as telas de avançar.

Ignore os erros de verificação. Pois no Oracle11g a verificação de SO está mais restritiva.

Comentários