Сервер баз данных не обнаруженcould not translate host name "NAME" to address: Temporary failure in name resolution

Предназначенный для автоматизации деятельности на предприятии.

Первоначально, продукт 1С:Предприятие был предназначен для автоматизации бухгалтерского учёта и управленческого учёта (включая начисление зарплаты и управление кадрами). Но сегодня этот продукт находит своё применение в областях, далёких от собственно бухгалтерских задач.

1С:Предприятие - это (одновременно) и технологическая платформа, и пользовательский режим работы. Технологическая платформа предоставляет объекты (данных и метаданных) и механизмы управления объектами. Объекты (данные и метаданные) описываются в виде конфигураций . При автоматизации какой-либо деятельности составляется своя конфигурация объектов, которая и представляет собой законченное прикладное решение . Конфигурация создаётся в специальном режиме работы программного продукта под названием «Конфигуратор», затем запускается режим работы под названием «1С:Предприятие», в котором пользователь получает доступ к основным функциям, реализованным в данном прикладном решении (конфигурации) .

СУБД

  • Страница загрузок 1С (Требуется логин/пароль, предоставляется партнером) http://users.v8.1c.ru/getpg.aspx?id=Platform_8_4_3_31C

PostgreSQL

Установка

  • Версии PostgreSQL для windows и linux http://users.v8.1c.ru/project.jsp?id=AddCompPostgre
  • Документация по графическому интерфейсу администрирования http://www.pgadmin.org/docs/dev/index.html
  • Инструкция по установке http://myconsult2.ru/?p=232

Гарантированно работает связка:

  • 1C 8.2.15.301 + PostgreSQL 9.0.3-3.1С (с сайта 1С) + Windows Server 2008 SP2 (x64).

1С-версия PostgreSQL 9.0.3-3.1С при установке на чистой Windows Server 2008 SP2 (x64) влетает с ошибкой:

Ошибка создания контекста архивации для "C:\Program Files (x86)\PostgreSQL\9.0.3-3.1C\bin\initdb.exe". Ошибка в файле манифеста или политики "C:\Program Files (x86)\PostgreSQL\9.0.3-3.1C\bin\Microsoft.VC90.CRT.MANIFEST" в строке 4. Идентификатор компонента в файле манифеста не соответствует запрошенному идентификатору компонента. Ссылка - Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8". Определение - Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.1". Используйте sxstrace.exe для подробной диагностики.

Временное решение: скачать дистрибутив PostgreSQL 9.0.7 с официального сайта разработчиков (дистрибутив весит больше 1С-овского), нормально без ошибок установить с настройками по-умолчанию, удалить из системы через "Программы и компоненты" панели управления, после чего без ошибок установить версию от 1С.

Правильное решение: Поставить Microsoft Visual C++ 2008 Redistributable, затем лишь приступать к установке PostgreSQL 9 от 1C.

Инсталляция PostgreSQL 9.1.2-1.1C. Запускаем установочный файл программы PostgreSQL

Тюнинг производительности

В книге Алексея Васильева «Работа с Postgresql. Настройка, масштабирование» рекомендованы следующие параметры для высоконагруженных БД (файл postgresql.conf) :

Максимальный объем оперативной памяти , который может занять PostgreSQL (это важно при объемных запросах). За него отвечает параметр shared_buffers в postgresql.conf. Насчет значения для этой величины существуют разные рекомендации. Я пришел к выводу, что если это выделенный под БД сервер, то можно одному процессу отдать почти весь объем оперативки минус то, что нужно системе на свои нужды.

В некоторых случаях может помочь замена значения параметра конфигурации postgresql.conf

Online_analyze.table_type = "temporary"

Online_analyze.table_type = "all"

IBM DB2 Express-C

  • Версии IBM DB2 Express-C для windows и линукс http://users.v8.1c.ru/project.jsp?id=AddCompDB2

MSSQL

Oracle

Веб-сервер Apache

Дистрибутив веб-сервера для платформы Windows берем по ссылке: http://www.apache.org/dist/httpd/binaries/win32/

Запускаем установочный файл программы Apache

Платформа

Установка

Установка платформы 1С: Предприятие 8.2

Администрирование

Добавление информационной базы

