Связка сервера 1С:Предприятие и PostgreSQL вторая по популярности среди установок 1С и самое используемое решение на платформе Linux. В отличии внедрений на базе Windows и MSSQL, где трудно сделать так, чтобы не заработало, внедрения на базе Linux таят множество подводных камней для неопытного администратора. Часто бывает так, что вроде бы все сделано правильно, но ошибка следует за ошибкой. Сегодня мы рассмотрим самые типовые из них.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Общая информация
Перед тем, как начинать искать ошибки установки и, вообще, приступать к внедрению серверной версии 1С:Предприятия было бы неплохо освежить представление как это работает:
Сервер 1С Предприятия. Часть 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 или в C:WindowsSystem32driversetchosts на платформе Windows.
Аналогичная ошибка будет возникать, если вы забыли добавить запись типа A для сервера СУБД на локальном DNS-сервере.
Ошибка при выполнении операции с информационной базой
server_addr=NAME descr=11001(0x00002AF9): Этот хост неизвестен.
Как и прошлая, эта ошибка связана с неправильным разрешением клиентом имени сервера. На этот раз именно клиентским ПК. В качестве решения добавляем в файл /etc/hosts на платформе Linux или в C:WindowsSystem32driversetchosts на платформе Windows запись вида:
192.168.31.83 SRV-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С Предприятия
или через средство запуска 1С.
Сервер баз данных не обнаружен
ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (по паролю)
Очень простая ошибка. Неправильно указан пароль суперпользователя СУБД postgres. Вариантов решения два: вспомнить пароль или изменить его. Во втором случае вам нужно будет изменить пароль в свойствах всех существующих информационных баз через оснастку Администрирование серверов 1С Предприятия.
Сервер баз данных не обнаружен
FATAL: database «NAME» does not exist
Еще одна очень простая ошибка. Смысл ее сводится к тому, что указанная БД не существует. Чаще всего возникает из-за ошибки в указании имени базы. Следует помнить, что информационная база 1С в кластере и база данных СУБД — две разные сущности и могут иметь различные имена. Также следует помнить, что Linux системы чувствительны к регистру и для них unf83 и UNF83 два разных имени.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Как заставить Сервер 1С (что работает на Windows), увидеть в сети сервер PostgreSQL на Linux UBUNTU?
Конечно, данная тема также подымается и на курсе: Администратор 1С!
Собственно решить такие проблемы как:
- «Ошибка создания информационной базы»
- «Ошибка операции администрирования»
- «Сервер баз данных не обнаружен»
- «Could not connect to server: Connection refused (Ox..00000/0000…)
- Is the server running on host 192.168….x… and accepting TCP/IP connections on port 5432?»
При установке на один физический сервер, «Cервера 1С» (кластер серверов) + СУБД PostgreSQL проблем обычно не возникает. И «Сервер 1С» прекрасно видит PostgreSQL, новые информационные базы создаются, и все работает по умолчанию, конечно если поставили птичку во время установки СУБД на Windows — «Разрешать подключения с любых IP адресов».
Но совсем другая история, когда PostgreSQL у нас работает на Linux!
Ведь в процессе установки PostgreSQL на Linux подобных «птичек» нет )
Как решить проблему?
На самом деле все довольно просто!
Проверим в начале c какого IP принимаются подключения, и какой порт слушает сервис PostgreSQL.
Тут нам поможет команда:
sudo netstat —pant | grep postgres |
На картинке ниже, мы четко видим, что наш PostgreSQL слушает только localhost — 127.0.0.1 и порт по умолчанию 5432.
Выражаясь простым языком, «Сервер 1С» может работать в паре с СУБД, только на этом севере (хосте), при текущих настройках (По умолчанию, после установки «Постгреса» на этот сервер).
И так, теперь разобравшись, что проблема действительно есть в настройках PostgreSQL, можно приступить к ее решению!
Сперва нам нужно найти конфигурационный файл postgresql.conf
Местоположение этого файла зависит от версии СУБД PostgreSQL (На примере использую сборку от компании Postgres Professional — PostgreSQL 10.5, сборку установил на UBUNTU server 18.04 LTS).
Найти файл очень просто, используем команду:
ps aux | grep postgres | grep — —D |
Нас интересует все что мы видим после -D /var/lib/pgpro/1c-10/data/
Здесь в каталоге /data/ и лежит наш файл postgresql.conf
Идем в этот каталог, откроем для редактирования postgresql.conf, и внесем нужные правки.
Для передвижения по каталогам и редактированию файлов на UBUNTU server 18.04, я использую MC (Midnight Commander).
Как его установить, писал здесь >>
(Выбрав файл postgresql.conf) далее давим клавишу F4:
Ищем строку #listen_addresses = ‘localhost’.
Раскомментируем строку (убрав #).
И приведем строку к виду: listen_addresses = ‘*’
Давим F2 + Enter и сохраняем файл.
Далее выполним перезапуск сервиса postgresql:
Стоп:
service postgrespro-1c-10 stop
И старт:
service postgrespro-1c-10 start
(Команда перезапуска у Вас будет отличатся, если версия PostgreSQL другая или другой сборки).
Затем стоит проверить работает ли PostgreSQL:
service postgrespro-1c-10 status
И если видим (как на картинке ниже) зеленым цветом active (running) значит PostgreSQL работает!
Смотрим, что теперь «слушает» PostgreSQL:
sudo netstat —pant | grep postgres |
Отлично!
После перезапуска сервиса, PostgreSQL принимает подключения действительно с любых IP адресов на стандартный порт 5432!
Но! не спешите сейчас бежать на Сервер 1С, создавать новую информационную базу, или выполнять подключение.
Сервер 1С встретит Вас новой ошибкой! )
«ВАЖНО: в pg_hba.conf нет записи для компьютера «192.168.128.13», пользователя «postgres», базы «template1″, SSl выкл.»
Сервер 1С требует от нас создать еще одну запись, уже в другом файле pg_hba.conf
«Надо, так надо )»
Открываем для редактирования файл pg_hba.conf, он к слову находится в том же каталоге, что и файл postgresql.conf
Ищем строку: host all all 127.0.0.1/32 md5
И приводим к виду: host all all 192.168.128.13/24 md5
Где 192.168.128.13 ip адрес нашего Сервера 1С. (Тот сервер, где работает Сервер 1С).
Кстати! можно поступить и по-другому.
Просто добавить в строке ниже еще одну запись (Ту которую от нас и требует Сервер 1С):
Вот и все!
Сохраним файл и выполним перезапуск PostgreSQL.
Теперь новая информационная база 1С, будет создана успешно!
Сервер 1С работает на Windows, а PostgreSQL на Linux!
Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 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?
5. «Породить новый процесс для соединения не удалось: Ресурс временно недоступен» или «ВАЖНО: извините, уже слишком много клиентов.»
6. FATAL: database «base» does not exist
Далее рассмотрим подробнее каждую ошибку.
Could not translate host name «NAME» to address: Temporary failure in name resolution
Пример полного текста ошибки:
Сервер баз данных не обнаружен could not translate host name «NAME» to address: Temporary failure in name resolution |
Описание:
Ошибка может возникать как при создании базы, так и при запуске информационной базы.
Решение:
Настроим DNS-адресацию или пропишем адреса в файл hosts. Обратите внимание, что в данном случае проблема в том, что на сервере 1С нет информации о доменном имени сервера СУБД PostgreSQL. Подробнее о DNS — Настройка DNS-адресации для 1С сервера.
ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident)
Пример полного текста ошибки:
Сервер баз данных не обнаружен ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident) |
Описание: Ошибка возникает при создании базы.
Решение:
Настроим проверку подлинности.
-
- Сконфигурируем доступ к серверу PostgreSQL в файле: pg_hba.conf:
vim /var/lib/pgsql/11/data/pg_hba.conf |
Файл должен содержать только следующие строки (содержащие ip серверов 1С) (остальные удалим или пометим как комментарий):
# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all «Указать ip-адрес сервера 1С» md5 |
Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.
Последняя колонка указывает на метод авторизации.
Если пока теряетесь в настройках доступа. Для понимания, можно сначала открыть все, запустить сервер.
# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 0.0.0.0/0 trust |
А после удачного старта сервера СУБД разбираться с настройками доступа.
ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template»
Пример полного текста ошибки:
Сервер баз данных не обнаружен ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template». |
Описание ошибки:
Ошибка связана с отсутствием прописанного доступа к базе данных в файле pg_hba.conf
Решение:
Добавим запись в файл pg_hba.conf.
Приведем пример содержания файла, который открывает доступ:
# 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?
Пример полного текста ошибки:
Сервер баз данных не обнаружен 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.
netstat –tlnp | grep 5432 |
Или
1.1. Если по результатам проверки видим, что не запущен процесс, то необходимо его запустить.
service postgresql—11 start |
1.2. Если по результатам проверки видим, что процесс запущен, но слушает только «себя» 127.0.0.1.
То выполним ряд настроек.
Отредактируем конфигурационный файл
vim /var/lib/pgsql/11/data/postgresql.conf |
Укажем там настройку:
1.3. Если видим, что процесс запущен
То переходим к следующем пункту.
2. Проверим доступность процесса по порту, который он «слушает».
С сервера 1С выполним команду(в нашем случае имя сервера СУБД «1s-on-pg-1»):
Если доступ отсутствует – то мы увидим нечто подобное:
Подключение к 333.33.33.xx…Не удалось открыть подключение к этому узлу, на порт 5432: Сбой подключения |
К причинам отсутствия доступа по данному порту можно отнести:
- Блокировка брадмауэром или другими подобными программами;
- Отсутствие доступа на уровне сети.
2.1. Проверим статус файерволла.
systemctl status firewalld |
Если файерволл работает и блокирует порт 5432, то.
Отключим firewall:
и отключим автозапуск.
systemctl disable firewalld |
Результат должен быть следующим:
systemctl status firewalld |
или
настроим, открыв порт 5432.
iptables —t filter —I INPUT —p tcp —dport 5432 —j ACCEPT service iptables save |
«Породить новый процесс для соединения не удалось: Ресурс временно недоступен» или «ВАЖНО: извините, уже слишком много клиентов»
Пример полного текста ошибки:
Сервер баз данных не обнаружен породить новый процесс для соединения не удалось: Ресурс временно недоступен |
или
Сервер баз данных не обнаружен ВАЖНО: извините, уже слишком много клиентов |
Описание:
В процессе работы выдается ошибка
Решение:
Изменим настройку в файле postgresql.conf
Данное число, должно быть примерно в 1.5 раза больше максимального количества пользователей.
Установим ее:
-
- Перейдем в терминал psql.
-
- Через psql установим следующие параметры командой ALTER SYSTEM SET:
ALTER SYSTEM SET max_connections=500; |
FATAL: database «base» does not exist
Пример полного текста ошибки:
Сервер баз данных не обнаружен FATAL: database «base» does not exist |
Описание:
При запуске базы данных выдается ошибка, которая говорит о том, что данная база не существует.
Решение:
Проверим наименование базы данных и информационной базы. Сделать это можно в консоли администрирования 1С в свойствах базы.
Учтём, что Linux чувствителен к регистру(Base/base/BASE – для него это разные имена баз).
После установки 1С и PostgreSQL выдаются ошибки:
а) Ошибка при создании информационной базы:
Ошибка при выполнении операции с информационной базой.
Ошибка СУБД: ERROR: language «plpgsql» does not exist.
HINT: use CREATE LANGUAGE to load the language into the database.
б) Ошибка при создании информационной базы:
Ошибка при выполнении операции с информационной базой.
Ошибка СУБД: ERROR: type «mvarchar» does not exist at character 31
в) Ошибка при создании информационной базы:
Ошибка при выполнении операции с информационной базой.
Ошибка СУБД: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (WIN1251).
HINT: Use the same encoding as in the template database, or use template0 as template.
Если вы столкнулись с такими проблемами и ищите ответ, то эта статья именно для вас.
[wp_ad_camp_3]
1. Установка 1C:Предприятия 8.2
Начало установки 1С:Предприятие 8.2.
Выбор компонентов для установки, дополнительно нам понадобятся:
-Сервер 1С:Предприятия
-Администрирование сервера 1С:Предприятия
[wp_ad_camp_3]
Выбираем русский язык
Далее нужно создать пользователя, от имени которого будет запускаться служба Агент Сервера. Значит ставим галку установить сервер 1С: Предприятия как сервис Windows (Рекомендуется). И создаем пользователя. Даже если вы укажете существующего и случайно зададите не тот пароль, то служба просто не запустится после установки. А сама установка завершиться корректно, нужно в окне запуске службы нажать — продолжить.
Запускаем установку
Установка драйвера защиты: Драйвер защиты нужно устанавливать на том компьютере, в который вставлен физический ключ. Чаще всего ключ устанавливают в сервер, мы поступим так же и оставим галку для установки драйверов по умолчанию — устанавливать.
Заканчиваем установку.
Далее я обычно для службы Агент сервера задают — запускать с системной учетной записью. Для этого заходим в «панель управления» — «администрирование» — «службы».
Находим «Агент сервера 1С: Предприятия», заходим в свойства:
[wp_ad_camp_3]
И на вкладке «вход в систему» переключаем вид входа на «с системной учетной записью».
2. Установка PostgreSQL для работы 1C:Предприятия.
Запускаем установку PostgreSQL. Сам дистрибутив нужно скачать с официального сайта 1С, т.к. там уже предоставляется версия, настроенная для работы с 1С.
Запускаем установку, выбираем русский язык, и жмем далее.
Еще раз далее
И еще раз далее
Выбор компонентов для установки — оставляем по умолчанию.
Далее нужно указать от имени какого пользователя будет запускаться сервер PostgreSQL.
Инициализация кластера.
Если необходимо чтобы агент сервера был разделен с SQL сервером ставим галку — поддерживать присоединения с любых IP, а не только localhost.
ВНИМАНИЕ! Кодировку устанавливаем: UTF-8 и для сервера и для клиента.
Тут оставляем все по умолчанию и опять жмем далее.
Дополнительные модули можно оставить по умолчанию, если нужно можете отметить необходимые.
Запускаем установку PostgreSQL
Завершаем установку.
Для службы PostgreSQL я так же обычно переключаю вид запуска — с системной учетной записью.
3. Создание информационной базы на pgsql сервере и частые ошибки которые встречаются на данном этапе.
Заходим в 1С, добавляем новую базу, говорим что база будет на сервере и указываем параметры сервера:
!Внимение. Базу нужно создавать именно из 1С, иначе если вы будете создавать ее из PgMyAdmin, то при попытке зайти в базу будут выдаваться ошибки:
Ошибка 1:
Ошибка при создании информационной базы:
Ошибка при выполнении операции с информационной базой.
Ошибка СУБД: ERROR: language «plpgsql» does not exist.
HINT: use CREATE LANGUAGE to load the language into the database.
Если вы даже зайдете в pgMyAdmin и добавите язык ‘plpgsql’ для базы данных, то будет появляться следующая ошибка.
Ошибка при создании информационной базы:
Ошибка при выполнении операции с информационной базой.
Ошибка СУБД: ERROR: type «mvarchar» does not exist at character 31
РЕШЕНИЕ: Вам нужно создавать базу именно из 1С.
Если при создании базы из 1С: Предприятия у вас появилось такое сообщение:
Ошибка при выполнении операции с информационной базой.
Ошибка СУБД: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (WIN1251).
HINT: Use the same encoding as in the template database, or use template0 as template.
РЕШЕНИЕ: Вы при установке PostgreSQL оставили язык Windows-1251 для сервера или клиента, который установлен по умолчанию, а нужно было изменить на UTF-8
Переустановите PostgreSQL и укажите язык UTF-8 при установке.
Источник: intelav.ru
-
22.09.2011, 04:51
#1
Гость форума
Установка 1С сервер82+PostgreSQL, Проблема с повторным созданием БД
Здравствуйте,
Конфигурация следующая: Windows 7 x64, 1С предприятие 8.1.15.14 + 1С сервер81, 1С предприятие 8.2.14.533 + 1С сервер82…работает на эмуляторе, все для тестирования.
Все настроил согласно тысячам инструкций и описаний в интернете…
Обе службы (81 и 82) работают под пользователем postrges с паролем *****
Создал по базе для каждой платформы, обе базы работают и по сей день.
А теперь проблема: При попытке создать еще одну базу под любой из платформ пишет ошибку:Ошибка при создании информационной базы
Сервер баз данных не обнаружен
FATAL: no pg_hba.conf enty for host @fe80::855C:766D:9889:6a04%11″, user «Postgres», database «template 1»Пытался найти решение в и-нете и на форуме, но ничего толкового так и не представилось…
Не понимаю с чем связано, есть подозрение на эмулятор. В первый раз все как по учебнику было.
Заранее огромное спасибо.
-
22.09.2011, 07:23
#2
Гордость форума PRO
А базу пытаешься создать средствами 1С? А не пробовал создать вначале «пустую базу» средствами самого PostgreSQL, а затем лишь «отразить» 1С на эту базу?
Судя по диагностики у тебя грабли именно при попытки создания базы в PostgreSQL средствами самой 1С.
Вот что кстати инет говорит про «pg_hba.conf»
Client authentication is controlled by a configuration file, which traditionally is named pg_hba.conf and is stored in the database cluster’s data directory. (HBA stands for host-based authentication.) A default pg_hba.conf file is installed when the data directory is initialized by initdb. It is possible to place the authentication configuration file elsewhere, however; see the hba_file configuration parameter.
The general format of the pg_hba.conf file is a set of records, one per line. Blank lines are ignored, as is any text after the # comment character. A record is made up of a number of fields which are separated by spaces and/or tabs. Fields can contain white space if the field value is quoted. Records cannot be continued across lines.
Each record specifies a connection type, a client IP address range (if relevant for the connection type), a database name, a user name, and the authentication method to be used for connections matching these parameters. The first record with a matching connection type, client address, requested database, and user name is used to perform authentication. There is no «fall-through» or «backup»: if one record is chosen and the authentication fails, subsequent records are not considered. If no record matches, access is denied.
A record may have one of the seven formats
local database user auth-method [auth-option]
host database user CIDR-address auth-method [auth-option]
hostssl database user CIDR-address auth-method [auth-option]
hostnossl database user CIDR-address auth-method [auth-option]
host database user IP-address IP-mask auth-method [auth-option]
hostssl database user IP-address IP-mask auth-method [auth-option]
hostnossl database user IP-address IP-mask auth-method [auth-option]А у тебя получается запись в этом файле следующая:
host @fe80::855C:766D:9889:6a04%11
user «Postgres»
database «template 1»вот и получаешь свой «access is denied»
Удачи
-
23.09.2011, 05:11
#3
Гость форума
Сообщение от avm3110
А базу пытаешься создать средствами 1С? А не пробовал создать вначале «пустую базу» средствами самого PostgreSQL, а затем лишь «отразить» 1С на эту базу?
Судя по диагностики у тебя грабли именно при попытки создания базы в PostgreSQL средствами самой 1С.
А у тебя получается запись в этом файле следующая:
host @fe80::855C:766D:9889:6a04%11
user «Postgres»
database «template 1»вот и получаешь свой «access is denied»
Удачи
Спасибо за ответ.
Проблема решена, ошибка: неправильно создание базы, неправильное заполнение полей. Смешно, но это так)))
Как заставить Сервер 1С (что работает на Windows), увидеть в сети сервер PostgreSQL на Linux UBUNTU?
Конечно, данная тема также подымается и на курсе: Администратор 1С!
Собственно решить такие проблемы как:
- “Ошибка создания информационной базы”
- “Ошибка операции администрирования”
- “Сервер баз данных не обнаружен”
- “Could not connect to server: Connection refused (Ox..00000/0000…)
- Is the server running on host 192.168….x… and accepting TCP/IP connections on port 5432?”
При установке на один физический сервер, “Cервера 1С” (кластер серверов) + СУБД PostgreSQL проблем обычно не возникает. И “Сервер 1С” прекрасно видит PostgreSQL, новые информационные базы создаются, и все работает по умолчанию, конечно если поставили птичку во время установки СУБД на Windows – “Разрешать подключения с любых IP адресов”.
Но совсем другая история, когда PostgreSQL у нас работает на Linux!
Ведь в процессе установки PostgreSQL на Linux подобных “птичек” нет )
Как решить проблему?
На самом деле все довольно просто!
Проверим в начале c какого IP принимаются подключения, и какой порт слушает сервис PostgreSQL.
Тут нам поможет команда:
sudo netstat —pant | grep postgres |
На картинке ниже, мы четко видим, что наш PostgreSQL слушает только localhost – 127.0.0.1 и порт по умолчанию 5432.
Выражаясь простым языком, “Сервер 1С” может работать в паре с СУБД, только на этом севере (хосте), при текущих настройках (По умолчанию, после установки “Постгреса” на этот сервер).
И так, теперь разобравшись, что проблема действительно есть в настройках PostgreSQL, можно приступить к ее решению!
Сперва нам нужно найти конфигурационный файл postgresql.conf
Местоположение этого файла зависит от версии СУБД PostgreSQL (На примере использую сборку от компании Postgres Professional – PostgreSQL 10.5, сборку установил на UBUNTU server 18.04 LTS).
Найти файл очень просто, используем команду:
ps aux | grep postgres | grep — —D |
Нас интересует все что мы видим после -D /var/lib/pgpro/1c-10/data/
Здесь в каталоге /data/ и лежит наш файл postgresql.conf
Идем в этот каталог, откроем для редактирования postgresql.conf, и внесем нужные правки.
Для передвижения по каталогам и редактированию файлов на UBUNTU server 18.04, я использую MC (Midnight Commander).
Как его установить, писал здесь >>
(Выбрав файл postgresql.conf) далее давим клавишу F4:
Ищем строку #listen_addresses = ‘localhost’.
Раскомментируем строку (убрав #).
И приведем строку к виду: listen_addresses = ‘*’
Давим F2 + Enter и сохраняем файл.
Далее выполним перезапуск сервиса postgresql:
Стоп:
service postgrespro-1c-10 stop
И старт:
service postgrespro-1c-10 start
(Команда перезапуска у Вас будет отличатся, если версия PostgreSQL другая или другой сборки).
Затем стоит проверить работает ли PostgreSQL:
service postgrespro-1c-10 status
И если видим (как на картинке ниже) зеленым цветом active (running) значит PostgreSQL работает!
Смотрим, что теперь “слушает” PostgreSQL:
sudo netstat —pant | grep postgres |
Отлично!
После перезапуска сервиса, PostgreSQL принимает подключения действительно с любых IP адресов на стандартный порт 5432!
Но! не спешите сейчас бежать на Сервер 1С, создавать новую информационную базу, или выполнять подключение.
Сервер 1С встретит Вас новой ошибкой! )
“ВАЖНО: в pg_hba.conf нет записи для компьютера “192.168.128.13”, пользователя “postgres”, базы “template1″, SSl выкл.”
Сервер 1С требует от нас создать еще одну запись, уже в другом файле pg_hba.conf
“Надо, так надо )”
Открываем для редактирования файл pg_hba.conf, он к слову находится в том же каталоге, что и файл postgresql.conf
Ищем строку: host all all 127.0.0.1/32 md5
И приводим к виду: host all all 192.168.128.13/24 md5
Где 192.168.128.13 ip адрес нашего Сервера 1С. (Тот сервер, где работает Сервер 1С).
Кстати! можно поступить и по-другому.
Просто добавить в строке ниже еще одну запись (Ту которую от нас и требует Сервер 1С):
Вот и все!
Сохраним файл и выполним перезапуск PostgreSQL.
Теперь новая информационная база 1С, будет создана успешно!
Сервер 1С работает на Windows, а PostgreSQL на Linux!
Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 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?
5. «Породить новый процесс для соединения не удалось: Ресурс временно недоступен» или «ВАЖНО: извините, уже слишком много клиентов.»
6. FATAL: database «base» does not exist
Далее рассмотрим подробнее каждую ошибку.
Could not translate host name «NAME» to address: Temporary failure in name resolution
Пример полного текста ошибки:
Сервер баз данных не обнаружен could not translate host name «NAME» to address: Temporary failure in name resolution |
Описание:
Ошибка может возникать как при создании базы, так и при запуске информационной базы.
Решение:
Настроим DNS-адресацию или пропишем адреса в файл hosts. Обратите внимание, что в данном случае проблема в том, что на сервере 1С нет информации о доменном имени сервера СУБД PostgreSQL. Подробнее о DNS — Настройка DNS-адресации для 1С сервера.
ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident)
Пример полного текста ошибки:
Сервер баз данных не обнаружен ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident) |
Описание: Ошибка возникает при создании базы.
Решение:
Настроим проверку подлинности.
-
- Сконфигурируем доступ к серверу PostgreSQL в файле: pg_hba.conf:
vim /var/lib/pgsql/11/data/pg_hba.conf |
Файл должен содержать только следующие строки (содержащие ip серверов 1С) (остальные удалим или пометим как комментарий):
# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all «Указать ip-адрес сервера 1С» md5 |
Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.
Последняя колонка указывает на метод авторизации.
Если пока теряетесь в настройках доступа. Для понимания, можно сначала открыть все, запустить сервер.
# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 0.0.0.0/0 trust |
А после удачного старта сервера СУБД разбираться с настройками доступа.
ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template»
Пример полного текста ошибки:
Сервер баз данных не обнаружен ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template». |
Описание ошибки:
Ошибка связана с отсутствием прописанного доступа к базе данных в файле pg_hba.conf
Решение:
Добавим запись в файл pg_hba.conf.
Приведем пример содержания файла, который открывает доступ:
# 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?
Пример полного текста ошибки:
Сервер баз данных не обнаружен 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.
netstat –tlnp | grep 5432 |
Или
1.1. Если по результатам проверки видим, что не запущен процесс, то необходимо его запустить.
service postgresql—11 start |
1.2. Если по результатам проверки видим, что процесс запущен, но слушает только «себя» 127.0.0.1.
То выполним ряд настроек.
Отредактируем конфигурационный файл
vim /var/lib/pgsql/11/data/postgresql.conf |
Укажем там настройку:
1.3. Если видим, что процесс запущен
То переходим к следующем пункту.
2. Проверим доступность процесса по порту, который он «слушает».
С сервера 1С выполним команду(в нашем случае имя сервера СУБД «1s-on-pg-1»):
Если доступ отсутствует – то мы увидим нечто подобное:
Подключение к 333.33.33.xx…Не удалось открыть подключение к этому узлу, на порт 5432: Сбой подключения |
К причинам отсутствия доступа по данному порту можно отнести:
- Блокировка брадмауэром или другими подобными программами;
- Отсутствие доступа на уровне сети.
2.1. Проверим статус файерволла.
systemctl status firewalld |
Если файерволл работает и блокирует порт 5432, то.
Отключим firewall:
и отключим автозапуск.
systemctl disable firewalld |
Результат должен быть следующим:
systemctl status firewalld |
или
настроим, открыв порт 5432.
iptables —t filter —I INPUT —p tcp —dport 5432 —j ACCEPT service iptables save |
«Породить новый процесс для соединения не удалось: Ресурс временно недоступен» или «ВАЖНО: извините, уже слишком много клиентов»
Пример полного текста ошибки:
Сервер баз данных не обнаружен породить новый процесс для соединения не удалось: Ресурс временно недоступен |
или
Сервер баз данных не обнаружен ВАЖНО: извините, уже слишком много клиентов |
Описание:
В процессе работы выдается ошибка
Решение:
Изменим настройку в файле postgresql.conf
Данное число, должно быть примерно в 1.5 раза больше максимального количества пользователей.
Установим ее:
-
- Перейдем в терминал psql.
-
- Через psql установим следующие параметры командой ALTER SYSTEM SET:
ALTER SYSTEM SET max_connections=500; |
FATAL: database «base» does not exist
Пример полного текста ошибки:
Сервер баз данных не обнаружен FATAL: database «base» does not exist |
Описание:
При запуске базы данных выдается ошибка, которая говорит о том, что данная база не существует.
Решение:
Проверим наименование базы данных и информационной базы. Сделать это можно в консоли администрирования 1С в свойствах базы.
Учтём, что Linux чувствителен к регистру(Base/base/BASE – для него это разные имена баз).
Ошибка создания информационной базы 1C v8.3.3
При создании ИБ в администраторе 1С серверов вылазит ошибка:
Ошибка создания информационной базы:
Ошибка операции администрирования
Ошибка установки или изминения национальных настроек
Порядок сортировки не поддерживается базой данных
Сама ИБ создается, но зайти в нее нельзя так как в ней висят блокировки ИБ и Конфигуратор.
Перезагрузка сервера ничего не дает.
Стандартные региональные настройки locale изменил на ru_RU.UTF8
Архитектура
Центральный сервер:
Ubuntu 13.04 x86
PostgreSQL 9.2.1 Etersoft
Сервер кластеров на Windows Server 2008 x86-64
Ума не приложу где корень всех зол
Ты не берёшься утверждать что производительность pgsql лучше чем db2.
Конечно нет, фирма 1С тоже вот не берётся. Про сферические базы со сферическими пользователями я уже писал. По опыту могу сказать, что серьёзные затыки с производительность обычно связаны с нюансами учётных алгоритмов, и не решаются ни железом, ни настройкой чего-либо. Только изменение/оптимизация алгоритма.
Хорошо, сколько гигабайт твоя база и сколько в ней работает человек?
Ок, есть база на 50Гб с 30+ пользователями. Внезапно, на постгресе чувствует себя лучше, чем на скуле.
А что была какая-то проблема у тех кто догадался прочитать документацию?
Ага, посмотри закрытый форум.
как ты думаешь, что движет людьми, что они заменяют mssql и pgsql на db2?
Отсутствие программистов в штате? Имеющийся db2?
но зная инертность 1с разработчиков, просто в это не верю.
Всем бы такую инертность, за 5 лет полностью переписать платформу, реализовать полноценный клиент-сервер, кроссплатформенность, веб-клиента, декларативное описание интерфейса и ещё обеспечивать обратную совместимость.
ollowtf ★★★
(10.04.13 12:45:55 MSK)
- Ссылка