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

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

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

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

Ошибка ORA-12154: TNS:could not resolve the connect identifier specified

Обновлено: 26.08.2026 · Официальная документация ↗
  • Клиенты (1C:Enterprise, PL/SQL Developer, SQL*Plus) не могут подключиться к БД: ORA-12154: TNS:could not resolve the connect identifier specified.
  • Команда tnsping alias_name возвращает ошибку TNS-03505: Failed to resolve name.
  • В строке подключения указан алиас, который отсутствует в файле tnsnames.ora.

1. Проверка переменной окружения TNS_ADMIN

Убедитесь, что клиент использует правильный каталог с конфигурационными файлами:

# Linux
echo $TNS_ADMIN

# Windows (CMD)
echo %TNS_ADMIN%

2. Проверка синтаксиса файла tnsnames.ora

Откройте файл tnsnames.ora и убедитесь в отсутствии дисбаланса скобок и лишних скрытых символов:

ORCLPDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db-server.corp.local)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orclpdb.corp.local)
    )
  )

3. Проверка файла sqlnet.ora (NAMES.DEFAULT_DOMAIN)

Если в sqlnet.ora задан суффикс домена:

NAMES.DEFAULT_DOMAIN = corp.local
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

Тогда алиас в tnsnames.ora обязан быть записан как ORCLPDB.corp.local.

4. Тестирование разрешения имени через tnsping

tnsping ORCLPDB
💡 Практика специалистов: Для серверов кластера 1С:Предприятия под Linux всегда прописывайте явный экспорт export TNS_ADMIN=/opt/oracle/network/admin в скриптах запуска службы srv1cv8, чтобы избежать рассинхронизации окружения.

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

Почему 32-битный клиент 1С не видит tnsnames.ora 64-битного Oracle Client?

32-битные и 64-битные клиенты Oracle устанавливаются в разные каталоги. Настройте системную переменную среды TNS_ADMIN, указывающую на единый общий каталог с tnsnames.ora.

Может ли скобка в пути установки (например, Program Files (x86)) вызвать ORA-12154?

Да, в старых версиях Oracle OCI/ODBC клиента был баг, из-за которого наличие круглых скобок в пути к исполняемому файлу приводило к сбою поиска tnsnames.ora.

Как подключиться к базе без использования tnsnames.ora?

Используйте синтаксис EZConnect: host:port/service_name (например, db-srv01:1521/orclpdb.local).

Какие права должны быть на файл tnsnames.ora в Linux?

Файл должен иметь права на чтение для всех пользователей: chmod 644 $ORACLE_HOME/network/admin/tnsnames.ora.

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