Saturday, March 14, 2020

Exadata - Linking Oracle Home with RDS or UDP protocol in Exadata

Linking Oracle Home with RDS or UDP protocol in Exadata:

Enabling RDS or UDP protocol in Exadata:

In Oracle Exadata oracle home either work with RDS or UDP protocol. We need to enable wither of one protocol on RAC oracle home.

If there is the miss match between the protocol across the RAC nodes, RAC instance will not come online.

Example:
4 node RAC, In node1 Oracle Home is enabled with RDS and rest other nodes Oracle Home enabled with UDP. In this scenario RAC instances will not come online. 

[root@eddrdbadm01 ~]# dcli -g dbs_group -l root /u01/product/db/CSEBSC1/11.2.0.3/bin/skgxpinfo
eddrdbadm01: rds      >>>>>>>>>>>>>>> Issue
eddrdbadm02: udp
eddrdbadm03: udp
eddrdbadm04: udp

Solution: We need to either convert all RAC nodes to link with RDS protocol or UDP protocol.

[root@eddrdbadm01 ~]# dcli -g dbs_group -l root /u01/product/db/CSEBSC1/11.2.0.3/bin/skgxpinfo
eddrdbadm01: udp
eddrdbadm02: udp
eddrdbadm03: udp
eddrdbadm04: udp

[root@eddrdbadm01 ~]# dcli -g dbs_group -l root /u01/product/db/CSEBSC1/11.2.0.3/bin/skgxpinfo
eddrdbadm01: rds
eddrdbadm02: rds
eddrdbadm03: rds
eddrdbadm04: rds

Below is the MOS document explains how to convert or enable RDS or UDP in Oracle home.

Linking Home with the RDS or UDP (Doc: 1574772.1)

For RDS:
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk ipc_rdsioracle

For UDP:
$ cd $GRID_HOME/rdbms/lib
$ make -f ins_rdbms.mk ipc_gioracle

Enabling UDP:
===========
[oragold@HOST01 ~]$ . oraenv
ORACLE_SID = [/u01/app/oracle/product/11.2.0.4/EBSGOLD] ? EBSGOLD
The Oracle base has been set to /u01/app/oracle/EBSGOLD

[oragold@HOST01 ~]$ /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/srvctl status database -d EBSGOLD
Instance EBSGOLD1 is not running on node HOST01
Instance EBSGOLD2 is not running on node HOST02

[oragold@HOST01 ~]$ cd $ORACLE_HOME/rdbms/lib

[oragold@HOST01 lib]$ make -f ins_rdbms.mk ipc_g ioracle
rm -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/libskgxp11.so
cp /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib//libskgxpg.so /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/libskgxp11.so
chmod 755 /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin

 - Linking Oracle