Запуск внешних обработок по расписанию

Подключение кассового аппарата

Настройки Штрих-М-ФР-К

  • Штрих-М-ФР-К
    • После включения пункта Наличная оплата следует перезапустить клиент
    • Перед включением пункта Печать логотипа , его следует загрузить в меню Функции

Предоставление доступа через веб (http/https)

На backend-сервере (1c-backend.local.example.com), где установлена платформа 1С необходим веб-сервер Apache. Под Windows его установка не представляет особой сложности.

Предположим, что на frontend-сервере (1c.example.com), смотрящем во внешнюю сеть стоит Nginx . В таком случае его конфигурационный файл будет иметь следующий вид:

Server { listen 80; server_name 1c.example.com; rewrite ^(.*) https://1c.example.com/Test-Conf/$1 permanent; } server { listen 443; ssl on; ssl_certificate /etc/nginx/ssl/1c.example.com.crt; ssl_certificate_key /etc/nginx/ssl/1c.example.com.key; server_name 1c.example.com; access_log /var/log/nginx/1c.example.com-access_log; if ($request_uri = /) { rewrite ^ https://1c.example.com/Test-Conf/ permanent; #301 redirect } location /Test-Conf/ { proxy_pass http://1c-backend.local.example.com/Test-Conf/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 50m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; # Разрешить доступ только из локальной сети # allow 172.16.0.0/12; # deny all; } include inc-awstats.conf; include inc-errors.conf; }

Генерация SSL-сертификатов подробно рассмотрена в статье Nginx

Программирование

Связь 1С и MySQL

Устранение неполадок

Ошибка сетевого доступа к серверу. Windows Sockets - 11001(0x00002AF9)

Возможные варианты работы операционных систем сервера и клиента:

  1. компьютер и сервер в домене - ok
  2. компьютер и сервер не домене - Ой ё, but still ok
  3. компьютер не в домене, а сервер в домене - not ok

В случае, если компьютер не в домене, а сервер в домене, возникает ошибка подключения тонкого клиента к серверу:

Server_addr=example descr=Ошибка сетевого доступа к серверу (Windows Sockets - 11001(0x00002AF9). этот хост неизвестен.)

Это означает, что клиент 1c не находит адрес example в файле hosts. Перейдите в папку etc через Пуск > Выполнить > cmd

%SystemRoot%/system32/drivers/etc

# localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost 192.0.0.10 example

Очистьте кэш dns через Пуск > Выполнить > cmd

Ipconfig /flushdns

1с и HASP ключ в разных подсетях

Для использования локальных баз нужен физический ключ. Установите на сервер лицензий

  • hasp license manager
  • физический ключ
  • откройте порты 475, 1947 TCP и UDP Домен, Частный, Публичный для нужных подсетей или всех.

Возьмем ситуацию:

Сервер терминалов srv 192.0.1.9/24 Сервер лицензий srv 192.0.1.10/24 Сервер лицензий buh 192.0.2.10/24 Клиент buh 192.0.2.33/24 Клиент div1 192.0.3.33/24

Компьютеры и сервера в одной подсети с сервером лицензий (srv и buh) видят ключ без дополнительной настройки. Компьютерам в других подстеях укажите адрес сервера лицензий в конфигурационном файле C:\Program Files\1cv82\conf\nethasp.ini

;;NH_SERVER_ADDR = , ; IP addresses of all the NetHASP ; License Managers you want to search. ; Unlimited addresses and multiple ; lines are possible. ; ; Possible address format examples: ; IP address: 192.114.176.65 ; Local Hostname: ftp.aladdin.co.il NH_SERVER_ADDR = 192.0.1.10

Примечания

См. также

Ссылки

  • Настройка автоматического резервного копирования базы 1C 8.2 при помощи бесплатной программы Effector Saver 3

Связка сервера 1С:Предприятие и PostgreSQL вторая по популярности среди установок 1С и самое используемое решение на платформе Linux. В отличии внедрений на базе Windows и MSSQL, где трудно сделать так, чтобы не заработало, внедрения на базе Linux таят множество подводных камней для неопытного администратора. Часто бывает так, что вроде бы все сделано правильно, но ошибка следует за ошибкой. Сегодня мы рассмотрим самые типовые из них.

Общая информация

Перед тем, как начинать искать ошибки установки и, вообще, приступать к внедрению серверной версии 1С:Предприятия было бы неплохо освежить представление как это работает:

В небольших внедрениях сервер 1С и сервер СУБД обычно совмещают на одном физическом сервере, что немного сужает круг возможных ошибок. В нашем случае будет рассматриваться ситуация, когда сервера разнесены по разным машинам. В нашей тестовой лаборатории мы развернули следующую схему:

В нашем распоряжении имеются два сервера под управлением Ubuntu 12.04 x64, на одном из них установлен сервер 1С:Предприятие версии 8.3, на другом PostgreSQL 9.04 от Ethersoft, а также клиент под управлением Windows. Напоминаем, что клиент работает только с сервером 1С, который, в свою очередь, формирует необходимые запросы к серверу СУБД. Никаких запросов от клиента к серверу управления базами данных не происходит .


ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (Ident)

Данная ошибка возникает при разнесении серверов по разным ПК из-за неправильно настроеной проверки подлинности в локальной сети. Для устранения откройте /var/lib/pgsql/data/pg_hba.conf , найдите строку:

Host all all 192.168.31.0/24 ident

и приведите ее к виду:

Host all all 192.168.31.0/24 md5

где 192.168.31.0/24 - диапазон вашей локальной сети. Если такой строки нет, ее следует создать в секции IPv4 local connections .

Сервер баз данных не обнаружен
could not translate host name "NAME" to address: Temporary failure in name resolution

На первый взгляд ошибка понятна: клиент не может разрешить имя сервера СУБД, типичная ошибка для небольших сетей, где отсутствует локальный DNS-сервер. В качестве решения добавляют запись в файл hosts на клиенте, что не дает никакого результата...

А теперь вспоминаем, о чем было сказано несколько раньше. Клиентом сервера СУБД является сервер 1С, но никак не клиентский ПК, следовательно запись нужно добавлять на сервере 1С:Предприятие в файл /etc/hosts на платформе Linux или в на платформе Windows.

Аналогичная ошибка будет возникать, если вы забыли добавить запись типа A для сервера СУБД на локальном DNS-сервере.

Ошибка при выполнении операции с информационной базой
server_addr=NAME descr=11001(0x00002AF9): Этот хост неизвестен.

Как и прошлая, эта ошибка связана с неправильным разрешением клиентом имени сервера. На этот раз именно клиентским ПК. В качестве решения добавляем в файл /etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows запись вида:

192.168.31.83SRV-1C-1204

где указываете адрес и имя вашего сервера 1С:Предприятия. В случае использования локального DNS следует добавить A-запись для сервера 1С.

Ошибка СУБД: DATABASE не пригоден для использования

Гораздо более серьезная ошибка, которая говорит о том, что вы установили несовместимую с 1С:Предприятие версию PostgreSQL или допустили грубые ошибки при установке, например не установили все необходимые зависимости, в частности библиотеку libICU .

Если вы имеете достаточный опыт администрирования Linux систем, то можете попробовать доустановить необходимые библиотеки и заново инициализировать кластер СУБД. В противном случае PostgreSQL лучше переустановить, не забыв удалить содержимое папки /var/lib/pgsql .

Также данная ошибка может возникать при использовании сборок 9.1.x и 9.2.x Postgre@Etersoft , подробности смотрите ниже.

Ошибка СУБД:
ERROR: could not load library "/usr/lib/x86_64-linux-gnu/postgresql/fasttrun.so"

Довольно специфичная ошибка, характерная для сборок 9.1.x и 9.2.x Postgre@Etersoft , также может приводить предыдущей ошибке. Причина кроется в неисправленной ошибке в библиотеке fasttrun.so. Решение - откатиться на сборку 9.0.x Postgre@Etersoft .

Ошибка СУБД
ERROR: type "mvarchar" does not exist at character 31

Возникает если база данных была создана без помощи системы 1С:Предприятия. Помните, для работы с 1С базы данных следует создавать только с использованием инструментов платформы 1С: через консоль

или через средство запуска 1С.

Сервер баз данных не обнаружен
ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)

