Question:
I am trying to connect Oracle to MySQL using
heterogeneous services and I get this error:
Link : "DG4ODBC.UOU.EDU.PS"
Error :
ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063:
preceding 2 lines from DG4ODBC
How do I fix this ORA-28545 error?
Answer:
This can be a listener syntax error or a generic connectivity
issue. Review the steps to
connect Oracle to MySQL
carefully:
- Verify that the standard ODBC
connection to MySQL works
- Verify that you can connect via the
standard database link. Make sure that the listener name points
to the heterogeneous services link.
- Check the listener.ora syntax as this
can be a listener.ora syntax problem:
- Make sure that your $ORACLE_HOME is
correct
- Make sure that you can the host name (and
not the IP address) for the servers.
There are several other solutions for a ORA-28545
error:
- Please see
MOSC
note: 264567.1 titled "How to
setup Generic Connectivity HSODBC on Linux". Please note that
heterogeneous services only works on 32 bit servers, not 64 bit
itanium . . .
The
oerr message
output for the ORA-28545 says that the database link connection
failed:
ORA-28545: 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.
See these steps for diagnosing the ORA-28545
error:
- Install Oracle ODBC drivers on the server
(your local Oracle database) that will access the remote MySQL
database using the database link.
- Setup the ODBC connection on the local
Oracle database
- Test the ODBC drivers to ensure that
connectivity is made to the MySQL database.
- Ensure that your
global_names
parameter is set to False.
- Configure the Oracle Heterogeneous services
by creating an initodbc.ora file within the Oracle database.
- Modify the Listener.ora file:
SID_NAME
is the DSN for the remote database.
ORACLE_HOME
is the actual Oracle home file path.
PROGRAM
tells Oracle to use heterogeneous services.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME=Cas30C) -- Enter
the DSN on this line
(ORACLE_HOME = c:\oracle10gdb) -- Enter
your Oracle home on this line
(PROGRAM = hsodbc) ) )
- Modify the Tnsnames.ora file: This is the
Oracle database installation accessed by the users to connect to
the ODBC drivers.
(DESCRIPTION=
(ADDRESS_LIST= (
Address=(PROTOCOL=TCP) (HOST=
-- (Server
x) (PORT=1521))) -- Enter the port on which the server x Oracle
installation -- is listening
(CONNECT_DATA=(SID=Cas30c)) -
Enter the DSN name
(HS=OK) -- Enter this value. It tells
Oracle to use hetergeneous services )
- Reload the listener on local Oracle
database.
- Create a database link on the local Oracle
installation that accesses the heterogeneous connection, which,
in turn, connect to MySQL.
- Run a MySQL "select" SQL statement
from the Oracle installation using the database link.
|
|
Get the Complete
Oracle SQL Tuning Information
The landmark book
"Advanced Oracle
SQL Tuning The Definitive Reference" is
filled with valuable information on Oracle SQL Tuning.
This book includes scripts and tools to hypercharge Oracle 11g
performance and you can
buy it
for 30% off directly from the publisher.
|