> The 64 bit Oracle server is loaded on this host.
> Do I still have to load an Oracle client?
Is your perl 32bit or 64bit? Is it built with gcc or the system cc?
Which version of Oracle are you using?
The impression I get from README.{clients,aix}.txt is that if your perl
is 64bit, or if you have Oracle 10g (which apparently comes with 32bit
client libraries), you don't need anything else; otherwise, you need to
install Instant Client (and set ORACLE_HOME to point to the Instant
Client installation) to get the 32bit client libraries.
I have no experience with either Oracle or AIX, though, so I could well
be wrong.
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES
USE_PERLIO USE_REENTRANT_API
Built under aix
Compiled at Jun 2 2009 16:11:40
@INC:
/usr/opt/perl5/lib/5.8.8/aix-thread-multi
/usr/opt/perl5/lib/5.8.8
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi
/usr/opt/perl5/lib/site_perl/5.8.8
/usr/opt/perl5/lib/site_perl
.
What does the above, imply 32 or 64 bit?
> Is it built with gcc or the system cc?
See above: IBM compiler 'cc_r'.
> Which version of Oracle are you using?
11g
> The impression I get from README.{clients,aix}.txt is that if your perl
> is 64bit, or if you have Oracle 10g (which apparently comes with 32bit
> client libraries), you don't need anything else;
Is there a way to check for the client libs?
The build made it to near the end; it failed w/error:
--snip
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
LD_RUN_PATH="/products/app/oracle/product/11.2.0/ee_1/lib:/products/app/ora cle/product/11.2.0/ee_1/rdbms/lib" ld -bhalt:4 -bexpall -G -bnoentry -lpthreads -lc Oracle.o dbdimp.o oci8.o /usr/lib/crt0_r.o -o blib/arch/auto/DBD/Oracle/Oracle.so -L/products/app/oracle/product/11.2.0/ee_1/lib/ -lclntsh -lld -lm -ldl -lc -lm -lpthreads -lodm -lbsd_r -lld -lperfstat -lm -lpthreads
ld: 0711-736 ERROR: Input file /products/app/oracle/product/11.2.0/ee_1/lib//libclntsh.so:
XCOFF64 object files are not allowed in 32-bit mode.
make: The error code from the last command is 8.
> otherwise, you need to
> install Instant Client (and set ORACLE_HOME to point to the Instant
> Client installation) to get the 32bit client libraries.
> I have no experience with either Oracle or AIX, though, so I could well
> be wrong.
> On Saturday, May 19, 2012 2:07:10 PM UTC-5, Ben Morrow wrote:
> > Quoth Am Nym <---...@gmail.com>:
> > > The 64 bit Oracle server is loaded on this host.
> > > Do I still have to load an Oracle client?
> > Is your perl 32bit or 64bit?
> $ perl -V
> Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
(That's pretty old; both 5.8 and 5.10 are unsupported by the perl
developers at this point. You should seriously consider upgrading.)
intsize=4, ivsize=4 and ptrsize=4, so this is an entirely 32bit perl.
(It's possible, at least on some architectures, to build perl to use
64bit integers even if it's using 32bit pointers.)
> > The impression I get from README.{clients,aix}.txt is that if your perl
> > is 64bit, or if you have Oracle 10g (which apparently comes with 32bit
> > client libraries), you don't need anything else;
> Is there a way to check for the client libs?
> The build made it to near the end; it failed w/error:
> LD_RUN_PATH="/products/app/oracle/product/11.2.0/ee_1/lib:/products/app/ora cle/product/11.2.0/ee_1/rdbms/lib" ld -bhalt:4 -bexpall -G -bnoentry
> -lpthreads -lc Oracle.o dbdimp.o oci8.o /usr/lib/crt0_r.o -o
> blib/arch/auto/DBD/Oracle/Oracle.so > -L/products/app/oracle/product/11.2.0/ee_1/lib/ -lclntsh -lld -lm -ldl
> -lc -lm -lpthreads -lodm -lbsd_r -lld -lperfstat -lm -lpthreads
> ld: 0711-736 ERROR: Input file
> /products/app/oracle/product/11.2.0/ee_1/lib//libclntsh.so:
> XCOFF64 object files are not allowed in 32-bit mode.
> make: The error code from the last command is 8.
Well, that seems fairly unambiguous: the client libs appear to be there,
but they are 64bit so you can't link them with your perl. The first
section in README.aix suggests you may have 32bit libraries in
/products/app/oracle/product/11.2.0/ee_1/lib32 and .../rdbms/lib32; you
may be able to edit the Makefile to link against them instead, but tbh
it's probably easier just to install the Instant Client. (Unless that's
something you have to pay for separately?)
Ben Morrow <b...@morrow.me.uk> writes:
> Quoth xtdk...@gmail.com:
>> On Saturday, May 19, 2012 2:07:10 PM UTC-5, Ben Morrow wrote:
>> > Quoth Am Nym <---...@gmail.com>:
>> > > The 64 bit Oracle server is loaded on this host.
>> > > Do I still have to load an Oracle client?
>> > Is your perl 32bit or 64bit?
>> $ perl -V
>> Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
> (That's pretty old; both 5.8 and 5.10 are unsupported by the perl
> developers at this point. You should seriously consider upgrading.)
> intsize=4, ivsize=4 and ptrsize=4, so this is an entirely 32bit perl.
> (It's possible, at least on some architectures, to build perl to use
> 64bit integers even if it's using 32bit pointers.)
>> > Which version of Oracle are you using?
>> 11g
>> > The impression I get from README.{clients,aix}.txt is that if your perl
>> > is 64bit, or if you have Oracle 10g (which apparently comes with 32bit
>> > client libraries), you don't need anything else;
>> Is there a way to check for the client libs?
>> The build made it to near the end; it failed w/error:
>> LD_RUN_PATH="/products/app/oracle/product/11.2.0/ee_1/lib:/products/app/ora cle/product/11.2.0/ee_1/rdbms/lib" ld -bhalt:4 -bexpall -G -bnoentry
>> -lpthreads -lc Oracle.o dbdimp.o oci8.o /usr/lib/crt0_r.o -o
>> blib/arch/auto/DBD/Oracle/Oracle.so >> -L/products/app/oracle/product/11.2.0/ee_1/lib/ -lclntsh -lld -lm -ldl
>> -lc -lm -lpthreads -lodm -lbsd_r -lld -lperfstat -lm -lpthreads
>> ld: 0711-736 ERROR: Input file
>> /products/app/oracle/product/11.2.0/ee_1/lib//libclntsh.so:
>> XCOFF64 object files are not allowed in 32-bit mode.
>> make: The error code from the last command is 8.
> Well, that seems fairly unambiguous: the client libs appear to be there,
> but they are 64bit so you can't link them with your perl.
Thanks for clearing that up.
> The first section in README.aix suggests you may have 32bit
> libraries in /products/app/oracle/product/11.2.0/ee_1/lib32 and
> .../rdbms/lib32; you may be able to edit the Makefile to link
> against them instead,
> but tbh it's probably easier just to install the Instant Client. (Unless that's
> something you have to pay for separately?)
I'm not sure. Last Friday we were thinking we would install the "normal"
32 bit client, that we install on other AIX hosts. Will ask at work about the
Instant Client.
> Ben Morrow <b...@morrow.me.uk> writes:
> > Quoth xtdk...@gmail.com:
> >> $ perl -V
> >> Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
> > (That's pretty old; both 5.8 and 5.10 are unsupported by the perl
> > developers at this point. You should seriously consider upgrading.)
> We need to plan for that.
Yes, of course.
> > but tbh it's probably easier just to install the Instant Client.
> (Unless that's
> > something you have to pay for separately?)
> I'm not sure. Last Friday we were thinking we would install the
> "normal" 32 bit client, that we install on other AIX hosts. Will ask
> at work about the Instant Client.
If you have a procedure for installing 32bit client libs that you know
works, that may be better than installing something you don't have
experience with. In particular, if you have successfully installed
DBD::Oracle on other machines, it's probably best to do it the same way
on this machine, and just ignore the server installation. You may need
to make sure ORACLE_HOME and/or other Oracle environment variables are
set correctly when you run Perl programs: I don't know if they are used
at runtime as well as at compile time.
Before you start building, you should set ORACLE_HOME to whatever directory your instant client unpacks them and LD_LIBRARY_PATH to where your Oracle libraries will be. Don't forget to set TWO_TASK and point it to a database which has scott/tiger schema, as that is what DBD uses in the "make test" phase. You also need $TNS_ADMIN directory, with sqlnet.ora and tnsnames.ora
In article <pan.2012.05.21.23.14...@gmail.com>, gogala.mla...@gmail.com says...
>On Sat, 19 May 2012 13:35:07 -0500, Am Nym wrote:
>> So should I install the 'Oracle Instant Client' before attempting the
>> build of DBD::Oracle?
>Yes, you should install instant client. I did it on linux:
Don't do that. Point ORACLE_HOME to the installed Oracle. Having the
instantclient installed on an Oracle DB-server may leave you with incompatible versions of client libraries on that server. This can lead to strange errors (core dumped within Oracle library) during
connect using ORACLE_SID.
Cheers
Heinrich
-- Heinrich Mislik
Zentraler Informatikdienst der Universitaet Wien
A-1010 Wien, Universitaetsstrasse 7
Tel.: (+43 1) 4277-14056, Fax: (+43 1) 4277-9140
> In article <pan.2012.05.21.23.14...@gmail.com>, gogala.mla...@gmail.com says...
> >On Sat, 19 May 2012 13:35:07 -0500, Am Nym wrote:
> >> So should I install the 'Oracle Instant Client' before attempting the
> >> build of DBD::Oracle?
> >Yes, you should install instant client. I did it on linux:
> Don't do that. Point ORACLE_HOME to the installed Oracle. Having the
> instantclient installed on an Oracle DB-server may leave you with > incompatible versions of client libraries on that server. This can > lead to strange errors (core dumped within Oracle library) during
> connect using ORACLE_SID.
I believe you missed the start of the thread: the OP has 64bit Oracle
installed and 32bit perl, and it's not clear whether the Oracle install
has 32bit client libs at all and/or how to get DBD::Oracle to link with
them. Simply pointing ORACLE_HOME at the installed Oracle picks up 64bit
client libs, which won't link.
On 2012-05-20 22:09, Ben Morrow <b...@morrow.me.uk> wrote:
> You may need to make sure ORACLE_HOME and/or other Oracle environment
> variables are set correctly when you run Perl programs: I don't know
> if they are used at runtime as well as at compile time.
Yes, they are.
hp
-- _ | Peter J. Holzer | Deprecating human carelessness and
|_|_) | Sysadmin WSR | ignorance has no successful track record.
| | | h...@hjp.at | __/ | http://www.hjp.at/ | -- Bill Code on a...@irtf.org
On 2012-05-22 08:58, Heinrich Mislik <Heinrich.Mis...@univie.ac.at> wrote:
> In article <pan.2012.05.21.23.14...@gmail.com>, gogala.mla...@gmail.com says...
>>On Sat, 19 May 2012 13:35:07 -0500, Am Nym wrote:
>>> So should I install the 'Oracle Instant Client' before attempting the
>>> build of DBD::Oracle?
>>Yes, you should install instant client. I did it on linux:
> Don't do that. Point ORACLE_HOME to the installed Oracle. Having the
> instantclient installed on an Oracle DB-server may leave you with > incompatible versions of client libraries on that server. This can > lead to strange errors (core dumped within Oracle library) during
> connect using ORACLE_SID.
My advice is just the opposite: Even if there is already a server
installation on the machine, install a separate client[1] and let your
users use only this client. That neatly separates the client and server
side and you can upgrade them independently.
Oracle seems to agree with me: Since Oracle 10 (IIRC) the client part of
the server installation (shared libraries, sqlplus, ...) is only
accessible by the "dba" group by default. So you can't just point
ORACLE_HOME there because a normal user doesn't have the necessary
permissions to invoke sqlplus or load libclntsh.so. (There is a script
to change the permissions, but IIRC it isn't included in the normal
distribution, you have download it from metalink)
hp
[1] These days I use instant client, mostly because I can just install
them with yum or apt-get (I really hate the Oracle Java installer
thingy). But you can do a client installation from the full
distribution, too.
-- _ | Peter J. Holzer | Deprecating human carelessness and
|_|_) | Sysadmin WSR | ignorance has no successful track record.
| | | h...@hjp.at | __/ | http://www.hjp.at/ | -- Bill Code on a...@irtf.org
On Tue, 22 May 2012 08:58:36 +0000, Heinrich Mislik wrote:
> Don't do that. Point ORACLE_HOME to the installed Oracle. Having the
> instantclient installed on an Oracle DB-server may leave you with
> incompatible versions of client libraries on that server. This can lead
> to strange errors (core dumped within Oracle library) during connect
> using ORACLE_SID.
1) Never, ever connect to Oracle using ORACLE_SID when using instant
client. It is not built for that. It is built for Oracle*Net.
2) I have almost quarter of a century of experience with Oracle and am still working as an Oracle DBA. I have never had a problem with the instant client.