Очень простая ошибка. Неправильно указан пароль суперпользователя СУБД postgres. Вариантов решения два: вспомнить пароль или изменить его. Во втором случае вам нужно будет изменить пароль в свойствах всех существующих информационных баз через оснастку Администрирование серверов 1С Предприятия .

Сервер баз данных не обнаружен
FATAL: database "NAME" does not exist

Еще одна очень простая ошибка. Смысл ее сводится к тому, что указанная БД не существует. Чаще всего возникает из-за ошибки в указании имени базы. Следует помнить, что информационная база 1С в кластере и база данных СУБД - две разные сущности и могут иметь различные имена. Также следует помнить, что Linux системы чувствительны к регистру и для них unf83 и UNF83 два разных имени.

  • Теги:

Please enable JavaScript to view the

Большинство проблем при подключении к серверу 1С:Предприятия связаны с адресами машин и доступностью серверов кластера сервера 1С.

Ошибка "Затребованное имя допустимо"

При подключении к серверу 1С:Предприятия получаем ошибку:

Server_addr=tcp://localhost.localdomain:1562 descr=Ошибка сетевого доступа к серверу (Windows Socket-11004(0х00002AFC). Затребованное имя допустимо и оно найдено в базе данных, но для имени отсутствует связанные с ним данные, которые были разрешены для него.) line=259 file=.\src\DataExchangeTcpClientlmpl.cpp

