Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

ORA-01012 1С:Предприятие и СУБД

Ошибка ORA-01012: not logged on в Oracle DB — диагностика сбоев сессий

Обновлено: 26.08.2026 · Официальная документация ↗
  • Клиент получает ошибку ORA-01012: not logged on при выполнении любых SQL-запросов.
  • Попытка выполнить команду в существующем окне терминала после падения сессии или перезагрузки базы.
  • Ошибка при локальном запуске утилит sqlplus / as sysdba на сервере СУБД.

1. Проверка состояния локального экземпляра СУБД

# Проверка процессов Oracle на хосте
ps -ef | grep pmon

# Проверка переменной окружения ORACLE_SID
echo $ORACLE_SID

2. Проверка аварийного завершения сессии администратором

Если сессия была убита (ALTER SYSTEM KILL SESSION) или отключена по таймауту, дескриптор соединения становится невалидным. Приложению требуется выполнить переподключение (Reconnect).

3. Диагностика сегментов разделяемой памяти (IPC / POSIX Semaphores)

Если ошибка возникает при локальном входе под SYSDBA (sqlplus / as sysdba -> ORA-01012), причиной могут быть зависшие сегменты памяти Shared Memory / Семафоры после некорректного падения экземпляра:

# Поиск осиротевших сегментов памяти пользователя oracle
ipcs -m | grep oracle

# Очистка зависшего сегмента памяти по ID (shmid)
ipcrm -m <SHMID>
ipcrm -s <SEMID>

4. Корректный перезапуск экземпляра

sqlplus / as sysdba
SHUTDOWN ABORT;
STARTUP;
💡 Практика специалистов: Если sqlplus выдает ORA-01012 при попытке выполнить `SHUTDOWN IMMEDIATE`, сразу используйте команду `SHUTDOWN ABORT`, после чего выполните нормальный `STARTUP` для прогона восстановления после сбоя (Instance Recovery).

Частые вопросы (FAQ)

Почему ORA-01012 возникает сразу после выполнения команды ALTER SYSTEM KILL SESSION?

Команда KILL удаляет состояние сессии из памяти ядра. Первый последующий вызов из клиентского соединения возвращает ORA-00028, а все последующие — ORA-01012 (сессия больше не авторизована).

Может ли переполнение файловой системы /tmp вызывать ORA-01012?

Да. При локальном бессетевом подключении через IPC (Bequeath Protocol) Oracle использует сокеты и блокировки в /tmp и /var/tmp. Их недоступность приводит к сбою логина.

Что означает ORA-01012 во время работы утилиты RMAN?

Это означает, что целевая база данных была остановлена или упала в процессе выполнения резервного копирования.

Как избежать ORA-01012 в пулах соединений серверов приложений (WildFly, WebLogic, Tomcat)?

Включите валидацию соединений перед использованием из пула (Connection Validation Query, например: SELECT 1 FROM DUAL или метод isValid() в JDBC4).

Полезные материалы
Рекомендуем