cancel
Showing results for 
Search instead for 
Did you mean: 

brbackup cannot find oracle client libclntsh.so.10.1

Former Member
0 Kudos

Hello.

I have followed the SAP note 113747 and still no luck running brbackup from DB13 or as dd0adm on Solaris command line. The problem I see is brbackup can't find the libclntsh.so.10.1.

Our environment is Solars 5.9, Oracle 9.2, R/3 Ent 4.7, brtools 7.0 (which requires Oracle 10g client).

Problem:

litudsap6:dd0adm 14% brbackup

ld.so.1: brbackup: fatal: libclntsh.so.10.1: open failed: No such file or directory

Killed

From what I have read, Solaris ignores the LD_LIBRARY_PATH when the SUID bit is set (which 'chmod 4775 brbackup' as oradd0 did).

Here is the short of the note 113747:

(1)

ora<sid> and <sid>adm on DB server have a search path on /sapmnt/<SID>/exe. (All br* and sapdba are contained in this directory.)

ora<sid> belongs to the dba group,

<sid>adm belongs to the sapsys group,

(2)

<sid>adm on the database server has the rhosts entry: "+ <sid>adm".

(3)

The ops$<sid>adm Oracle user must be created in the DB and must have the sapdba role (not DBA!) (refer to Note 134592 for more information about the role).

(4)

brarchive, brbackup, brconnect, brtools have permission 4775:

-rwsrwxr-x ora<sid> sapsys ...

These can be started by the ora<sid> or the <sid>adm OS user.

brrestore, brrecover, brspace, and sapdba have permission 755:

-rwxr-xr-x <sid>adm sapsys ...

These can only be started by the ora<sid> OS user.

My test results as sidadm:

litudsap6:dd0adm 16% env |grep PATH

PATH=/sapmnt/DD0/exe:/oracle/DD0/920_64/bin:/export/home/dd0adm:/usr/sap/DD0/SYS/exe/run:/usr/bin:.:/usr/ccs/bin:/usr/ucb

litudsap6:dd0adm 15% groups

sapsys dba taxware

litudsap6:dd0adm 13% cat ~/.rhosts

+ dd0adm

sasedp01 dp0adm

sasedpc0 dp0adm

litudsap6:dd0adm 9% which brbackup

/sapmnt/DD0/exe/brbackup

litudsap6:dd0adm 10% ls -l /sapmnt/DD0/exe/brbackup

-rwsrwxr-x 1 oradd0 sapsys 5665896 Dec 7 14:12 /sapmnt/DD0/exe/brbackup

litudsap6:dd0adm 11% env |grep LD_LIBRARY_PATH

LD_LIBRARY_PATH=/oracle/client/10x_64/instantclient_10202:/usr/sap/DD0/SYS/exe/run:/oracle/DD0/920_64/lib

litudsap6:dd0adm 14% brbackup

ld.so.1: brbackup: fatal: libclntsh.so.10.1: open failed: No such file or directory

Killed

With chmod 4775 brbackup Oracle client not found:

litudsap6:dd0adm 18% ldd -v /sapmnt/DD0/exe/brbackup |grep clntsh

find object=libclntsh.so.10.1; required by /sapmnt/DD0/exe/brbackup

libclntsh.so.10.1 => (file not found)

With chmod 775 brbackup Oracle client is found:

litudsap6:dd0adm 19% ldd -v /sapmnt/DD0/exe/brbackup |grep clntsh

find object=libclntsh.so.10.1; required by /sapmnt/DD0/exe/brbackup

libclntsh.so.10.1 => /oracle/client/10x_64/instantclient_10202/libclntsh.so.10.1

Accepted Solutions (0)

Answers (6)

Answers (6)

Former Member
0 Kudos

1) ldd /usr/sap/DD0/SYS/exe/run/brbackup

libdl.so.1 => /usr/lib/64/libdl.so.1

libnsl.so.1 => /usr/lib/64/libnsl.so.1

libsocket.so.1 => /usr/lib/64/libsocket.so.1

libm.so.1 => /usr/lib/64/libm.so.1

libclntsh.so.10.1 => /oracle/client/10x_64/instantclient/libclntsh.so.10.1

libnnz10.so => /oracle/client/10x_64/instantclient/libnnz10.so

libCstd.so.1 => /usr/lib/64/libCstd.so.1

libCrun.so.1 => /usr/lib/64/libCrun.so.1

libw.so.1 => /usr/lib/64/libw.so.1

libc.so.1 => /usr/lib/64/libc.so.1

libmp.so.2 => /usr/lib/64/libmp.so.2

libkstat.so.1 => /usr/lib/64/libkstat.so.1

libgen.so.1 => /usr/lib/64/libgen.so.1

libsched.so.1 => /usr/lib/64/libsched.so.1

libaio.so.1 => /usr/lib/64/libaio.so.1

librt.so.1 => /usr/lib/64/librt.so.1

libmd5.so.1 => /usr/lib/64/libmd5.so.1

/usr/platform/SUNW,Sun-Fire-V490/lib/sparcv9/libc_psr.so.1