Ошибка 11004 показывает, что указанному имени сервера в DNS нет соответствующей записи типа A, которая определяет его IP адрес.

"Ошибка при выполнении операции с информационной базой" "Ошибка сетевого доступа к серверу" (Windows Sockets 11001(0x00002AF9). Этот хост неизвестен.)

Возможное решение

На ошибку "Затребованное имя допустимо и оно найдено в базе данных, но для имени отсутствует связанные с ним данные, которые были разрешены для него " в файлах

/home/usr1cv81/1c/1cv81/srvibrg.lst и /home/usr1cv81/1c/1cv81/reg_1541/s1CV8Reg.lst

нужно заменить везде localhost.localdomain (или адрес, который там указан) на IP-адрес сервера сервера (в кавычках), либо на имя машины (тоже в кавычках). При указании имени машины нужно обеспечить для имён машин прямую зону в DNS, а для IP-адресов - обратную.

Проверить этот совет не представилось возможным, т.к. не удалось воспроизвести проблему

Ошибка сетевого доступа к серверу

При запуске базы в режиме предприятия получаем ошибку: descr = Ошибка сетевого доступа к серверу (Windows Sockets - 10004(0x00002714).@) line=870 file=.\src\DataExchangeServerImpl.cpp

В качестве решения нужно прописать адрес и имя сервера в /etc/hosts

Дальнейшие действия для локализации проблемы.

1. Удостовериться в правильной и полной установки пакетов.

rpm -qa | grep nterprise

должно быть примерно:

1C_Enterprise-ws-nls-8.1.12-101

1C_Enterprise-crs-8.1.12-101

1C_Enterprise-server-nls-8.1.12-101

1C_Enterprise-crs-nls-8.1.12-101

1C_Enterprise-common-nls-8.1.12-101

1C_Enterprise-ws-8.1.12-101

1C_Enterprise-server-8.1.12-101

1C_Enterprise-common-8.1.12-101

2. Удостовериться в правильном и полном запуске сервера

  1. ps aux | grep 1c

(должно быть ragent, rmngr, rphost)

3. Удостовериться в наличии и правильном содержании файлов srvribrg.lst 1CV8Reg.lst

4. Включить логи и изучить ошибки

Недоступность порта

Возможно не все сервера на кластере запустились. Проверить можно командой netstat -apn | grep:15 (выведет процессы, слушающие порты 15xx). Незапущенность серверов обычно связана с неверным указанием адресов узлов в конф. файлах. /home/usr1cv81/1c/1cv81/srvibrg.lst и /home/usr1cv81/1c/1cv81/reg_1541/s1CV8Reg.lst

Несоответствие системы

Если при первом запуске кластера выдаётся ошибка, и появляется только файл /home/usr1cv81/1c/1cv81/srvibrg.lst практически без содержимого, возможно нужно обновить систему.