Ошибка ORA-12541: TNS:no listener — запуск и диагностика слушателя Oracle
- Клиенты не могут подключиться к БД:
ORA-12541: TNS:no listener. - Служба Oracle Listener остановлена или аварийно завершилась.
- Сервер возвращает сброс соединения TCP Reset на порт 1521.
1. Проверка статуса и запуск Listener
# Проверка статуса
lsnrctl status
# Запуск слушателя
lsnrctl start2. Проверка корректности IP-адреса и имени хоста в listener.ora
Файл $ORACLE_HOME/network/admin/listener.ora:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)3. Проверка прав и конфликтов портов
# Проверка, не занят ли порт другим процессом
ss -tulpn | grep 15214. Автозапуск службы Listener в Systemd (Linux)
Создайте сервис /etc/systemd/system/oracle-listener.service для автоматического подъема слушателя при старте ОС.
Частые вопросы (FAQ)
Почему Listener падает сразу после запуска (TNS-12560 / TNS-00530)?
Частая причина — некорректное имя хоста в listener.ora, которое не резолвится через /etc/hosts, либо попытка забиндить порт 1521, который уже занят другим процессом.
Как безопасно перезапустить Listener без обрыва текущих активных сессий?
Существующие сессии работают напрямую с выделенными процессами (shadow processes). Выполните lsnrctl reload — это применит изменения без остановки обслуживания.
Может ли переполнение лога listener.log вызвать падение Listener?
Да, если размер listener.log превышает 2–4 ГБ на 32-битных файловых указателях, процесс lsnrctl может зависнуть и перестать принимать новые соединения.
Как очистить или ротировать listener.log на лету?
Выполните: lsnrctl set log_status off, переименуйте файл лога и выполните lsnrctl set log_status on.