Ошибки СУБД. 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С+PostgreSQL+Linux. Часть 2.
Ошибка СУБД: Продолжение сообщения может быть различным: 1. DATABASE не пригоден для использования 2. ERROR: type «tt7» already exists 3. ERROR: could not read block DATABASE не пригоден для использования Пример полного текста ошибки: [crayon-67ade98e88de6155008297/] Описание ошибки: База не запускается после установки и создания. Решения: Установим версию предназначенную для работы с 1С:Предприятием. Скачать такую можно […]
Установка двух версий сервера 1С на Linux
Пошаговый процесс установки и запуска двух версий сервера 1С на Linux. Полное описание настройки второго экземпляра сервера 1С.
Подключение репозитория под ОС Linux
Инструкции по подключению репозитория как под CentOS так и под РЕД ОС.
Публикация 1С на Веб сервере Apache Linux
Пошаговые инструкции по публикация базы и web-сервисов 1С на веб-сервере Apache 2.4 на Linux.
Администрирование серверов 1С на Linux
Привычным для нас инструментом управления кластером серверов 1С является консоль «Администрирование серверов 1С Предприятия» — «Microsoft Management Console». Данная консоль позволяет выполнять все необходимые действия по администрированию кластеров серверов 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. Увеличиваем максимальное число сегментов разделяемой […]
Ошибка 1С:Предприятие «Потеряно соединение»
Потеряно соединение Во время выполнения действия была потеряна связь с сервером. Проверьте сетевой соединение и нажмите "Повторить" для повторной попытки выполнения действия. Если ошибка повторится, возможно, сервер временно недоступен.
Похожие записи
- Подключение репозитория под ОС Linux
- Ошибка 1С:Предприятие «Потеряно соединение»
- Что такое PG_TEMP в PostgreSQL для 1С
- НАСТРОЙКА PG_PROFILE ДЛЯ POSTGRESQL 1.
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Настройка непрерывного архивирования (point-in-time-recovery, PITR) в PostgresPro 11 Linux
- Пропажа индексов дескрипторов в 1С:Документообороте
- 1C тормозит и возникают ошибки. С чего начать расследование?
- Анализ технологического журнала 1С регулярными выражениями. От простого к сложному.