Ora 28547 connection to server failed probable oracle net admin error

I got " ORA-28547: connection to server failed, probable Oracle Net admin error " error in Oracle database.

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 условиям:

  1. То же, что и версия базы данных, здесьVersion 11.2.0.4.0
  2. Количество битов такое же, как у клиентской программы, здесь Navicat 64-битный, поэтому выберите 64-битный
  3. использование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)

—————————————————

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Ora 28545 error diagnosed by net8 when connecting to an agent ora 02063
  • Oracle exception error message
  • Ora 01033 oracle initialization or shutdown in progress как исправить
  • Ora 27101 shared memory realm does not exist ошибка
  • Ora 27101 error

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии