Решение проблемы: «ORA-12560: TNS:protocol adaptor error»
Быстрый ответ
Если вам необходимо оперативно устранить ошибку ORA-12560, проведите следующие действия: сначала проверьте статус службы Oracle. В операционной системе Windows используйте команду services.msc
, в Unix/Linux — ps -ef | grep pmon
. Служба должна быть активирована;
Определите затем значения для переменных окружения ORACLE_HOME и ORACLE_SID:
export ORACLE_HOME=/путь_указанный_к_oracle_home; export ORACLE_SID=ваш_sid
Далее проверьте и, при необходимости, откорректируйте файлы TNSNAMES.ORA и LISTENER.ORA в директории network/admin
. После проведения корректировок перезапустите слушателя следующей командой:
lsnrctl start
Последним этапом будет проверка сетевых параметров в настройках и подтверждение успешного соединения клиента с сервером.
Когда службы Oracle работают нестабильно
Проверьте активацию служб Oracle
Убедитесь, что служба баз данных Oracle активирована для вашего экземпляра. В операционной системе Windows можно осуществить поиск служб с меткой OracleService<SID>
и, при необходимости, запустить их из Командной строки или Services.msc:
net start OracleService<SID>
Либо воспользоваться графическим интерфейсом:
- Нажмите
Win + R
, введитеservices.msc
и нажмите Enter. - Откройте в списке
OracleService<SID>
. - Кликните по службе правой кнопкой мыши и выберите "Запустить", если служба не активирована.
Настройка переменных окружения
Переменная ORACLE_SID должна точно соответствовать SID включённой базы данных. Для настройки указанной переменной можно воспользоваться командной строкой:
Для Windows:
set ORACLE_SID=ваш_sid
Для Unix/Linux:
export ORACLE_SID=ваш_sid
Проверьте также, корректно ли переменная TNS_ADMIN управляет путём к директории с файлом tnsnames.ora
:
export TNS_ADMIN=/путь_к_вашему/network/admin
Изучите внимательно файлы конфигурации Oracle
Важно внимательно проверить записи в файлах tnsnames.ora и listener.ora, чтобы устранить потенциальные ошибки. Неудачные наименования сервисов, указание некорректных портов или IP-адресов могут быть причиной ошибки ORA-12560. Обычное местоположение файла tnsnames.ora
:
C:\oracle\product\10.2.0\client_1\network\admin\tnsnames.ora
Диагностика сети Oracle
Проверьте соединение с помощью Tnsping
Попробуйте осуществить команду tnsping с вашим tnsalias
для проверки доступности сетевого подключения:
tnsping ваш_tnsalias
Это поможет подтвердить способность клиента связываться со слушателем сервера Oracle.
Перезагрузите слушателя для восстановления связи
После редактирования файлов tnsnames.ora
и других сетевых конфигураций обязательно проведите перезагрузку слушателя:
lsnrctl reload
Если база данных активирована, но не отвечает на запросы, возможно, потребуется её перезапуск:
В Windows:
sqlplus / as sysdba
shutdown immediate
startup
В Unix/Linux запуск осуществляется посредством сценариев инициализации, после выполнения которых следует провести аналогичные операции в SQL*Plus.
Создание службы Oracle с помощью ORADIM
Если служба Oracle отсутствует, можно воспользоваться инструментом ORADIM для её создания:
oradim -new -sid ваш_sid -startmode auto
Визуализация
Визуализируйте ошибку ORA-12560: TNS: ошибка протокольного адаптера как попытку установить соединение клиента с сервером:
Клиент (📟): "Ты меня слышишь?"
Сервер (📟): "..."
Ответа нет (🚫🔌): **Ошибка протокольного адаптера**
Успешная связь предполагает непрерывный обмен данными:
Клиент (📟): "Ты меня слышишь?"
Сервер (📟➡️📟): "Я тебя слышу!"
Сохранение контакта (✅🔌): **Протокольный адаптер функционирует**
Важно осуществить настройку клиента и сервера на использование одного и того же сетевого параметра.
Процесс решения проблемы
Проверка функционирования базы данных
Основной этап — убедиться в успешной активации службы Oracle после её включения и включение функции автозапуска.
Доступность базы данных после восстановления
После перезагрузки системы или после ее восстановления подключитесь к базе данных через SQL*Plus, чтобы убедиться в её доступности:
sqlplus /nolog
conn ваш_пользователь/ваш_пароль@хост:порт/сервис
Изучение системы Oracle и TNS
Понимание архитектуры сетевых служб Oracle поможет визуализировать проблему и более эффективно устранить её. Полезным будет ознакомление с Руководством администратора по конфигурации сети Oracle.
Продвинутые методы диагностики
Иногда причиной ошибки ORA-12560 могут стать несоответствия в разрешениях файлов, сбоях при установке ПО Oracle или настройка сетевой инфраструктуры. Следует обратить внимание на:
- Права доступа к файлам установки Oracle и сетевым файлам.
- Возможные проблемы с сетевым оборудованием (брандмауэры, маршрутизаторы и пр.).
- Содержимое файла alert.log Oracle на предмет наличия проблем, специфичных для вашей базы данных.
Полезные материалы
- ORA-12500 до ORA-12699 — официальное руководство Oracle по ошибкам TNS (включая ORA-12560).
- sql – ORA-12560: TNS: ошибка протокольного адаптера – Stack Overflow — обсуждение и различные подходы к решению ошибки ORA-12560.
- Local Naming Parameters in the tnsnames.ora File — информация о настройках файла tnsnames.ora для устранения потенциальных проблем, которые могут привести к возникновению ошибки ORA-12560.
- TNS – Oracle FAQ — подробное объяснение слушателей Oracle TNS, которое поможет понять проблему с ORA-12560.
- YouTube: Исправление ошибки ORA-12560 Видеоурок — видеоурок, в котором пошагово разбираются способы устранения неполадок, связанных с ORA-12560.