Ошибка субд database не пригоден для использования postgresql windows

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Типовые ошибки установки сервера 1С:Предприятие и PostgreSQL на платформе Linux.

Типовые ошибки установки сервера 1С:Предприятие и PostgreSQL на платформе Linux.

Связка сервера 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, найдите строку:

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

где 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:\Windows\System32\drivers\etc\hosts на платформе Windows.

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

Читайте также:  Рабочий стол windows 10 обои оригинальные

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

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

где указываете адрес и имя вашего сервера 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 два разных имени.

Ошибка при создании базы 1С с клиента под Windows

Установлен сервер 1С Предприятие 8.2 (релиз 8.2.17.169), СУБД PostgreSQL 9.2.1 на сервере линукс CentOS 6.3 (64bit). В среде СУБД PostgreSQL базы создаются и тестируются. При попытке создать БД с клиента на ПК под Windows, клиент выдает сообщение: «Ошибка при создании информационной базы: Ошибка операции с информационной базой Ошибка СУБД: DATABASE не пригоден для использования » Пожалуйста, подскажите где копать. Спасибо.

а с линуксов создаются нормально?

На сервере с консоли терминала в среде СУБД PostgreSQL базы создаются и тестируются.

Там мильйон причин по которым у вас вылазит такая ошибка. Вы через оснастку Администрирование серверов 1с, бд подключали?

нет. Я просто установил клиент и с него. В меня клиентский ПК под Win 7. Попробую через оснастку. Спасибо.

А постгрес пропатчен для 1С?

Попробовал через оснастку. Но при создании Центрального сервера после задания его имени «Serv1С» или IP выдаэтся следуюющее собщение: Server addr=tcp://Serv1C:1541 descr=192.168.101.10:1541; Ошибка сетевого доступа к серверу (Windows Sockets-10065(0x00002751). Сделана попытка выполнить операцию на сокете для недоступного хоста); lin=545 file=src\DataExchange TcpClientlmpl.cpp

Читайте также:  Что делать если мне пишет система windows защитила ваш компьютер

Приехали. Я так понял, что с сети не видно сервера. Хотя через самбу я его вижу и даже пишу в расшаренную папку. А вот сервера 1С, видимо не видно. И как его открыть для сети?

А как это сделать?

Пройди в оснастку управления и администрирования сервером 1С предприятие. Зайди в свой кластер и обрати внимание на «Рабочие серверы». Удали то что там сейчас и укажи реально существующий сервер. После этого возможно потребуется создать рабочие процессы.

Скачай с офф.сайта производителя патчи, если сам сервер Postgres не с офф. сайта.

«Serv1С» надо прописать в hosts.

Да, но как пройти в оснастку управления и администрирования сервером 1С предприятие, если Центальный сервер не виден: Server addr=tcp://Serv1C:1541 descr=192.168.101.10:1541; Ошибка сетевого доступа к серверу (Windows Sockets-10065(0x00002751). Сделана попытка выполнить операцию на сокете для недоступного хоста); lin=545 file=src\DataExchange TcpClientlmpl.cpp .

Для начала рабочий сервер поправьте в кластере. Я почему-то думаю что postgres у тебя с офф.сайта.

Установи ее на виндовс машине и мышкой нашелкай, или поправь все в файле сервера 1С на Линукс

Инициировал в кластере: su -u postgres -c ‘/usr/pgsql/bin/initdb -D /var/lib/pgsql/data —locale=ru_RU.UTF-8’ Далее сделал: psql -U postgres -c «ALTER USER postgres PASSWORD ‘sayar77ma’»

Вы вообще не в теме, да?

Человек слабо понимает, что делает, и вообще не понимает, что ему говорят. На днях этот же вопрос он уже задавал.

База PostgreSQL и «информационная база» 1С имеют между собой примерно столько же общего, сколько база автомобиля и база отдыха.

Дружище, ты не там ищешь ответы. Тебе придётся сесть и изучить документацию вообще по всему, что ты используешь, научится диагностике и решению проблем.

А когда ты станешь гуру pgsql и 1с, ты поймёшь, какой бесполезнейшей хернёй ты вообще занимаешься. Связка 1C+pgsql не даст тебе никакого прироста в производительности, напротив, такая связка гарантированно хуже в этом плане чем 1с+дефолтный mssql, даже если ты базы утащишь в рамфс и воткнёшь столько мощных процессоров, сколько у тебя хватит фантазии. И дело не в тебе и не в pgsql, дело в 1С.

