May 2, 2021
I got ” ORA-28547: connection to server failed, probable Oracle Net admin error ” error in Oracle database.
ORA-28547: connection to server failed, probable Oracle Net admin error
Details of error are as follows.
ORA-28547: connection to server failed, probable Oracle Net admin error Cause: A failure occurred during initialization of a network connection from a client process to the Oracle server: The connection was completed but a disconnect occurred while trying to perform protocol-specific initialization, usually due to use of different network protocols by opposite sides of the connection. This usually is caused by incorrect Oracle Net administrative setup for database links or external procedure calls. The most frequent specific causes are: -- The connection uses a connect string which refers to a Heterogeneous Services agent instead of an Oracle server. -- The connection uses a connect string which includes an (HS=) specification. ********************************** Action: Check Oracle Net administration in the following ways: -- When using TNSNAMES.ORA or an Oracle Names server, make sure that the client connection to the ORACLE server uses the correct service name or SID. -- Check LISTENER.ORA on the connection end point"s host machine to assure that this service name or SID refers to the correct server. -- Confirm in TNSNAMES.ORA or the equivalent service definition that the connect string does NOT contain (HS=).
connection to server failed, probable Oracle Net admin error
This ORA-28547 errors are related with the failure occurred during initialization of a network connection from a client process to the Oracle server: The connection was completed but a disconnect occurred while trying to perform protocol-specific initialization, usually due to use of different network protocols by opposite sides of the connection.
This usually is caused by incorrect Oracle Net administrative setup for database links or external procedure calls. The most frequent specific causes are:
— The connection uses a connect string which refers to a Heterogeneous Services agent instead of an Oracle server.
— The connection uses a connect string which includes an (HS=) specification.
When using TNSNAMES.ORA or an Oracle Names server, make sure that the client connection to
the ORACLE server uses the correct service name or SID.
— Check LISTENER.ORA on the connection end point”s host machine to assure that this service
name or SID refers to the correct server.
— Confirm in TNSNAMES.ORA or the equivalent service definition that the connect string does
NOT contain (HS=).
To solve this error, you shoul add SQL_AUTHENTICATION_SERVICES = (NONE) to your sqlnet.ora file, then restart your listener.
Or second case’s solution is as follows.
To resolve this issue, make sure that if a static SID_LIST section is required, then it only contains the SID_NAME value and (if the instance is not in the same Home) the ORACLE_HOME value.
So edit the listener.ora file and remove any other values (unless directed by Oracle Support, such as inclusion of ENVS values specific to your instance).
In the above example, the corrected entry will be as follows:
SID_LIST_LISTENER1 = (SID_LIST = (SID_DESC = (SID_NAME = ORCL1) (ORACLE_HOME = E:apporacleproduct11.2.0dbhome_1) ) (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = E:apporacleproduct11.2.0dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:E:apporacleproduct11.2.0dbhome_1binoraclr11.dll") ) )
Restart the Listener using “lsnrctl stop LISTENER1” and “lsnrctl start LISTENER1” (or via the Windows Services if on Windows).
Do you want to learn Oracle Database for Beginners, then read the following articles.
Oracle Tutorial | Oracle Database Tutorials for Beginners ( Junior Oracle DBA )
1,398 views last month, 1 views today
About Mehmet Salih Deveci
I am Founder of SysDBASoft IT and IT Tutorial and Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience.I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource.I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks.I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients.If you need Oracle DBA, SQL Server DBA, APPS DBA, Exadata, Goldengate, EBS Consultancy and Training you can send my email adress [email protected].- -Oracle DBA, SQL Server DBA, APPS DBA, Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için [email protected] a mail atabilirsiniz.
0x00 проблемная сцена
1. Конфигурация среды
символ | название | версия | Digits | замечания |
---|---|---|---|---|
база данных | Oracle Database | 11g Release 2,11.2.0.1.0 | 32 bit | |
Операционная система базы данных | Windows 7 Professional | 6.1.7601, Service Pack 1 | 32-bit | |
Клиентская операционная система | Windows 7 Professiona | 6.1.7601, Service Pack 1 | 64 bit | |
Клиент базы данных | Navicat Premium | 12.0.11 | 64 bit |
2. Описание проблемы
После установки данных Oracle связь между жизнью и смертью не может быть достигнута, и сообщается о различных необъяснимых ошибках. Обнаружены следующие коды ошибок:
ошибка navicat 11
Cannot load OCI DLL, 193:C:Program FilesPremiumSoftNacicat Premiuminstantclient_11_2oci.dll
Instant Client package is required for Basic and TNS connection.
For more information:http://wiki.navicat.com/wiki/index.php/Instant_client_required
ORA-28547:connection to server failed, probable Oracle Net admin error
ошибка navicat 12
Oracle library is not loaded.
ORA-28547:connection to server failed, probable Oracle Net admin error
Создал новую базу данных test_db и настроил нового слушателя
ORA-12514: TNS:listener does not currently know of service requested in connect
Просмотр статуса сервиса
Состояние экземпляра службы — «НЕИЗВЕСТНО», и это больно.
Microsoft Windows [Версия 6.1.7601]
Copyright (c) 2009 Корпорация Microsoft. все права защищены.
C:Userstest>lsnrctl status
LSNRCTL для 32-битных Windows: версия 11.2.0.1.0-производство от 25 ноября 2019 года 16: 2
6:22
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Подключение к (ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = TCP) (ХОСТ = localhost) (ПОРТ = 1521)))
СТАТУС СЛУШАТЕЛЯ
------------------------
Псевдоним СЛУШАТЕЛЬ
Версия TNSLSNR для 32-битной Windows: Версия 11.2.0.1.0-Produ
ction
Дата запуска 25-ноября-2019 10:27:03
Время работы 0 дней 5 часов 59 минут 18 секунд
Уровень отслеживания выключен
Безопасность включена: локальная проверка подлинности ОС
SNMP OFF
Файл параметров прослушивателя C: app test product 11.2.0 dbhome_1 network admin list
ener.ora
Файл журнала прослушивателя c: app test diag tnslsnr WIN-xxxxxxxx898 listener alerts
tlog.xml
Прослушивание сводки конечной точки ...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.182.146)(PORT=1521)))
Сводка услуг:
Служба "CLRExtProc" содержит 1 экземпляр.
Пример "CLRExtProc", статус НЕИЗВЕСТНЫЙ, содержит 1 обработчик для этой службы ...
Служба "orcl" содержит 1 экземпляр.
Пример "orcl", статус НЕИЗВЕСТНЫЙ, содержит 1 обработчик для этой службы ...
Служба «test_db» содержит 1 экземпляр.
Пример "test_db", статус UNKNOWN, содержит 1 обработчик для этой службы ...
Команда выполнена успешно
C:Userstest>
Поскольку я пробовал различные методы, об ошибках сообщалось в полном расцвете, но проблема не была решена.
Анализ проблем 0x01
Первая проблема, с которой сталкиваются
ORA-28547:connection to server failed, probable Oracle Net admin error
Эта проблема связана с ошибкой соединителя navicat, не удается подключиться к серверу. Здесь вводится концепция разъемаOracle Instant Client
。
Что такое Oracle Instant Client
Oracle Instant Client enables applications to connect to a local or remote Oracle Database for development and production deployment. The Instant Client libraries provide the necessary network connectivity, as well as basic and high end data features, to make full use of Oracle Database. It underlies the Oracle APIs of popular languages and environments including Node.js, Python and PHP, as well as providing access for OCI, OCCI, JDBC, ODBC and ProC applications. Tools included in Instant Client, such as SQLPlus and Oracle Data Pump, provide quick and convenient data access.
Первые два предложения объясняются здесь:
Oracle Instant ClientПозволяет приложениям подключаться к локальным или удаленным базам данных Oracle для разработки и производственного развертывания. Библиотека Instant Client обеспечивает необходимое сетевое соединение, а также базовые и высококачественные функции для работы с данными, чтобы в полной мере использовать базу данных Oracle.
Обычное соединение с базой данных Oracle может осуществляться с помощью инструмента SQL Plus, предоставляемого Oracle, или клиента Oracle, который составляет около 700 МБ, что очень тяжело.
Однако для облегченного клиентского подключения * Oracle Instant Client ** предоставляет динамическую библиотеку oci.dll. Этот файл библиотеки составляет всего несколько сотен К, если он используется, талия не болит, ноги не болят, а пятый этаж — это задыхающееся усилие (незащищенный возраст …). Напишите программу самостоятельно и вызовите несколько функций для удаленного управления базой данных Oracle. Navicat также использует библиотеку Oracle по умолчанию, но по умолчанию используется версия 10.2.
Проблема наступает, моя база данных — 11.2, но библиотека подключений — версия 10.2, очевидно, что версия слишком мала, чтобы вызвать несоответствие. Так нужноИспользуйте версию 11.2 oci.dll。
Oracle Instant Client — большой пакет. Ниже приведено множество категорий для разных сценариев. Конкретная классификация выглядит следующим образом:
Instant Client Package | описание | Связанный |
---|---|---|
Basic | Все файлы, необходимые для запуска приложений OCI, OCCI и JDBC-OCI | OCI OCCI JDBC-OCI |
Basic Light | Содержит только сообщения об ошибках на английском языке, поддерживает только Unicode, ASCII, западноевропейские наборы символов. | OCI OCCI JDBC-OCI |
SDK | Приведите примеры заголовочных файлов и макфайлов, необходимых для разработки программ OCI и OCCI. Три | |
SQL*Plus | Предоставить инструмент командной строки SQL * Plus для выполнения операторов и сценариев SQL и PL / SQL | SQL*Plus |
Tools | Предоставление Data Pump, SQL * Loader и клиента воспроизведения рабочей нагрузки | Data Pump SQL*Loader WRC |
ODBC | Предоставить ODBC связанные библиотеки | ODBC |
Precompilers | Обеспечить ProC and ProПредварительно скомпилированные библиотеки COBOL | Pro*C and Pro*COBOL |
JDBC-OCI Supplement | Поддержка библиотек, связанных с интернационализацией | JDBC-OCI |
В Интернете широко распространено мнение, что oci.dll необходимо использовать 32-битную версию, и есть две школы, которые объясняют, почему она 32-битная.
Первое утверждение: база данных oracle является 32-битной, независимо от того, сколько битов в navicat, oci.dll должен соответствовать серверной стороне.
Второе утверждение: Navicat имеет только 32-битную версию, поэтому файл oci.dll должен соответствовать Navicat.
Так скачалInstant Client Downloads for Microsoft Windows 32-bit
Однако об ошибке сообщили.
Второй аргумент кажется более надежным, но мой navicat 64-битный. Oracle Instant Clien имеет тBasicВерсия иBasic Lightверсия. Оба содержат oci.dll. Первое, что я узнал, это загрузить Basic Light. Файл меньше и легче.
Так вInstant Client Downloads for Microsoft Windows (x64) 64-bitСкачанный InstantClient-Basiclite-Windows.x64-11.2.0.4.0.zip
Тем не менее, новая ошибка
Cannot load OCI DLL, 193:C:Program FilesPremiumSoftNacicat Premiuminstantclient_11_2oci.dll
Instant Client package is required for Basic and TNS connection.
For more information:http://wiki.navicat.com/wiki/index.php/Instant_client_required
Ошеломленный, он породил слушателя на стороне сервера и обнаружил много проблем. Это не описано здесь.
Вот окончательный ответ, то есть oci.dll должен соответствовать 3 условиям:
- То же, что и версия базы данных, здесьVersion 11.2.0.4.0
- Количество битов такое же, как у клиентской программы, здесь Navicat 64-битный, поэтому выберите 64-битный
- использованиеBasicВерсия, не может быть использованаBasic Light
О, один из методов, полученных из первого жанра, — это прямое копирование файла oci.dll с сервера в navicat. Странно то, что размер этого oci.dll отличается от 32-битного пакета на официальном сайте. Сначала я чувствую, что это может быть решением. Позже можно только сказать, что правда неразумна, метод знает только ее внешний вид. 32-битный navicat должен быть пригоден для использования, но 64-битный бесполезен.
0x02 решение
Используйте 64-битную навигационную систему для загрузки 64-битных файлов Instant Client Package-Version 11.2.0.4.0-Basic.
Адрес для скачивания выглядит следующим образом:
https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html#license-lightbox
Для загрузки требуется учетная запись оракула
После загрузки распакуйте его в установочную директорию navicat:
C:Program FilesPremiumSoftNavicat Premium 12
Откройте Navicat, [Инструменты] — [Параметры] — [Среда]
Заполните абсолютный путь к распакованному файлу oci.dll в виде библиотеки OCI (oci.dll).
ОК, закройте Navicat и перезапустите, чтобы изменения вступили в силу.
0x03 Ссылки
https://www.oracle.com/database/technologies/instant-client.html
https://www.oracle.com/database/technologies/112010-win32soft.html
https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html
28547, 0000, «connection to server failed, probable Oracle Net admin error»
*Cause: A failure occurred during initialization of a network connection
from a client process to the Oracle server. The connection
was completed but a disconnect occurred while trying to
perform protocol-specific initialization, usually due to
use of different network protocols by opposite sides
of the connection. This usually is caused by incorrect
Oracle Net administrative setup for database links or external
procedure calls. The most frequent specific causes are:
— The connection uses a connect string which refers
to a Heterogeneous Services agent instead of
an Oracle server.
— The connection uses a connect string which includes
an (HS=) specification.
— Hitting Ctrl+C before connection initialization is
complete.
— Using DRCP on Windows with SQLNET.AUTHENTICATION_SERVICES
set to NTS.
— Connection timeout due to SQLNET.INBOUND_CONNECT_TIMEOUT
parameter when all shared servers are busy in
shared server configuration.
*Action: Check Oracle Net administration in the following ways:
— When using TNSNAMES.ORA or an Oracle Names server, make sure
that the client connection to the Oracle server uses
the correct service name or SID.
— Check LISTENER.ORA on the connection end point’s host machine
to assure that this service name or SID refers
to the correct server.
— Confirm in TNSNAMES.ORA or the equivalent service definition
that the connect string does not contain (HS=).
— Set SQLNET.AUTHENTICATION_SERVICES to NONE when using DRCP
on Windows.
Попробовать перевести
Поискать эту ошибку на форуме
Перечень ошибок взят из официального перечня ошибок Oracle версии 11R2.
Если не можете справиться — поищите эту ошибку на форуме по ссылке выше, многие ошибки мы уже разобрали.
Не получается — обязательно напишите, разберем, попробуем, пощупаем, понюхаем.
Главное — не паникуйте, но всегда, в первую очередь убедитесь, что бекап есть и сделайте бекап того, что сейчас имеете
Hi,
I am not able to connect to Oracle database using…
.NET Framework Data Provider for Oracle — System.Data.OracleClient
Note: I understand this provider is deprecated, but I still want to use this for connection!!!
string connectionString = «user id=scott;password=tiger;server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));»;
OracleConnection cn = new OracleConnection(connectionString);
cn.Open()
Error: ORA-28547: connection to server failed, probable Oracle Net admin error
Below are the contents of tnsnames.ora, listener.ora, sqlnet.ora files… Please help!
—————————————————
# tnsnames.ora Network Configuration File: C:oracleproduct10.2.0db_1networkadmintnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
—————————————————
# listener.ora Network Configuration File: C:oracleproduct10.2.0db_1networkadminlistener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = C:oracleproduct10.2.0db_1)
(PROGRAM = extproc)
)
)
—————————————————
# sqlnet.ora Network Configuration File: C:oracleproduct10.2.0db_1networkadminsqlnet.ora
# Generated by Oracle configuration tools.
# 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)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
—————————————————