Ошибки СУБД. 1С+PostgreSQL+Linux. Часть 1.

Ошибка 1С «Сервер баз данных не обнаружен»
При работе с 1С в клиент-серверном варианте могут возникать ошибки, которые напрямую не связаны с 1С:Предприятием, а связаны непосредственно с сервером управления баз данных.
Одна из распространенных ошибок — «Сервер баз данных не обнаружен…».
Продолжение данного сообщения может быть различным:
-
1. Could not translate host name «NAME» to address: Temporary failure in name resolution
2. ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident)
3. ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template»
4. Is the server running on host and accepting TCP/IP connections on port 5432?
Далее рассмотрим подробнее каждую ошибку.
Could not translate host name «NAME» to address: Temporary failure in name resolution
Пример полного текста ошибки:
1 2 |
Сервер баз данных не обнаружен could not translate host name "NAME" to address: Temporary failure in name resolution |
Описание:
Ошибка может возникать как при создании базы, так и при запуске информационной базы.
Решение:
Настроим DNS-адресацию или пропишем адреса в файл hosts. Обратите внимание, что в данном случае проблема в том, что на сервере 1С нет информации о доменном имени сервера СУБД PostgreSQL. Подробнее о DNS — Настройка DNS-адресации для 1С сервера.
ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident)
Пример полного текста ошибки:
1 2 |
Сервер баз данных не обнаружен ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (Ident) |
Описание: Ошибка возникает при создании базы.
Решение:
Настроим проверку подлинности.
-
- Сконфигурируем доступ к серверу PostgreSQL в файле: pg_hba.conf:
1 |
vim /var/lib/pgsql/11/data/pg_hba.conf |
Файл должен содержать только следующие строки (содержащие ip серверов 1С) (остальные удалим или пометим как комментарий):
1 2 3 4 5 |
# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all «Указать ip-адрес сервера 1С» md5 |
Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.
Последняя колонка указывает на метод авторизации.
Если пока теряетесь в настройках доступа. Для понимания, можно сначала открыть все, запустить сервер.
1 2 3 4 5 |
# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 0.0.0.0/0 trust |
А после удачного старта сервера СУБД разбираться с настройками доступа.
ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template»
Пример полного текста ошибки:
1 |
Сервер баз данных не обнаружен ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template». |
Описание ошибки:
Ошибка связана с отсутствием прописанного доступа к базе данных в файле pg_hba.conf
Решение:
Добавим запись в файл pg_hba.conf.
Приведем пример содержания файла, который открывает доступ:
1 2 3 4 5 |
# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all «Указать ip-адрес сервера 1С» md5 |
Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.
Is the server running on host and accepting TCP/IP connections on port 5432?
Пример полного текста ошибки:
1 |
Сервер баз данных не обнаружен could not connect to server: No rout to host Is the server running on host and accepting TCP/IP connections on port 5432? |
Описание:
Проблема может возникать как при создании информационной базы из консоли администрирования 1С: Предприятия, так и при ее запуске в процессе эксплуатации уже существующей базы данных.
Решение:
В данном случае необходимо понимать, что рабочего процесса:
Либо нет;
Либо клиент(в нашем случае сервер 1С) его не «видит» по ряду причин:
— Отсутствие доступа;
— Обращение по другому адресу.
1. Первоначально, конечно, проверим, есть ли на сервере СУБД PostgreSQL в запущенных процессах процесс postmaster/postgres (в зависимости от версии PostgreSQL) на порту 5432.
1 |
netstat –tlnp | grep 5432 |
Или
1 |
ss –tlnpu | grep 5432 |
1.1. Если по результатам проверки видим, что не запущен процесс, то необходимо его запустить.
1 |
service postgresql-11 start |
1.2. Если по результатам проверки видим, что процесс запущен, но слушает только «себя» 127.0.0.1.
То выполним ряд настроек.
Отредактируем конфигурационный файл
1 |
vim /var/lib/pgsql/11/data/postgresql.conf |
Укажем там настройку:
1 |
listen_addresses = '*' |
1.3. Если видим, что процесс запущен
То переходим к следующем пункту.
2. Проверим доступность процесса по порту, который он «слушает».
С сервера 1С выполним команду(в нашем случае имя сервера СУБД «1s-on-pg-1»):
1 |
telnet 1s-on-pg-1 5432 |
Если доступ отсутствует – то мы увидим нечто подобное:
1 |
Подключение к 333.33.33.xx...Не удалось открыть подключение к этому узлу, на порт 5432: Сбой подключения |
К причинам отсутствия доступа по данному порту можно отнести:
- Блокировка брадмауэром или другими подобными программами;
- Отсутствие доступа на уровне сети.
2.1. Проверим статус файерволла.
1 |
systemctl status firewalld |
Если файерволл работает и блокирует порт 5432, то.
Отключим firewall:
1 |
systemctl stop firewalld |
и отключим автозапуск.
1 |
systemctl disable firewalld |
Результат должен быть следующим:
1 |
systemctl status firewalld |
или
настроим, открыв порт 5432.
1 2 3 |
iptables -t filter -I INPUT -p tcp --dport 5432 -j ACCEPT service iptables save |
«Породить новый процесс для соединения не удалось: Ресурс временно недоступен» или «ВАЖНО: извините, уже слишком много клиентов»
Пример полного текста ошибки:
1 |
Сервер баз данных не обнаружен породить новый процесс для соединения не удалось: Ресурс временно недоступен |
или
1 |
Сервер баз данных не обнаружен ВАЖНО: извините, уже слишком много клиентов |
Описание:
В процессе работы выдается ошибка
Решение:
Изменим настройку в файле postgresql.conf
1 |
max_connections=500 |
Данное число, должно быть примерно в 1.5 раза больше максимального количества пользователей.
Установим ее:
-
- Перейдем в терминал psql.
1 |
psql |
-
- Через psql установим следующие параметры командой ALTER SYSTEM SET:
1 |
ALTER SYSTEM SET max_connections=500; |
FATAL: database «base» does not exist
Пример полного текста ошибки:
1 2 |
Сервер баз данных не обнаружен FATAL: database "base" does not exist |
Описание:
При запуске базы данных выдается ошибка, которая говорит о том, что данная база не существует.
Решение:
Проверим наименование базы данных и информационной базы. Сделать это можно в консоли администрирования 1С в свойствах базы.
Учтём, что Linux чувствителен к регистру(Base/base/BASE – для него это разные имена баз).
Еще можно посмотреть
Ошибки сервера 1С на Linux
Описание типичных ошибок которые возникают при запуске службы сервера 1С на Linux и пути их исправления
Ошибка «Слишком много открытых файлов» или«Too many open files» В 1С на Linux
Устраняем ошибку «Слишком много открытых файлов» или «Too many open files» в 1С под ОС Linux (Red Hat 7/Centos 7) 1. Увеличиваем лимит на открытые файлы всей системы. 2. Увеличиваем лимит на открытые файлы для процессов 1С. 3. Увеличиваем лимиты на открытые файлы для процесса 1С редактированием файла демона. 4. Увеличиваем максимальное число сегментов разделяемой […]
НАСТРОЙКА PG_PROFILER ДЛЯ POSTGRESQL 11.
Помимо анализа планов и запросов СУБД в технологическом журнале 1С, также бывает полезным анализировать статистику по запросам в pg_profiler. Тем более, что она уже собирается в сгруппированном по запросам виде. Ниже приведем инструкцию по его настройке. 1. Инсталляция и настройка pg_profile. 2. Настройка отображения pg_profiler через веб-сервер apache. Инсталляция и настройка pg_profile. 1. Скачаем pg_profile […]
ОШИБКА 1С:ПРЕДПРИЯТИЯ «ПОТЕРЯНО СОЕДИНЕНИЕ»
У пользователя во время работы может возникать сообщение: [crayon-64851a5f1afa4755670079/] После чего рабочий режим либо восстанавливается, либо нет. В сообщении достаточно ясно описана возникшая ситуация, но необходимо понимать, что по другую сторону экрана пользователя, ландшафт системы может быть несколько сложнее, чем он себе представляет. И сервер «с которым потеряно соединение» может быть не только сервер 1С:Предприятия. […]
Установка сервера 1С Предприятие 8.3 на Linux
Пошаговый процесс установки 1С сервера на Linux. Подготовка Linux к установке. Инсталяция дистрибутива 1С сервера. Его настройка и запуск.
Отладка на сервере 1С на Linux
Настройка отладки на Linux сервере 1С. Пошаговый процесс настройки tcp и http отладки.
Основы работы в Linux
Основы работы в Linux. Как подключиться к серверу. Как скопировать файлы на сервер. Редактирование конфигурационных файлов.
Похожие записи
- Подключение репозитория под ОС Linux
- ОШИБКА 1С:ПРЕДПРИЯТИЯ «ПОТЕРЯНО СОЕДИНЕНИЕ»
- ЧТО ТАКОЕ PG_TEMP В POSTGRESQL ДЛЯ 1С И КТО ИХ СОЗДАЕТ?
- НАСТРОЙКА PG_PROFILER ДЛЯ POSTGRESQL 11.
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Настройка непрерывного архивирования (point-in-time-recovery, PITR) в PostgresPro 11 Linux
- Пропажа индексов дескрипторов в 1С:Документообороте
- 1C тормозит и возникают ошибки. С чего начать расследование?
- Анализ технологического журнала 1С регулярными выражениями. От простого к сложному.