/usr/platform/SUNW,Sun-Fire-V490/lib/sparcv9/libmd5_psr.so.1

2) ldd /oracle/client/10x_64/instantclient/libclntsh.so.10.1

libnnz10.so => /oracle/DD0/920_64/lib/libnnz10.so

libkstat.so.1 => /usr/lib/64/libkstat.so.1

libnsl.so.1 => /usr/lib/64/libnsl.so.1

libsocket.so.1 => /usr/lib/64/libsocket.so.1

libgen.so.1 => /usr/lib/64/libgen.so.1

libdl.so.1 => /usr/lib/64/libdl.so.1

libsched.so.1 => /usr/lib/64/libsched.so.1

libaio.so.1 => /usr/lib/64/libaio.so.1

librt.so.1 => /usr/lib/64/librt.so.1

libm.so.1 => /usr/lib/64/libm.so.1

libc.so.1 => /usr/lib/64/libc.so.1

libmp.so.2 => /usr/lib/64/libmp.so.2

libmd5.so.1 => /usr/lib/64/libmd5.so.1

/usr/platform/SUNW,Sun-Fire-V490/lib/sparcv9/libc_psr.so.1

/usr/platform/SUNW,Sun-Fire-V490/lib/sparcv9/libmd5_psr.so.1

3) I downloaded OCL10264.SAR, ran SAPCAR, did a cmp on each one to /oracle/client/10x_64/instantclient and there were no diffs.

Former Member
0 Kudos

Also, could the problem be that I'm pointing to 9i NLS files with ORA_NLS33 when brbackup is using 10g instantclient?

Former Member
0 Kudos

Hi,

Please, check the following for me. I'm interested in this case.

<quote>

Our environment is Solars 5.9, Oracle 9.2, R/3 Ent 4.7, brtools 7.0 (which requires Oracle 10g client).

<quote>

BRTOOLS 700 should use instant client 10g. ORA_NLS33 is no used.

if it is giving you an ORA-12705, that means that the instantclient is not finding the correct shared library.

<quote>

bash-2.05$ echo $LD_LIBRARY_PATH

/usr/sap/DD0/SYS/exe/run:/oracle/DD0/920_64/lib:/oracle/client/10x_64/instantclient:/oracle/client/10x_64/instantclient

<quote>

This seem to be OK.

Do this 3 things and post the result

1) ldd /usr/sap/DD0/SYS/exe/run/brbackup

-> this output should indicate that it is reading

/oracle/client/10x_64/instantclient/libclntsh.so.10.1

2) ldd /oracle/client/10x_64/instantclient/libclntsh.so.10.1

3) Check the files on /oracle/client/10x_64/instantclient/instantclient_10202 against the ones on the OCL1064.SAR file. Specially libociei.so, size should be the same.

Former Member
0 Kudos

Hi <br>

Check whether this is applicable ( From note 592657 )

<br><b>10. If several Oracle 9.2 (or higher) databases are installed on a host and if they use a different patch set, the CROCLLNK links should always display the installation with the lowest patch. If any of the errors nevertheless persist, set the following environment variables:

BR_ORA_NLS33 = /oracle/client/92x_<bits>/ocommon/nls/admin/data

This will mean that the BR tools will definitely use the NLS files of the client software and not the NLS files from an Oracle home (which may not be compatible with the client software).

Note that this environment variable can only be used as of BR tools 6.20 Support Package level 113 </b>

Former Member
0 Kudos

echo $ORA_NLS33

/oracle/DD0/920_64/ocommon/nls/admin/data

export BR_ORA_NLS33=/oracle/DD0/920_64/ocommon/nls/admin/data

This does not help the problem.

bash-2.05$ brbackup -u /

BR0051I BRBACKUP 7.00 (20)

BR0055I Start of database backup: bduolnrk.anf 2007-02-08 16.51.28

BR0484I BRBACKUP log file: /oracle/DD0/sapbackup/bduolnrk.anf

BR0280I BRBACKUP time stamp: 2007-02-08 16.51.28

BR0301E SQL error -12705 at location BrDbConnect-2, SQL statement:

'CONNECT /'

ORA-12705: invalid or unknown NLS parameter value specified

It has something to do with NLS because if I change NLS_LANG to AMERICAN_AMERICA.US7ASCII it works.

Former Member
0 Kudos

Hi Fidel/Jose, any new thoughts on this?

thanks,

Rob

Former Member
0 Kudos

Hello,

You are correct, the issue is about the NLS, but nothing to do with ORA_NLS33 ( this variable is for oracle 9i and here the issue is about 10g )

The issue seem to be the one you mentioned at the beginning, it ignores LD_LIBRARY_PATH and it is not able to find "libclntsh.so.10.1"

Unfortunatelly I do not have a solaris system.

do you get the error if you eliminate the "suid"? ( probably you could get other errors related to authorizations, but you can check by running it as ora<sid> )

I'd suggest at this stage that you open a message at SAP

Former Member
0 Kudos

Did you set the ORACLE_SID=<SID> ?

9i+10g instance client + BRTOOL7.0, I can run the brconnect with ora<sid> & <sid>adm with set the ORA_NLS33, ORACLE_HOME, ORACLE_SID, LD_LIBRARY_PATH etc.

