Question

I am working on AWS services. I have an ec2 ( centos ) instance. I need to configure SQL*Plus client on this centos machine.

The server with whom I want to connect is at some remote area. The server version is oracle-se(11.2.0.2)

How can I get the client installed on the CentOS machine?

Was it helpful?

Solution

Go to Oracle Linux x86-64 instant clients download page

Download the matching client

oracle-instantclient11.2-basic-11.2.0.2.0.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.2.0.x86_64.rpm

Install

rpm -ivh oracle-instantclient11.2-basic-11.2.0.2.0.x86_64.rpm
rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.2.0.x86_64.rpm

Set environment variables in your ~/.bash_profile

ORACLE_HOME=/usr/lib/oracle/11.2/client64
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_HOME
export LD_LIBRARY_PATH
export PATH

Reload your .bash_profile by simply typing source ~/.bash_profile (suggested by jbass) or Log-out user and log-in again.

Now you're ready to use SQL*Plus and connect your server. Type in :

sqlplus "username/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.1)(PORT=1521))(CONNECT_DATA=(SID=YOURSID)))"

OTHER TIPS

The solution by @ChamaraKeragala is good, but it is unnecessary to logout/login. Instead type:

source ~/.bash_profile

For everyone still getting the following error:

sqlplus command not found

The original post refers to a set of environment variables, the most important of which is ORACLE_HOME. This is the parent directory where the oracle binaries get installed.

Depending on what version of oracle you downloaded you'll have to change the ORACLE_HOME accordingly. For example, the original question's ORACLE_HOME was set to:

ORACLE_HOME=/usr/lib/oracle/11.2/client64

My version of Oracle happens to be 12.1, so my ORACLE_HOME is set to:

ORACLE_HOME=/usr/lib/oracle/12.1/client64 

If you are unsure of the version that you downloaded, you can:

  1. cd /usr/lib/oracle after the installation and find the version.
  2. Look at the RPM file oracle-instantclient12.1, where the bolded bits would refer to the version number.

There's a good blog post[1] on $subject. setup oracle client in ubuntu with minimum effort. Following are the main steps on how to step up the client. In my case, I was installing rpm files using alien package.

  1. Install alien and related packages

    sudo apt-get install alien

  2. Install oracle client packages using alien.

    sudo alien -i oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm

    sudo alien -i oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm

In my opinion these two steps are the easiest way to install oracle client rpm's on your ubuntu system. (I'm not going to mention about export oracle specific variables as it's already clearly explained in above answers)

Hope it helps someone.

[1] http://pumuduruhunage.blogspot.com/2016/04/setup-oracle-sql-plus-client-on-aws.html

For any one who is using proxy, you'd need to add an extra line to the bash profile. At least this is what made it work for me. I'm using cntlm.

export no_proxy=

Install via zip (tried with 12_2)

First of all there is no need to set ORACLE_HOME.

Simply download the .zip files from here starting with the first one Basic: followed by SQL*Plus: and any additional zips you may need.

Extract them all under /opt/oracle

You will then have a directory: /opt/oracle/instantclient_x_y

On ubuntu I had to do also:

sudo apt install libaio1

To run:

# This can be also done by adding only the path below in: /etc/ld.so.conf.d/oracle-instantclient.conf
export LD_LIBRARY_PATH=/opt/oracle/instantclient_x_y:$LD_LIBRARY_PATH

# This can be added in ~/.profile or ~/.bashrc
export ORACLE_HOME=/opt/oracle/instantclient_x_y
/opt/oracle/instantclient_x_y/sqlplus user/pass@hostname:1521/sidorservicename

At the bottom of the the above link page there are more details.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top