Instalando o Oracle Database 11g Release 2 (11.2) no Red Hat 6.2 – Resolvendo dependencias

Posted by Bento | Posted in Banco de Dados, Linux, Oracle, Red Hat, Sistemas Operacionais | Posted on 04-05-2012-05-2008

7

Instalando o Oracle Database 11g Release 2 (11.2) no Red Hat 6.2

Resolvi criar este post devido algumas dificuldades que encontramos em migrar de versão do oracle 10g para 11g R2 e de Plataforma Windows 2003 Standard (32) para Red Hat 6.2 X86_64

O problema de fato foi na etapa 18 da instalação do banco de dados, pois o oracle exige alguns pacotes em versão inferior a que está disponivel no Red Hat 6.2 e com a compilação i386, sendo que estão disponiveis apenas na compilação i686 (resumindo ambos são versão 32b porem o nome da compilação mudou)

ora_dependencias

ora_dependencias

Dependencias

libaio-0.3.105
compat-libstdc++--33-3.2.3
libaio-devel-0.3.105
libgcc-3.4.6
libstdc++-3.4.6
unixODBC-2.2.11
unixODBC-devel-2.2.11
pdksh-5.2.14

Eu tentei desistalar alguns pacotes que estavam em versão mais atual para instalar na versão que o instalador pediu o resultado foi um fracasso, pois não é possivel desistalar todos os pacotes por causa de várias dependencias que eles possuem, além do fato de estarmos usando um sistema atualizado e fazendo ele trabalhar com pacotes desatualizados… leia abaixo o resultado da minha experiencia.

Desistalação de Pacotes com RPM (Red Hat Package Manager)

Importante – Nunca use o comando (rpm -e –nodeps)

A desistalação de um pacote é bem simples

# rpm -e nome-pacote

Quando rodar o comando para remoção e o pacote possuir dependencias com algum outro, será mostrado uma mensagem erro informando as dependencias neste caso não é possivel remover o pacote até que seja resolvido as dependencias, mas se realmente quiser a remoção deste pacote, ignorando quaisquer avisos e problemas posteriores acrescente a opção –nodeps (não recomendo usar este comando leia abaixo o porque).

# rpm -e --nodeps nome-pacote

Este comando remove os pacotes ignorando as depencias que o mesmo tiver.
Acabei usando o comando para remover um pacote forçado que era essencial, e o que aconteceu??(error while loading shared libraries cannot open shared object file: No such file or directory) tive que reinstalar o Red Hat(o suporte RH que deu a noticia =/), enfim, minha sorte foi que o ambiente estava em fase de preparação inicial então gastamos algumas horas a mais para voltar tudo ao normal. Ainda bem =).

Bom voltando ao scopo principal deste post, Como resolver as dependencias da instalação ?

Já sabemos que é necessário ter os pacotes tanto na versão x86_64 como na versão i686, então agora vamos rodar um comando para verificarmos se os pacotes estão instalados e quais as versões deles.

Verificando os pacotes e versões:

#rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}  (%{ARCH})\n'  libaio glibc compat-libstdc libgcc libstdc++ unixODBC unixODBC-devel

O resultado deverá ser parecido com este:

package  libaio is not installed
glibc-2.12-1.47.el6_2.9  (x86_64)
package compat-libstdc is not installed
libgcc-4.4.6-3.el6  (x86_64)
libstdc++-4.4.6-3.el6  (x86_64)
unixODBC-2.2.14-11.el6  (x86_64)
unixODBC-devel-2.2.14-11.el6  (x86_64)

Observe 2 coisas;

A primeira é que estão faltando os pacotes na versão i386, mas iremos instalar a compilação i686 que temos disponivel Red Hat 6.2
E que acusou que não temos 2 pacotes instalados (is not installed)

Para instalar os pacotes que faltam você poderá usar o RPM ou YUM
RPM – è necessário ter baixado o pacote ou usar a midia de instalação do RH no diretorio Packages

# rpm -ivh libaio-0.3.107-10.el6.i686.rpm

faça isto para todos os pacotes que precisa instalar!!!

YUM – Desta forma não é necessário instalar pacote por pacote, porém este comando instala o pacote na última versão disponivel para o seu sistema.

# yum install -y unixODBC.i686
# yum install -y unixODBC-devel.i686
# yum install -y unixODBC-devel

Esta é a melhor opção sem sombra de dúvidas!!!