Но я тебя обрадую, (не в даваясь в историю появления mssql) 1С под linux идеально чувствует себя в связке с db2 от ibm. Эффект «вау» от бухгалтеров гарантирован и отсутствие нервотрёпок в дальнейшим тоже. Да, для использования больше 2Гб памяти она требует покупку лицензии, очень не дешёвой.

Удачи, и смотри первый абзац.
И, да, я считаю идиотизмом менять обкатанное десятилетием, рабочее решение 1с+mssql только ради экономии одной лицензии на винду. Причём на решение, которое заведомо хуже в плане производительности. Впрочем, если у тебя база ИП и куча лишнего времени — ок, твой выбор.

Тебе придётся сесть и изучить документацию вообще по всему

Когда тебе дают ссылку на коротенький ман по включению отладочных сообщений сервера, достаточно умения читать.

Связка 1C+pgsql не даст тебе никакого прироста в производительности, напротив, такая связка гарантированно хуже в этом плане чем 1с+дефолтный mssql

Заведомо хуже постгрес работает в одном случае — если его не настроить, но науки в этом нет, всё разжёвано. Да, в теории на автоматических блокировках в сильно многопользовательском режиме будет хуже скуля, а на практике. а непонятно, и объективной методики оценки не существует, слишком много нюансов в оценке производительности как самой платформы, так и конкретных решений. Некие тесты сферических 10/50/100500 пользователей на сферической базе со сферическими данными мало кому интересны.

1С под linux идеально чувствует себя в связке с db2 от ibm.

Близко к 4.2. Заливку dt по 10 часов уже починили? Администрирование этого чуда даже не рассматриваем.

И, да, я считаю идиотизмом менять обкатанное десятилетием, рабочее решение 1с+mssql только ради экономии одной лицензии на винду. Причём на решение, которое заведомо хуже в плане производительности. Впрочем, если у тебя база ИП и куча лишнего времени — ок, твой выбор.

У меня клиентские базы далеко не ИП, но почему-то прекрасно себя с постгресом чувствуют, и типовые, и собственные. Про кучу лишнего времени мимо. Ну а про «одну лицензию на винду» как-то даже не смешно.

Читайте также:  Back up using windows

Ты не берёшься утверждать что производительность pgsql лучше чем db2, у тебя всё отлично и так. Хорошо, сколько гигабайт твоя база и сколько в ней работает человек?

Надеюсь, что ты пробовал не триальную версию с ограничением в процессорах, памяти и процессах.

Заливку dt по 10 часов уже починили?

А что была какая-то проблема у тех кто догадался прочитать документацию? У меня таких проблем нет.

Администрирование этого чуда даже не рассматриваем

А какие проблемы с администрированием? И она не чудо, она «суровый энтерпрайз» со всеми вытекающими плюсами и минусами.
Давай пойдём по пути простой логики, как ты думаешь, что движет людьми, что они заменяют mssql и pgsql на db2? Ну или не заменяют, а хотя бы пытаются?

Я не агитирую за db2, у меня к ней тоже есть претензии, но они нивилируются удовлетворением от производительности. К сожалению, pgsql мне эту радость не подарил, и мне жаль потраченного на него времени при решения задачи «обеспечить производительность выше mssql». Я работал с базами 15-80Гб с 20-40 активными юзерами, это было лето 2011г.

p.s. допускаю, что за последние почти 2 года произошёл какой-то прорыв в связке с pgsql, но зная инертность 1с разработчиков, просто в это не верю.

Ты не берёшься утверждать что производительность pgsql лучше чем db2.

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

Хорошо, сколько гигабайт твоя база и сколько в ней работает человек?

Ок, есть база на 50Гб с 30+ пользователями. Внезапно, на постгресе чувствует себя лучше, чем на скуле.

А что была какая-то проблема у тех кто догадался прочитать документацию?

Ага, посмотри закрытый форум.

как ты думаешь, что движет людьми, что они заменяют mssql и pgsql на db2?

Отсутствие программистов в штате? Имеющийся db2? 🙂

но зная инертность 1с разработчиков, просто в это не верю.

Всем бы такую инертность, за 5 лет полностью переписать платформу, реализовать полноценный клиент-сервер, кроссплатформенность, веб-клиента, декларативное описание интерфейса и ещё обеспечивать обратную совместимость.

Оцените статью