Former Member
0 Kudos

If I change NLS_LANG from WE8DEC to US7ASCII then the brbackup works. But, I cannot set NLS_LANG to US7ASCII in .dbenv.csh because the database is using WE8DEC and sap will not start.

Former Member
0 Kudos

Fidel/Prince, this confirms my hypothesis about the hard coded path. I have added the path to LD_LIBRARY_PATH.

bash-2.05$ echo $LD_LIBRARY_PATH

/usr/sap/DD0/SYS/exe/run:/oracle/DD0/920_64/lib:/oracle/client/10x_64/instantclient:/oracle/client/10x_64/instantclient

Now I get a new error.

bash-2.05$ brbackup

BR0051I BRBACKUP 7.00 (20)

BR0055I Start of database backup: bduoknkv.anf 2007-02-08 11.55.41

BR0484I BRBACKUP log file: /oracle/DD0/sapbackup/bduoknkv.anf

BR0280I BRBACKUP time stamp: 2007-02-08 11.55.41

BR0301E SQL error -12705 at location BrDbConnect-2, SQL statement:

'CONNECT system/*******'

ORA-12705: invalid or unknown NLS parameter value specified

BR0310E Connect to database instance DD0 failed

BR0280I BRBACKUP time stamp: 2007-02-08 11.55.41

BR0301E SQL error -12705 at location BrDbConnect-2, SQL statement:

'CONNECT system/*******'

ORA-12705: invalid or unknown NLS parameter value specified

BR0310E Connect to database instance DD0 failed

I have read notes about this. I have verified my ORA_NLS33 is good although it points to 9i home -- not sure if that matters.

bash-2.05$ echo $ORA_NLS33

/oracle/DD0/920_64/ocommon/nls/admin/data

Any ideas?

Former Member
0 Kudos

Hi Rob,

Check this link

Thanks

Prince Jose

Former Member
0 Kudos

Prince,

It works fine under orasid. The reason I'm using sidadm is because my DB13 jobs are failing. According to SAP Note 437648, "You can use Transaction DB13 to schedule database tools such as BRCONNECT or BRBACKUP regularly. These are then started at the determined time at operating system level. The user used for this is <sid>adm (UNIX)..."

On my machine, the 10g client is under /oracle/client/10x_64/instantclient_10202. This is what I put in LD_LIBRARY_PATH. Remember it finds the client .so if I remove the SUID from brbackup.

You mean R3trans not retrans.

bash-2.05$ id

uid=8001(dd0adm) gid=8001(sapsys)

bash-2.05$ R3trans -d

This is R3trans version 6.13 (release 640 - 28.11.06 - 18:05:00).

R3trans finished (0000).

Former Member
0 Kudos

Do you have a directory called instantclient under oracle/client/10x_64 ? If not create it , it is a softlink to instantclient_10202 , create that link and try .. this directory shld owned by <sid>adm and insapsys group.

This is what I have here

> ls -l

total 4

-rwxrwxr-x 1 ora<sid> dba 100 Mar 27 2006 dbclient.lst

lrwxr-x--- 1 <sid>adm sapsys 41 Oct 19 12:28 instantclient -> /oracle/client/10x_64/instantclient_10202

drwxrwxr-x 2 ora<sid> dba 1024 Oct 16 15:26 instantclient_10202

Former Member
0 Kudos

Hello Rob,

BR* connect and the dbslib have hardcoded the path of the library.

You should create the link mentioned by Prince Jose

/oracle/client/10x_64/instantclient --> /oracle/client/10x_64/instantclient_10202

and then add /oracle/client/10x_64/instantclient to the LD_LIBRARY_PATH. the last is more for the libclntsh.so.10.1 finding the client data library than for BRBACKUP finding the libclntsh.so.10.1 ( as the path is hardcoded )

Regards

Fidel

Former Member
0 Kudos

I think you need to set variable LD_LIBRARY_PATH to

/usr/sap/<SID>/SYS/exe/run:/oracle/client/10x_64/instantclient . You can set this variable temporarily and run brbackup and see whether its working or not ..

Thanks

Prince

Former Member
0 Kudos

Prince,

That does not fix it.

bash-2.05$ export LD_LIBRARY_PATH=/usr/sap/DD0/SYS/exe/run:/oracle/client/10x_64/instantclient_10202

bash-2.05$

bash-2.05$ echo $LD_LIBRARY_PATH

/usr/sap/DD0/SYS/exe/run:/oracle/client/10x_64/instantclient_10202

bash-2.05$ brbackup

ld.so.1: brbackup: fatal: libclntsh.so.10.1: open failed: No such file or directory

Killed

It is my understanding that Solaris ignores LD_LIBRARY_PATH when SUID is set (chmod 4775). If I 'chmod 775 brbackup' it finds the Oracle client but then I run into permissions problems because it is not running as orasid.

Former Member
0 Kudos

are these files exists under /oracle/client/10x_64/instantclient ?

Also check Retrans -d is successful ?

I am just wondering why you are not doing this as ora<sid> ?

thanks

prince