Instale todos os pacotes na versão x86_64 e i686, e rode o comando novamente para verificar se instalou tudo que precisa.

#rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}  (%{ARCH})\n'  libaio glibc compat-libstdc libgcc libstdc++ unixODBC unixODBC-devel

Você terá um retorno assim:

package  libaio is not installed
glibc-2.12-1.47.el6_2.9  (x86_64)
glibc-2.12-1.47.el6_2.9  (i686)
package compat-libstdc is not installed
libgcc-4.4.6-3.el6  (x86_64)
libgcc-4.4.6-3.el6  (i686)
libstdc++-4.4.6-3.el6  (x86_64)
libstdc++-4.4.6-3.el6  (i686)
unixODBC-2.2.14-11.el6  (x86_64)
unixODBC-2.2.14-11.el6  (i686)
unixODBC-devel-2.2.14-11.el6  (x86_64)
unixODBC-devel-2.2.14-11.el6  (i686)

Como consultar se você tem instalado um pacote especifico

# rpm -qa | grep libaio

O retorno será assim:

libaio-0.3.107-10.el6.i686
libaio-0.3.107-10.el6.x86_64
libaio-devel-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6.x86_64
 
# rpm -qa | grep compat-libstdc
compat-libstdc++-33-3.2.3-69.el6.i686
compat-libstdc++-296-2.96-144.el6.i686
compat-libstdc++-33-3.2.3-69.el6.x86_64

http://blog.fabianobento.com.br/downloads/pdksh-5.2.14-12.i386.rpm
http://blog.fabianobento.com.br/downloads/pdksh-5.2.14-21.x86_64.rpm

Se você instalou os pacotes conforme exigencia da instalação do Oracle, você poderá proseguir com a instalação normalmente marcando a opção (Ignore All) para ignorar o aviso e assim proseguir com a instalaçao (conforme indicação da Oracle).

Não esqueça de liberar a porta 1521 no firewall (IPTABLES)

Bom pessoal, por hoje é isso até a próxima.

Comments posted (7)

Parabéns, excelente conteúdo.

Fabiano Fera, me tira uma duvida mortal que me impede de arriscar, estou com o red hat 6.2, com um servidor novo aguardando uma decisão, usando partição EXT4 voce ver melhora de performance para o oracle? e quanto ao oracle em si, acha melhor usar a velha e segura ext3 ou ext4 é tão seguro e compativel quanto? Agradeço d+

Opa blz como está?
O ext4 é uma melhoria do ext3 que permite manipular arquivos gigantes(para alta disponibilidade) além de várias melhorias, eu estou usando normalmente no meu ambiente de produção há 6 meses e não tive nenhum problema.
Com certeza se você pesquisar na internet é provável que encontre alguns comentários sobre instabilidade e outros fatores, pois toda vez que lança uma tecnologia nova isso sempre acontece e leva um tempo para difundir e se adequar as mudanças, mas como eu disse estou usando no meu ambiente de produção normalmente e não tive nenhum problema ou instabilidade e claro, sempre é recomendável ter backup do banco e estutura, além de uma redundancia.
Você poderá usar normalmente e caso queira ter mais informações aconselho entrar em contato com o suporte da Oracle e Red Hat.

Fabiano, tem algum problema caso eu desinstale o ksh-20100621-19.el6_4.3.i686?

É que preciso instalar o pdksh-5.2.14, porém ele tem conflito com o ksh.

Grato.

Renato,
Não tem problema desinstalar, desde que use o comando
rpm -e nome-do-pacote, ou até o yum remove pacote

Olá Bento.

No comando rpm -q –qf ‘%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})n’ libaio glibc compat-libstdc libgcc libstdc++ unixODBC unixODBC-devel

Faltou um “\” antes do N em “… (%{ARCH})n”.

Caso execute o comando sem o “\” ele não quebrará linha e ficará complicado de entender o retorno do comando.

Outra pergunta, você sabe me dizer se com a

Olá Bento.

No comando rpm -q –qf ‘%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})n’ libaio glibc compat-libstdc libgcc libstdc++ unixODBC unixODBC-devel

Faltou um “\” antes do N em “… (%{ARCH})n”.

Caso execute o comando sem o “\” ele não quebrará linha e ficará complicado de entender o retorno do comando.

Outra pergunta, você sabe me dizer se a sua instalação criou as pastas lib e lib32?