jueves, 20 de septiembre de 2012

make: 1254-004 The error code from the last command is 12



Para una prueba de restauración del backup de un RAC se copio el ORACLE_HOME a un nuevo servidor, al momento de “apagar” la configuración  del RAC en los binarios se presentaron los siguientes problemas:

hcdatxx> /home/oracle10:database> cd $ORACLE_HOME/rdbms/lib
hcdatxx> /oracle/app/product/10.2.0/db/rdbms/lib:database> make -f ins_rdbms.mk rac_off
        rm -f /oracle/app/product/10.2.0/db/lib/libskgxp10.a
        cp /oracle/app/product/10.2.0/db/lib//libskgxpd.a /oracle/app/product/10.2.0/db/lib/libskgxp10.a
        rm -f /oracle/app/product/10.2.0/db/lib/libskgxn2.a
        cp /oracle/app/product/10.2.0/db/lib//libskgxns.a  /oracle/app/product/10.2.0/db/lib/libskgxn2.a
        /bin/ar -X64 cr /oracle/app/product/10.2.0/db/rdbms/lib/libknlopt.a /oracle/app/product/10.2.0/db/rdbms/lib/ksnkcs.o
hcdatxx> /oracle/app/product/10.2.0/db/rdbms/lib:database>

Problema #1