rm -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/oracle
gcc  -o /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/oracle -m64 -z noexecstack -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/ -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/stubs/   -Wl,-E /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/opimai.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/ssoraed.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/ttcsoi.o  -Wl,--whole-archive -lperfsrv11 -Wl,--no-whole-archive /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/nautab.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/naeet.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/naect.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/naedhs.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/config.o  -lserver11 -lodm11 -lcell11 -lnnet11 -lskgxp11 -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11  -lvsn11 -lcommon11 -lgeneric11 -lknlopt `if /usr/bin/ar tv /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap11" ; fi` -lslax11 -lpls11  -lrt -lplp11 -lserver11 -lclient11  -lvsn11 -lcommon11 -lgeneric11 `if [ -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/libavserver11.a ] ; then echo "-lavserver11" ; else echo "-lavstub11"; fi` `if [ -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/libavclient11.a ] ; then echo "-lavclient11" ; fi` -lknlopt -lslax11 -lpls11  -lrt -lplp11 -ljavavm11 -lserver11  -lwwg  `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lmm -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lztkg11 `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11   -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `if /usr/bin/ar tv /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo11"; fi` -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/ctx/lib/ -lctxc11 -lctx11 -lzx11 -lgx11 -lctx11 -lzx11 -lgx11 -lordimt11 -lclsra11 -ldbcfg11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -locr11 -locrb11 -locrutl11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11  -loraz -llzopro -lorabz2 -lipp_z -lipp_bz2 -lippdcemerged -lippsemerged -lippdcmerged  -lippsmerged -lippcore  -lippcpemerged -lippcpmerged  -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lsnls11 -lunls11  -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lasmclnt11 -lcommon11 -lcore11 -laio    `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/11.2.0.4/EBSGOLD/lib -lm    `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/sysliblist` -ldl -lm   -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/lib
test ! -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracle ||\
           mv -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracle /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracleO
mv /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/oracle /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracle
chmod 6751 /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracle
[oragold@HOST01 lib]$

[oragold@HOST01 lib]$ /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/skgxpinfo
udp
[oragold@HOST01 lib]$

Enabling RDS:
===========
[oragold@HOST01 ~]$ . oraenv
ORACLE_SID = [/u01/app/oracle/product/11.2.0.4/EBSGOLD] ? EBSGOLD
The Oracle base has been set to /u01/app/oracle/EBSGOLD

[oragold@HOST01 ~]$ /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/srvctl status database -d EBSGOLD
Instance EBSGOLD1 is not running on node HOST01
Instance EBSGOLD2 is not running on node HOST02

[oragold@HOST01 ~]$ cd $ORACLE_HOME/rdbms/lib

[oragold@HOST01 lib]$ make -f ins_rdbms.mk ipc_rds ioracle                 
rm -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/libskgxp11.so
cp /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib//libskgxpr.so /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/libskgxp11.so
chmod 755 /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin

 - Linking Oracle
rm -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/oracle
gcc  -o /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/oracle -m64 -z noexecstack -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/ -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/stubs/   -Wl,-E /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/opimai.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/ssoraed.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/ttcsoi.o  -Wl,--whole-archive -lperfsrv11 -Wl,--no-whole-archive /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/nautab.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/naeet.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/naect.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/naedhs.o /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/config.o  -lserver11 -lodm11 -lcell11 -lnnet11 -lskgxp11 -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11  -lvsn11 -lcommon11 -lgeneric11 -lknlopt `if /usr/bin/ar tv /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap11" ; fi` -lslax11 -lpls11  -lrt -lplp11 -lserver11 -lclient11  -lvsn11 -lcommon11 -lgeneric11 `if [ -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/libavserver11.a ] ; then echo "-lavserver11" ; else echo "-lavstub11"; fi` `if [ -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/libavclient11.a ] ; then echo "-lavclient11" ; fi` -lknlopt -lslax11 -lpls11  -lrt -lplp11 -ljavavm11 -lserver11  -lwwg  `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lmm -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lztkg11 `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11   -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `if /usr/bin/ar tv /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo11"; fi` -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/ctx/lib/ -lctxc11 -lctx11 -lzx11 -lgx11 -lctx11 -lzx11 -lgx11 -lordimt11 -lclsra11 -ldbcfg11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -locr11 -locrb11 -locrutl11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11  -loraz -llzopro -lorabz2 -lipp_z -lipp_bz2 -lippdcemerged -lippsemerged -lippdcmerged  -lippsmerged -lippcore  -lippcpemerged -lippcpmerged  -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lsnls11 -lunls11  -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lasmclnt11 -lcommon11 -lcore11 -laio    `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/11.2.0.4/EBSGOLD/lib -lm    `cat /u01/app/oracle/product/11.2.0.4/EBSGOLD/lib/sysliblist` -ldl -lm   -L/u01/app/oracle/product/11.2.0.4/EBSGOLD/lib
test ! -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracle ||\
           mv -f /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracle /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracleO
mv /u01/app/oracle/product/11.2.0.4/EBSGOLD/rdbms/lib/oracle /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracle
chmod 6751 /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/oracle

[oragold@HOST01 lib]$ /u01/app/oracle/product/11.2.0.4/EBSGOLD/bin/skgxpinfo
rds
[oragold@HOST01 lib]$

Regards,
Mallik

1 comment:

  1. Thanks for this post. this is applicable to normal RAC systems as well. I faced similar issue where one node instance went completely dead due to wrong relink method in oracle home. and error i was receiving did not mention udp/rds, just addr protocol version error. so it took time to figure out the cause.

    ReplyDelete

Automation Script | Archivelog Generation Hourly Monitoring

1. List out all the running databases and pic one database where we want to monitore the archive log generation from last 1 month. [oracle@o...