The leading edge of scripting languages and Oracle Database brought to you by the Data Access Development team

Oracle Instant Client 19c for Linux is Available

Christopher Jones
Senior Principal Product Manager

Good news - Oracle Instant Client 19.3 is available for Linux on OTN and yum. A Docker file is also available on GitHub.

Oracle Instant Client comprises tools, libraries and SDKs for building and connecting applications to Oracle Database. It comes in a number of packages: 'Basic' and 'Basic Light' packages provide a cornerstone, and additional packages can be installed to get extra functionality. Typical uses of Instant Client are for Oracle Database APIs like Python cx_Oracle and Node.js node-oracledb. Instant Client 19c can connect to Oracle Database 11.2 (note some tools may have extra limitations), so I'd encourage you to upgrade.

As the first yearly release (following on from 18c) in the new Oracle Database numbering system, the 19c development cycle seemed short. However there have been useful changes and fixes. Check out the documentation for the areas you are interested in. One thing I like is the enhanced Easy Connect Plus syntax (Update: also see the whitepaper), which removes the need to have a sqlnet.ora file for some commonly used connection options. Another key change is that Instant Client 19c (along with Oracle Database 19c) requires glibc 2.14 and won't run on Oracle Linux 6 or other, similarly old, Linux distributions. 

For RPM users, there are two things to note about Instant Client 19c package installation:

  • The global system library search path is now automatically set during installation of the (requisite) Basic and Basic Light packages. You no longer need to use ldconfig or set LD_LIBRARY_PATH.

  • You can only have one version of the packages installed by default. For example, the 19c RPMs will conflict with the 18c RPMs. This is to avoid surprises and precedence issues when packages might otherwise attempt to update the library search path.  This default behavior can be circumvented by choosing the right install options (e.g.  'rpm -i --nodeps --replacefiles'), then manually setting the desired search path in '/etc/ld.so.conf.d/oracle-instantclient.conf' and finally running ldconfig.

These two notes do not apply to the ZIP files: you still have to manually configure the library search path to suit the directory you installed into. And you can have as many ZIP versions installed concurrently as you like.

Some old news, but worth repeating is that the RPM packages on yum.oracle.com do not require a login or click through to download. If you want to install the packages you can simply do:

yum -y install oracle-release-el7 && yum-config-manager --enable ol7_oracle_instantclient

and then install the desired packages like:

yum -y install oracle-instantclient19.3-basic

Update: the OTN packages no longer need a log in or click-through either.

Update: on one network, I started seeing my apps fail to connect with the error "ORA-12637: Packet receive failed". This is under diagnosis. The solution is to create a sqlnet.ora file on the machine my apps are on containing "DISABLE_OOB=ON". On Linux and macOS, you can put this line in $HOME/.sqlnet.ora (note the leading period). Update to update: my scenario turns out to be an issue in the Virtual Box networking stack, fixed by at least 6.0.14 (the DB guest must be running the patched VirtualBox additions, not the client).

Join the discussion

Comments ( 1 )
  • sweta Thursday, September 12, 2019

    I am using Dockerfile as per this doc. However while invoking the function , I am getting the below error
    Please suggest.

    cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help

Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.