hcdatxx> /oracle/app/product/10.2.0/db/rdbms/lib:database> cd $ORACLE_HOME/bin
hcdatxx> /oracle/app/product/10.2.0/db/bin:database> relink oracle
        chmod 755 /oracle/app/product/10.2.0/db/bin

 - Linking Oracle
        rm -f /oracle/app/product/10.2.0/db/rdbms/lib/oracle
        ld -b64 -o /oracle/app/product/10.2.0/db/rdbms/lib/oracle -L/oracle/app/product/10.2.0/db/rdbms/lib/ -L/oracle/app/product/10.2.0/db/lib/ -bnoerrmsg  -bbigtoc -bnoipath -bI:/oracle/app/product/10.2.0/db/lib/ksms.imp /oracle/app/product/10.2.0/db/rdbms/lib/opimai.o /oracle/app/product/10.2.0/db/rdbms/lib/ssoraed.o /oracle/app/product/10.2.0/db/rdbms/lib/ttcsoi.o  -lperfsrv10 /oracle/app/product/10.2.0/db/lib/nautab.o /oracle/app/product/10.2.0/db/lib/naeet.o /oracle/app/product/10.2.0/db/lib/naect.o /oracle/app/product/10.2.0/db/lib/naedhs.o /oracle/app/product/10.2.0/db/rdbms/lib/config.o -bI:/usr/lib/aio.exp   -lserver10 /oracle/app/product/10.2.0/db/lib/libodm10.so -lnnet10  -lskgxp10 -lsthasgen10 /oracle/app/product/10.2.0/db/has/lib/clssgc.o /oracle/app/product/10.2.0/db/lib/libstskgxn2.a -lstocr10 -lstocrb10  -lstocrutl10 -lsthasgen10 /oracle/app/product/10.2.0/db/has/lib/clssgc.o /oracle/app/product/10.2.0/db/lib/libstskgxn2.a   -lclient10  -lvsn10  -lcommon10 -lgeneric10 `if [ -f /oracle/app/product/10.2.0/db/lib/libavserver10.a ] ; then echo "-lavserver10" ; else echo "-lavstub10"; fi` `if [ -f /oracle/app/product/10.2.0/db/lib/libavclient10.a ] ; then echo "-lavclient10" ; fi`  /oracle/app/product/10.2.0/db/rdbms/lib/defopt.o -lknlopt  `if /bin/ar -X64 tv /oracle/app/product/10.2.0/db/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap10 -bE:/oracle/app/product/10.2.0/db/rdbms/lib/olap.exp" ; fi`  -lslax10 -lpls10  -lplp10 -bE:/oracle/app/product/10.2.0/db/rdbms/lib/plsqlncomp.exp  /oracle/app/product/10.2.0/db/lib/libstclsra10.a -lstdbcfg10 -lserver10 -lclient10  -lvsn10  -lcommon10 -lgeneric10  -lknlopt -lslax10 -lpls10  -lplp10  -ljox10 -bE:/oracle/app/product/10.2.0/db/rdbms/lib//oracle.exp   `sed -e 's/-ljava//g' /oracle/app/product/10.2.0/db/lib/ldflags`      -lncrypt10 -lnsgr10 -lnzjs10 -ln10  -lnnz10 -lnl10 -lnzjs10 -lnro10 `sed -e 's/-ljava//g' /oracle/app/product/10.2.0/db/lib/ldflags`      -lncrypt10 -lnsgr10 -lnzjs10 -ln10  -lnnz10 -lnl10 -lnzjs10 -lclient10  -lvsn10  -lcommon10 -lgeneric10   -lmm -lsnls10 -lnls10  -lcore10 -lsnls10  -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10  -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `sed -e 's/-ljava//g' /oracle/app/product/10.2.0/db/lib/ldflags`      -lncrypt10 -lnsgr10 -lnzjs10 -ln10  -lnnz10 -lnl10 -lnzjs10 -lnro10 `sed -e 's/-ljava//g' /oracle/app/product/10.2.0/db/lib/ldflags`      -lncrypt10 -lnsgr10 -lnzjs10 -ln10  -lnnz10 -lnl10 -lnzjs10 -lclient10  -lvsn10  -lcommon10 -lgeneric10 -lpls10   -lsnls10 -lnls10  -lcore10 -lsnls10  -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10  -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10  -lclient10  -lvsn10  -lcommon10 -lgeneric10 -lsnls10 -lnls10  -lcore10 -lsnls10  -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10  -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lserver10 `if /bin/ar -X64 tv /oracle/app/product/10.2.0/db/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo10"; fi` -lctxc10 -lctx10 -lzx10 -lgx10 -lctx10 -lzx10 -lgx10 -lordimt10  -lsnls10 -lnls10  -lcore10 -lsnls10  -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10  -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lsnls10 -lunls10  -bE:/oracle/app/product/10.2.0/db/rdbms/lib//libcorejava.exp  -lld -lm `cat /oracle/app/product/10.2.0/db/lib/sysliblist`  -lm  `if [ "\`/usr/bin/uname -v\`" = "4" ]; \
        then echo "-bI:/oracle/app/product/10.2.0/db/lib/pw-syscall.exp"; fi;`  `if /bin/ar -X64 t /oracle/app/product/10.2.0/db/rdbms/lib/libknlopt.a | grep '^'kcsm.o > /dev/null 2>&1 ; then echo "-lha_gs_r -lha_em_r -lpthreads"; fi` -locijdbcst10  -lwwg  -bpT:0x100000000 -bpD:0x110000000 -bforceimprw
make: 1254-004 The error code from the last command is 12.
Stop.

 Los binarios nunca fueron modifcados.

Solución #1

La raíz de esté problema  fueron los recursos definidos a nivel de SO para el usuario dueño de los binarios de Oracle. Básicamente se le coloco unlimited a todo:

Esta es la documentacion de IBM:

http://publib.boulder.ibm.com/infocenter/tivihelp/v10r1/index.jsp?topic=%2Fcom.ibm.srm.doc_7.1%2Finstalling%2Fsrc%2Ft_ccmdb_setulimit.html

Esta es una nota de Oracle que habla sobre el error y su solución:

AIX Errors 0711-101 and 1254-004 Occur When Relinking The 9.2.0 $ORACLE_HOME/bin/oracle Executable [ID 251438.1]

Aunque en mi caso los binarios eran de la versión 10g, el problema era el mismo.

Problema #2

hcdatxx> /oracle/app/product/10.2.0/db/bin:database> sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.4.0 - Production on Thu Sep 20 10:13:04 2012

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL> startup nomount
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:sendmsg failed with status: 59
ORA-27301: OS failure message: Message too long
ORA-27302: failure occurred at: sskgxpsnd1
ORA-27303: additional information: MTU verification failed to send msg.


Solución #2

El problema radicaba en la configuración de algunos para metros que manejan los protocolos
UDP and TCP. Con el usuario root se ejecutaron los siguientes comandos para darle solución al tema:

 no -o tcp_sendspace=262144
 no -o tcp_recvspace=262144
 no -o udp_sendspace=65536
 no -o udp_recvspace=262144
 no -o rfc1323=1

Esta es una nota de Oracle que habla sobre el error y su solución:

Ora-27302: sskgxpsnd1 - Starting Instance [ID 300956.1]




No hay comentarios: