Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Não é possível compilar GI 12.1.0.2 e falha de segmentação


Então, eu tenho tido um tempo difícil ultimamente em coisas que eu deveria saber melhor. Todos nós já estivemos lá antes.

Estou tentando recriar um testbed RAC de 2 nós no meu laptop. Este será o Oracle 12.1.0.2 no Oracle Linux 6.5 com VirtualBox 5.0. Deve ser bem simples, certo? Eu até escrevi instruções sobre como fiz isso em abril deste ano. Estou seguindo as mesmas etapas exatas no meu documento no mesmo laptop exato, mas ainda tenho problemas. As únicas duas coisas que mudaram é que estou indo diretamente para 12.1.0.2 (meu documento era 12.1.0.1, acredito) e agora tenho VB 5.0 no meu laptop.

Eu tenho meus 2 nós virtuais criados e prontos para serem usados. Eu aciono o OUI para iniciar minha instalação do Grid Infrastructure. Quando o OUI chega à fase de vinculação, recebo uma mensagem de erro.















Erro ao invocar o alvo 'irman ioracle' do makefile.

Todos nós já passamos por uma encruzilhada na vida. Você tem uma escolha a fazer. Vou para a esquerda ou vou para a direita? Infelizmente para mim, virei na direção errada e desperdicei algumas semanas do meu tempo livre. Nesse ponto, eu tinha uma decisão a tomar. Faço exatamente como o erro disse ou confio na minha experiência? Ignorei cegamente o erro e confiei na minha experiência. Bobo eu.

Apenas dois meses atrás eu tive exatamente o mesmo erro quando não consegui compilar o GI 12.1.0.2 em um testbed. Esse testbed estava sendo executado em hosts VMWare ESX. Eu registrei um SR com o Suporte da Oracle e eles me informaram que meu problema de compilação era porque eu não tinha RAM suficiente dedicada a cada máquina virtual. Sendo um ambiente virtual, isso foi fácil de corrigir. Eu fiz meu SysAdmin aumentar a RAM e trocar o espaço nas máquinas virtuais e o GI 12.1.0.2 compilado exatamente como prometido. Então, naturalmente, presumi que estava enfrentando o mesmo problema aqui. No meu laptop, continuei aumentando a RAM. Eu expandi o espaço de troca. Cheguei até a reconstruir os nós do zero. Passei as últimas duas semanas no caminho da experiência e achei que era irregular, arranhado, empoeirado e muito desagradável.

O caminho que eu deveria ter tomado era fazer explicitamente como a caixa pop-up dizia... leia o arquivo de log para mais detalhes. Quando finalmente superei minha teimosia em pensar que sabia a resposta, li o arquivo de log. Encontrei as seguintes mensagens no final.


INFO:- Vinculando Oracle
INFO:rm -f /u01/app/crs12.1.0.2/rdbms/lib/oracle
INFO:/usr/bin/ld:não foi possível encontrar -ljavavm12collect2:ld retornou 1 status de saída
INFO:make:*** [/u01/app/crs12.1.0.2/rdbms/lib/oracle] Erro 1



Bem, é completamente óbvio agora! Um arquivo de biblioteca está ausente. Uma rápida verificação na Internet levou-me facilmente à solução. Não estou sozinho nesta questão, mas por algum motivo o OUI não está copiando libjavavm12.a para $GRID_HOME/lib como deveria ser. Com essa caixa pop-up ainda lá, eu emito o seguinte no nó.
[oracle@host01 ~]$ export GRID_HOME=/u01/app/crs12.1.0.2[oracle@host01 ~]$ cp $GRID_HOME/javavm/jdk/jdk7/lib/libjavavm12.a $GRID_HOME/lib 


Então voltei para a caixa pop-up e apertei o botão RETRY. Com certeza, a maldita coisa compilou e o OUI terminou seu trabalho.

ATUALIZAÇÃO:Tive o mesmo problema ao instalar o software RDBMS 12.1.0.2 no cluster. Eu usei a mesma correção exata para obter o Oracle para compilar corretamente para o software de banco de dados também.

Mas eu não estava feito. Como qualquer pessoa que instalou o Grid Infrastructure sabe, eles precisam executar o script $GRID_HOME/root.sh em todos os nós posteriormente no processo. Quando tentei isso no primeiro nó, recebi um erro de “falha de segmentação”. Acontece que há um problema (e novamente, não estou sozinho aqui) com perl nas instalações do GI 12.1.0.2. Mesmo o seguinte receberá uma falha de segmentação:

cd $GRID_HOME/perl/bin
./perl -v

A solução é reinstalar o Perl em $GRID_HOME. Encontrei uma entrada de blog de Laurent Leturgez que descreve exatamente como isso é feito. Eu nunca teria descoberto isso sozinho. Depois de reinstalar o Perl em todos os meus nós, o script root.sh funcionou perfeitamente.

ATUALIZAÇÃO:Tive o mesmo problema ao instalar o software RDBMS 12.1.0.2 no cluster. Usei a mesma correção exata para que o perl fosse executado sem uma falha de segmentação.

Como todos nós, confio na minha experiência para me poupar muito tempo. Coisas que aprendi um mês ou um ano atrás são aplicadas hoje. Às vezes, a experiência nos atrapalha e nos leva por um caminho que desejávamos não ter percorrido.