você está aqui: Home  → Arquivo de Mensagens

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.

Como instalar o Oracle 11g no Ubuntu 8.04 Autor: Aldemari Borges(<aldemari (a) gmail com>) Versão: 1.1(08/05/2008)


 

 

Veja a relação completa dos artigos de Aldemari Borges

Opinião dos Leitores

Fabio
17 Fev 2014, 15:03
Passo-a-passo para instalar Oracle 11gR1 no Enterprise Linux 5 - 32bits no 64bits:

http://clientedigital.com.br/instalar-oracle-11gr1-no-enterprise-linux-5/
Marcos Lacerda
02 Dez 2011, 15:02
Boa tarde,

Realizei todos os passos do seu tuto e consegui com êxito instalar o Oracle 11G ... baixei o SQL Developer do site da oracle (rpm) e converti o mesmo para .deb (usando o alien) entretanto agora o seguinte erro é gerado ao tentar fazer um apt-get upgrade:

markos@chernobyl:~$ sudo apt-get updgrade
E: Invalid operation updgrade
markos@chernobyl:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
linux-generic linux-image-generic
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Do you want to continue [Y/n]? y
Setting up sqldeveloper (1.5.54.40-2) ...
/var/lib/dpkg/info/sqldeveloper.postinst: line 4: desktop-file-install: command not found
dpkg: error processing sqldeveloper (--configure):
subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
sqldeveloper
E: Sub-process /usr/bin/dpkg returned an error code (1)

Vc tem alguma idéia do que pode estar ocorrendo ???

Obrigado
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script