SQLPLUS not starting after IPv6

Netsol-NOS
Netsol-NOS used Ask the Experts™
on
Dear EE,

I have Linux DB server with Oracle 11g Release 2 Patch Set 4.

I have configured IPv6 on this server.
After IPv6  SQLPLUS is not starting

Error: Command Not Found.

Thanks
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
HuaMin ChenProblem resolver

Commented:
Can you check if relevant file is still existing? Please check also user permission/authority.

Author

Commented:
Please elaborate in detail from where we can check these settings and permission/authority
Distinguished Expert 2017

Commented:
Enabling IPv6 does not make command, installed applications disappear.

Try which sqlplus

Are you running as oracle user when trying to use sqlplus.

If not mistaken oracle is usually /opt/oracle/bin/sqlplus

The user might not have /opt/oracle/bin in the path.
How to Generate Services Revenue the Easiest Way

This Tuesday! Learn key insights about modern cyber protection services & gain practical strategies to skyrocket business:

- What it takes to build a cloud service portfolio
- How to determine which services will help your unique business grow
- Various use-cases and examples

Author

Commented:
Are you running as oracle user when trying to use sqlplus. = YES we are running SQLPLUS with Oracle User. Before changing IPv6 it is working fine.

If not mistaken oracle is usually /opt/oracle/bin/sqlplus = let me check this option.

The user might not have /opt/oracle/bin in the path.  Let me check this thing.

Author

Commented:
Good news = SQLPLUS started.
now the listener is not running = Destination host unreachable.

Author

Commented:
Please see that when i have changed the ip address in listner from IPv6 to 0.0.0.0
It get started. Please see the attached image.error

Author

Commented:
when we enter IPv6 it gives us an attached error.error1234.jpg
HuaMin ChenProblem resolver

Commented:
Usually IPv6 would be disabled. No need to enable it.

Author

Commented:
How?
HuaMin ChenProblem resolver

Commented:
Try

Open a terminal window.
Change to the root user.
Issue the command sysctl -w net.ipv6.conf.all.disable_ipv6=1
Issue the command sysctl -w net.ipv6.conf.default.disable_ipv6=1

Author

Commented:
Dear HuaMin, please see that we need to enable the IPv6 on this server.
Please confirm will this command disable the IPv6 ?
HuaMin ChenProblem resolver

Commented:
What is the reason to enable IPv6? It will lead to issue in DB setup.

Yes, it will disable that.

Author

Commented:
we need to configure the IPv6 on  Linux DB Server (Linux: 2.6.18-128.el5) where Oracle 11g is running.

Author

Commented:
Please see that if we disable the IPv6 it will not communicate with Application Server which is also configured on IPv6
HuaMin ChenProblem resolver

Commented:
Does Application server ever work with the database, under IPv6?

Author

Commented:
Yes it is successfully running with IPv6.

Author

Commented:
Please see attached image for reference. Application Server is successfully pinging Host Server.
we have deployed App and DB on ESX server.
accessfully.jpeg

Author

Commented:
Dear All,

The problem has been resolved.

Reference:
1) http://anuj-singh.blogspot.com/2011/05/how-to-set-locallistener.html
2) https://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams109.htm#REFRN10082



SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string

SQL> alter system set local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=192.168.2.210)(PORT=1521))';
System altered.

SQL> alter system register;
System altered.

SQL> show parameter local_list

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS = (PROTOCOL=TCP)(HOST
=192.168.2.210)(PORT=1521))


To dynamically update the LOCAL_LISTENER parameter, use the SQL statement ALTER SYSTEM SET:

ALTER SYSTEM SET LOCAL_LISTENER='listener_alias'

If you set the parameter to null with the statement that follows, then the default local address of TCP/IP, port 1521 is assumed.

ALTER SYSTEM SET LOCAL_LISTENER=''
Most Valuable Expert 2012
Distinguished Expert 2018

Commented:
Are you sure this is solved?

If you used 192.168.2.210 literally and didn't recofigure your listener.ora file or IPV6 then remote connections to the database may fail.

If you did solve this yourself, please accept you post as the solution.

Author

Commented:
Dear Slightwv,

Please see at in my above reply I have also share the reference.
192.168.2.210 is only example which the author has put in his example.

for my configuration, i have changed the 192.168.2.210 to IPv6 and run below commands.

SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string

SQL> alter system set local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=I PUT MY IPv6 IP HERE)(PORT=1521))';
System altered.

SQL> alter system register;
System altered.

SQL> show parameter local_list

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS = (PROTOCOL=TCP)(HOST
=192.168.2.210)(PORT=1521))

http://anuj-singh.blogspot.com/2011/05/how-to-set-locallistener.html


At DB Server my ip is : 2001:abc:1234:0:250:56ff:feaf:6bd4
i enter above ip in Linux host file.

Thanks
Distinguished Expert 2017

Commented:
Clan you confirm on the server that the listener is bound to both IPv4 and IPv6 ip.

Author

Commented:
We add the IPv6 entry into the listener File. Please see attached image.
LisIMG_20191212_101636.jpg
Dear All,

The problem has been resolved.

Reference:
1) http://anuj-singh.blogspot.com/2011/05/how-to-set-locallistener.html
2) https://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams109.htm#REFRN10082

SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string

SQL> alter system set local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=192.168.2.210)(PORT=1521))';
System altered.

SQL> alter system register;
System altered.

SQL> show parameter local_list

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS = (PROTOCOL=TCP)(HOST
=192.168.2.210)(PORT=1521))


To dynamically update the LOCAL_LISTENER parameter, use the SQL statement ALTER SYSTEM SET:

ALTER SYSTEM SET LOCAL_LISTENER='listener_alias'

If you set the parameter to null with the statement that follows, then the default local address of TCP/IP, port 1521 is assumed.

ALTER SYSTEM SET LOCAL_LISTENER=''

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial