I have oracle 11g XE everything running well except that I can't connect to oracle via SQLplus client from remote mashine.
My server running centos with oracle 11g XE.
My listener.ora file looks like:
cat /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
listener.ora Network Configuration File:
SID_LIST_LISTENER = (SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
(PROGRAM = extproc)
) )
LISTENER = (DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = servername.domain.com)(PORT = 1521))
) )
DEFAULT_SERVICE_LISTENER = (XE)
My tnsnames.ora looks like:
XE = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = servername)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
) )
EXTPROC_CONNECTION_DATA = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
) )
ORACLR_CONNECTION_DATA = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
) )
lsnrctl status shows:
-bash-4.1$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 21-MAR-2014
14:00:28
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE))) STATUS of
the LISTENER
------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production Start Date
21-MAR-2014 13:39:10 Uptime 0 days 0 hr. 21 min. 18
sec Trace Level off Security ON: Local
OS Authentication SNMP OFF Default Service
XE Listener Parameter File
/u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora Listener
Log File
/u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/venera/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=servername.domain.com)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=servername.domain.com)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary... Service "PLSExtProc" has 1 instance(s). Instance
"PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s). Instance "XE", status READY, has 1
handler(s) for this service... Service "XEXDB" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service... The
command completed successfully
File /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/venera/listener/alert/log.xml when I try to connect:
21-MAR-2014 14:00:03 * service_update * XE * 0
WARNING: Subscription for node down event still pending
21-MAR-2014 14:00:28 *
(CONNECT_DATA=(CID=(PROGRAM=)(HOST=servername.domain.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647040))
* status * 0
21-MAR-2014 14:00:33 * service_update * XE * 0
21-MAR-2014 14:04:09 *
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)(CID=(PROGRAM=C:\ORANT\BIN\PLUS80W.EXE)(HOST=client_name)(USER=client_username)))
* (ADDRESS=(PROTOCOL=tcp)(HOST=REMTE_IP)(PORT=56366)) * establish * XE * 0
my /etc/hosts looks like:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain
localhost6 localhost6.localdomain6
192.168.100.70 servername.domain.com servername
I have NAT and open port 1521
in /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
Btw I can connect to oracle local:
-bash-4.1$ sqlplus system#XE
SQL*Plus: Release 11.2.0.2.0 Production on Fri Mar 21 14:19:07 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Enter password:
Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 -
64bit Production
SQL>
I also try to run sqlplus as administrator. No luck. Any idea?
UPDATE CLIENT SITE:
C:\Users\ClientUsername>tnsping80 venera
TNS Ping Utility for 32-bit Windows: Version 8.0.6.3.0 - Production on 21-MAR-20
14 14:27:17
(c) Copyright 1997 Oracle Corporation. All rights reserved.
Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST=servername.domain.com)(PORT=152
1))
OK (80 msec)
There is no support for Oracle Client 8 connecting to Oracle Database 11g
You need to upgrade your client.
Related
I have installed oracle database and oracle sql developer. When I try to connect I am getting the below error
Status: Failure -Test failed: Listener refused the connection with the following error:
ORA-12505, TNS: listener does not currently know of SID given in connect descriptor
(CONNECTION_ID=E2rGqMoxSoqYb2fJOCTRbw==)
transnames.orc
# tnsnames.ora Network Configuration File:
C:\app\Faisal\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
listner.ora
# listener.ora Network Configuration File:
C:\app\Faisal\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Faisal\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Faisal\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = C:\app\Faisal
NET Manager
CMD
C:\WINDOWS\system32>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 03-JUN-2022 17:33:53
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
64-bit Windows Error: 2: No such file or directory
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Production
Start Date 03-JUN-2022 17:04:13
Uptime 0 days 0 hr. 29 min. 39 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File D:\app\Faisal\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File d:\app\faisal\diag\tnslsnr\Faisal\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 3 handler(s) for this service...
Service "sd" has 1 instance(s).
Instance "sd", status READY, has 1 handler(s) for this service...
Service "sdXDB" has 1 instance(s).
Instance "sd", status READY, has 1 handler(s) for this service...
The command completed successfully
Any help would be highly appreciated
Make sure:
1- the listener is started
2- provide correct SID or Service Name: meaning, if these 2 are different dont use the name of the SID while checking the Service Name checkbox.
3-make sure you have the ping of the server you are reaching (direct access, if not do the tunneling)
4- make sure you are using the correct port
5- make sure you are not using PDB and you have created your own database! (PDBs always go south)
These are the reasons you see that error
I have RHEL 6.8 Oracle version on Azure on which I installed database following Microsoft's tutorial Create an Oracle Database in an Azure VMe. Everything went fine with the tutorial. Now I try to install APEX with this one Oracle Application Express (APEX) 5.x Installation and I am stuck at line CONN sys#pdb1 AS SYSDBA.
After entering a password (doesn't matter if it is correct) I get every time ERROR: ORA-12154: TNS:could not resolve the connect identifier specified.
I have already tried:
Creating variable TNS_ADMIN
Adding ORACLE_HOME/network/admin to PATH
Creating and editing files:
listener.ora:
# listener.ora Network Configuration File: /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = OracleDbVm)(PORT = 1521))
)
ADR_BASE_LISTENER = /u01/app/oracle
sqlnet.ora:
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
tnsnames.ora:
WINDOWNETSERVICE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = OracleDbVm)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = cdb1)
)
)
Output of lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 26-JUL-2017 09:02:06
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=OracleDbVm)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 25-JUL-2017 23:19:33
Uptime 0 days 9 hr. 42 min. 32 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/OracleDbVm/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=OracleDbVm.{some_values}.ax.internal.cloudapp.net)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=OracleDbVm.{some_values}.ax.internal.cloudapp.net)(PORT=5502))(Security=(my_wallet_directory=/u01/app/oracle/product/12.1.0/dbhome_1/admin/cdb1/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "cdb1" has 1 instance(s).
Instance "cdb1", status READY, has 1 handler(s) for this service...
Service "cdb1XDB" has 1 instance(s).
Instance "cdb1", status READY, has 1 handler(s) for this service...
Service "pdb1" has 1 instance(s).
Instance "cdb1", status READY, has 1 handler(s) for this service...
The command completed successfully
Output of my env:
[oracle#OracleDbVm admin]$ env
HOSTNAME=OracleDbVm
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
OLDPWD=/home/oracle
USER=oracle
LS_COLORS={colors_long_values}
ORACLE_SID=cdb1
TNS_ADMIN=/u01/app/oracle/product/12.1.0/dbhome_1/network/admin
MAIL=/var/spool/mail/oracle
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/u01/app/oracle/product/12.1.0/dbhome_1/network/admin:/u01/app/oracle/product/12.1.0/dbhome_1/bin:/home/oracle/bin
PWD=/u01/app/oracle/product/12.1.0/dbhome_1/network/admin
LANG=en_US.UTF-8
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/oracle
LOGNAME=oracle
LESSOPEN=||/usr/bin/lesspipe.sh %s
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
G_BROKEN_FILENAMES=1
_=/bin/env
What can I do more to fix that problem?
Your CONN sys#pdb1 AS SYSDBA is trying to connect to an instance with a SID (or tnsnames entry) of pdb1, but in a multitenant environment all your databases share the same SID (cdb1 in your case), and you don't have a pdb1 entry in your tnsnames. When connecting to a PDB, you need to use the service name in the connect string.
You can either update your tnsnames like this:
WINDOWNETSERVICE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = OracleDbVm)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = cdb1)
)
)
pdb1=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=OracleDbVm)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=pdb1)
)
)
And then try CONN sys#pdb1 AS SYSDBA again...
Or you can try using a full connect string with the service name, like:
conn sys#OracleDbVm:1521/pdb1 as sysdba
I think you could also connect to the CDB, switch to pdb1, and then start the script. Let me know if you want more details on that option.
This has been driving me crazy for two days. I recently installed Oracle Express Edition 11g2 on my localhost (Windows 7 Enterprise). I can start the database and the listener, but I am unable to connect.
When I try connecting from SQL Developer with the following parameters:
Username: SYSTEM
Password: ***********
Hostname: localhost
Port: 1521
Service name: XE
I get the following error: An error was encountered... IO Error: The Network Adapter could not establish the connection. Vendor code 17002
Which apparently is SQL Developer speak for ORA-12541: TNS no listener.
When i try to connect from an SQL Command Line:
SQL> connect
Enter user-name: system
Enter password:
ERROR:
ORA-12638: Credential retrieval failed
My ORACLE_HOME is set to C:\oraclexe\app\oracle\product\11.2.0\server.
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
#bohort =
# (DESCRIPTION=
# (ADDRESS=(PROTOCOL=tcp)(HOST=LOCALHOST)(PORT=1521))
# (CONNECT_DATA=(SID=bohort))
# (HS=OK)
# )
-
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
# (SID_DESC=
# (SID_NAME=bohort)
# (ORACLE_HOME= C:\oraclexe\app\oracle\product\11.2.0\server)
# (PROGRAM=dg4odbc)
# )
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
-
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\sqlnet.ora:
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES = (NTS)
Starting the listener seems to work fine:
C:\Users\<Username>>lsnrctl start
LSNRCTL for 64-bit Windows: Version 11.2.0.2.0 - Production on 04-F╔VR.-2015 10:
45:27
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Starting tnslsnr: please wait...
TNSLSNR for 64-bit Windows: Version 11.2.0.2.0 - Production
System parameter file is C:\oraclexe\app\oracle\product\11.2.0\server\network\ad
min\listener.ora
Log messages written to C:\oraclexe\app\oracle\diag\tnslsnr\<Username>\listener\a
lert\log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc
)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 11.2.0.2.0 - Produ
ction
Start Date 04-F╔VR.-2015 10:45:32
Uptime 0 days 0 hr. 0 min. 5 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File C:\oraclexe\app\oracle\product\11.2.0\server\network\a
dmin\listener.ora
Listener Log File C:\oraclexe\app\oracle\diag\tnslsnr\<Username>\listener
\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
I am sure the answer is out there somewhere but two days of googling have not led to a solution ...
Please use IP Address 127.0.0.1 instead of LOCALHOST in the listener and TNSNAMES file.
Restart the listener and try to connect again.
I'm trying to connect oracle database with non oracle user.
sqlplus user/password#sid
but it return
SQL*Plus: Release 11.2.0.1.0 Production on Wed Mar 12 22:34:08 2014
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-12541: TNS:no listener
Enter user-name:
but if i try to connect with this line
sqlplus user/password
the connection was successful, so i need to know how fix it. this not happen with oracle or root users.
if check the port its alive for all users
tcp 0 0 192.168.2.5:1521 0.0.0.0:* LISTEN
UPDATE
tnsnames.ora
DBBRM75 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.5)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dbbrm75.local)
)
)
LISTENER =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.5)(PORT = 1521))
listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = dbbrm75.local)
(ORACLE_HOME = /opt/app/oracle/product/11.2.0/db_1)
(SID_NAME = dbbrm75)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.5)(PORT = 1521))
)
ADR_BASE_LISTENER = /opt/app/oracle
lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 12-MAR-2014 23:32:52
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.5)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 12-MAR-2014 23:20:49
Uptime 0 days 0 hr. 12 min. 2 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /opt/app/oracle/diag/tnslsnr/vilya/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.5)(PORT=1521)))
Services Summary...
Service "dbbrm75.local" has 1 instance(s).
Instance "dbbrm75", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
Try this
Windows + R (Open Run)
Type ---> services.msc
Select OracleServiceXe or OracleServiceOrcl and click on start or restart to start the service
Now try with your username/password for SQL Plus
I try this query from Oracle :
select * from "a_table"#Postgres;
Here is the error message I get :
ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: précédant 2 lines de RECORD
28545. 0000 - "error diagnosed by Net8 when connecting to an agent"
*Cause: An attempt to call an external procedure or to issue SQL
to a non-Oracle system on a Heterogeneous Services database link
failed at connection initialization. The error diagnosed
by Net8 NCR software is reported separately.
*Action: Refer to the Net8 NCRO error message. If this isn't clear,
check connection administrative setup in tnsnames.ora
and listener.ora for the service associated with the
Heterogeneous Services database link being used, or with
'extproc_connection_data' for an external procedure call.
Erreur à la ligne 1, colonne 25
Here is tnsnames.ora
Postgres =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SID = RECORD)
)
(HS=OK)
)
Here is listener.ora
LISTENER_HS =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1525))
(ADDRESS = (PROTOCOL = IPC)(KEY = PNPKEY))
)
)
)
SID_LIST_LISTENER_HS =
(SID_LIST =
(SID_DESC =
(SID_NAME = RECORD)
(ORACLE_HOME = /oracle/product/10.2.0)
(PROGRAM = hsodbc)
(ENVS = "LD_LIBRARY_PATH=/oracle/product/10.2.0/lib32:/oracle/product/10.2.0/hs/lib32:/user/lib")
)
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0)
(PROGRAM = extproc)
)
)
Note after starting the listener, here is the output
$ lsnrctl status LISTENER_HS
LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 22-FEB-2012 13:45:09
Copyright (c) 1991, 2006, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1525)))
STATUS of the LISTENER
------------------------
Alias LISTENER_HS
Version TNSLSNR for Linux: Version 10.2.0.3.0 - Production
Start Date 22-FEB-2012 13:45:05
Uptime 0 days 0 hr. 0 min. 3 sec
Trace Level off
Security ON: Local OS Authentication
SNMP ON
Listener Parameter File /oracle/product/10.2.0/network/admin/listener.ora
Listener Log File /oracle/product/10.2.0/network/log/listener_hs.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1525)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "RECORD" has 1 instance(s).
Instance "RECORD", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
Here initPostgres.ora
HS_FDS_CONNECT_INFO = Postgres
HS_FDS_TRACE_LEVEL = DEBUG
HS_FDS_TRACE_FILE_NAME = /oracle/product/10.2.0/hs/log/postgres.trc
HS_FDS_SHAREABLE_NAME = /usr/lib/psqlodbc.so
set ODBCINI= /etc/odbc.ini
/oracle/product/10.2.0/hs/log/record.trc is empty.
What am I missing ?
Oracle 10gR2
Linux RedHat 64bit
Postgresql 8.3
Linux RedHat 64bit
EDIT:
When I try to check manually that the ODBC driver is up and running, this is what I get :
$ isql postgres USER PASS -v
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/psqlodbc.so' : /usr/lib/psqlodbc.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou répertoire de ce type
[ISQL]ERROR: Could not SQLConnect
I have asked the same question on Oracle forum and I get a response.
Simply, I can't use hsodbc on Linux 64bit there is no port from Linux 32bit.
Instead, I must use DG4ODBC incompatibe with my Oracle 10.2.0.3.
Then my alternatives are either :
install Database Gateway for ODBC 11.2.0.3
migrate from Oracle 10.2.0.3 to Oracle 10.2.0.4 or greater
or apply the patch 5965763
Detailed reponse is here.