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

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

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

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

Траблшутинг Oracle DB: Ошибки ORA-12170, ORA-01033, ORA-02019

Обновлено: 10.09.2026 · Официальная документация ↗

Матрица частых ошибок Oracle Database

Работа с Oracle DB (в том числе при интеграции через внешние источники данных в 1С) часто сопровождается специфичными кодами ошибок ORA. Понимание архитектуры TNS (Transparent Network Substrate) и состояний инстанса (Instance) является ключом к быстрому траблшутингу. Бизнес-риски: недоступность витрин данных, отказ интеграционных шин (ESB) и падение сессий пользователей 1С.

Справочник ошибок и их причин

Код ошибкиОписание (Текст ошибки)Физический / Логический уровень
ORA-12170TNS:Connect timeout occurredСетевой уровень (L3/L4). Сервер БД недоступен по порту (обычно 1521), заблокирован Firewall, или Listener висит.
ORA-01033ORACLE initialization or shutdown in progressУровень Инстанса. БД смонтирована (MOUNTED), но не открыта (OPEN), часто из-за сбоя восстановления логов (Redo).
ORA-02019Connection description for remote database not foundУровень сессии. Ссылка на внешнюю БД (DB Link) с указанным именем не существует или недоступна пользователю.
ORA-06512at "schema.procedure", line NУровень PL/SQL. Необработанное исключение внутри хранимой процедуры/функции. Всегда идет в паре с реальной ошибкой.

Методы диагностики и устранения сбоев Oracle

Сценарий 1: ORA-12170 (Таймаут подключения TNS)

Проблема на стороне сети или службы Listener (tnslsnr).

  1. Проверьте доступность порта с клиента: telnet db-server.corp.local 1521. Если глухо — виноват сетевой экран (iptables, ASA).
  2. Проверьте статус листенера на сервере Oracle: lsnrctl status.
  3. Убедитесь, что параметры в файле tnsnames.ora на клиенте (HOST, PORT, SERVICE_NAME) совпадают с настройками сервера.

Сценарий 2: ORA-01033 (БД в процессе инициализации)

Экземпляр запущен, но база не открыта. Требуется вмешательство DBA.

# Зайдите через sqlplus под sysdba
sqlplus / as sysdba

-- Проверьте статус инстанса
SELECT STATUS FROM V$INSTANCE;
-- Если статус MOUNTED, попробуйте открыть БД
ALTER DATABASE OPEN;
-- Если выдает ошибку о восстановлении (media recovery), нужно применить логи
RECOVER DATABASE;

Сценарий 3: ORA-02019 (Проблема с Database Link)

Ошибка возникает, когда скрипт обращается к table@DB_LINK_NAME, а линк не существует.

-- Поиск существующих линков
SELECT DB_LINK, HOST FROM DBA_DB_LINKS;

-- Создание линка (если он действительно отсутствует)
CREATE DATABASE LINK my_link CONNECT TO remote_user IDENTIFIED BY "password" USING 'tns_alias';

Типовые ошибки администраторов

  • Правка tnsnames.ora блокнотом с нарушением отступов: Синтаксис TNS крайне чувствителен к скобкам и пробелам. Ошибетесь — получите ORA-12154 (TNS:could not resolve the connect identifier).
  • Игнорирование файла alert_SID.log: При ORA-01033 вся реальная причина (битые control files, нехватка места в FRA) подробно расписана в текстовом файле Alert Log инстанса.
Внешние источники данных Oracle отваливаются в 1С?
Настройка связки Linux + 1C + unixODBC + Oracle Instant Client — сложная задача, изобилующая утечками памяти и проблемами кодировок (NLS_LANG). Инженеры ITSTM настроят надежные пулы соединений и решат проблемы трансляции типов данных.
💡 Практика специалистов: Практика ITSTM: При настройке интеграции 1С с Oracle мы всегда рекомендуем явно прописывать переменную окружения 'NLS_LANG=AMERICAN_AMERICA.AL32UTF8' на сервере 1С. Это избавляет от 90% скрытых ошибок конвертации символов '?????', которые приводят к ORA-01401 (inserted value too large).

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

Почему ORA-12170 возникает не всегда, а периодически (плавающая ошибка)?

Это частый симптом нехватки процессов/сессий на сервере Oracle (лимит параметра PROCESSES исчерпан) или проблем с сетевым оборудованием (NAT timeouts, проблемы с MTU).

Как расшифровать ORA-06512?

Сама по себе 06512 — это просто указание на строку в коде PL/SQL (стек вызовов). Смотрите на ошибку, которая идет ПЕРЕД ней (например, ORA-01403: no data found или ORA-01476: divisor is equal to zero). Она и есть первопричина.

Можно ли подключиться к БД при ORA-01033?

Обычным пользователям (scott, hr, пользователю 1С) — нет. Подключиться может только администратор с привилегиями SYSDBA или SYSOPER для выполнения команд запуска.

Чем отличается ORA-12170 от ORA-12541?

ORA-12170 — это таймаут (пакеты ушли и пропали в черной дыре сети). ORA-12541: TNS:no listener означает, что сервер ответил мгновенным отказом (Connection Refused), так как процесс tnslsnr физически не запущен на порту.

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