Связка сервера 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С на Linux у пользователей могут возникнуть проблемы при попытке подключиться к нему. Данные проблемы могут быть связаны как с настройками на сервер или клиентском компьютере, так и с настройками сетевой инфраструктуры. Рассмотри наиболее часто встречающиеся ошибки и методику поиска и исправления причин этих ошибок.
Оглавление:
1. Этот хост неизвестен / No such host is known
2. Ошибки соединения с сервером 1С/ рабочим процессом 1С
2.1. Попытка установить соединение была безуспешной.
2.2. Сервер 1С:Предприятия не обнаружен
2.3. Ошибка установки соединения
2.4. Методика устранения ошибок соединения с сервером 1С
Этот хост неизвестен / No such host is known
Пример полного текста ошибки:
Ошибки соединения с сервером 1С:Предприятия 8.3:
server_addr=tcp://sony2 descr=11001(0x00002AF9):
Этот хост неизвестен
line=1068 file=srcDataExchangeCommon.cpp
Ошибка при выполнении операции с информационной базой.
server_addr=tcp://1s-on-1c-1 descr=11001(0x00002AF9): No such host is known line=1068 file=srcDataExchangeCommon.cpp
Описание:
Ошибка может возникать как при работе с консолью администрирования 1С:Предприятия(добавление сервера, создание базы…), так и при запуске информационной базы.
Такая ошибка характерна, когда компьютер пользователя не обладает информацией о соответствии ip-адреса dns-имени сервера.
Решение:
Настроить DNS-адресацию или прописать адреса в файл hosts.
О том, как и почему это надо сделать — можно почитать тут Настройка DNS-адресации на сервере 1С.
В случае, если кажется, что все имена прописаны верно, необходимо:
1. Проверить еще раз. Скорее всего, где-то ошибка.
2. Сравнить, как хост прописан на самом сервере и на компьютере пользователя. Имена должны быть одинаковыми.
Часто ошибка связана с тем, указан в имени доменный суфикс или нет.
3. Проверить в консоли администрирования 1С: Предприятия — как у вас собран кластер 1С:Предприятия.
- Возможно, у вас в консоли сервера отображаются не по DNS-имени, а по IP-адресам.
- Возможно, клиент не сможет сопоставить IP-адрес DNS-имя(в случае, если сервер 1С находится в другой сети, и вы подключаетесь к кластеру напрямую).
Не правильно:
Правильно:
Необходимо удалить кластер. И собрать из консоли администрирования его заново.
Ошибки соединения с сервером 1С / рабочим процессом 1С
Описанные далее ошибки могут возникать как при работе в консоле администрирования 1С, так и при запуске информационной базы.
Методика по решению всех приведенных далее ошибок — описана в конце этого подраздела ошибок соединения с сервером / рабочим процессом.
Попытка установить соединение была безуспешной
Пример полного текста ошибки:
Ошибка соединения с сервером 1С:Предприятия 8.3:
server_addr=tcp://son1c:1541 descr=192.168.0.101:1541:
Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
Ошибка соединения сервером – клиент не может подключиться к агенту сервера 1С, процессу ragent. Порт в сообщении 1541(по умолчанию):
Ошибка соединения рабочим процессом – клиент не может подключиться к рабочему процессу сервера rphost. Порт в сообщении может быть из диапазона 1560-1591(по умолчанию).
Ошибка соединения сервером – клиент не может подключиться к менеджеру сервера 1С, процессу rmgr. Порт в сообщении 1540(по умолчанию).
Сервер 1С:Предпрятия не обнаружен
Пример полного текста ошибки:
Сервер 1С:Предприятия не обнаружен
Не запущен ни один рабочий процесс. Соединение с информационной базой невозможно.
Такое сообщение можно увидеть если на сервере 1С не запущен ни один рабочий процесс rphost.
Ошибка установки соединения
Пример полного текста ошибки:
Ошибка установки соединения
Выполняется ожидание возможности запуска.
При появлении возможности, запуск будет выполнен автоматически.
Методика устранения ошибок соединения с сервером 1С
В данном случае необходимо понимать, что:
- Либо процессов нет;
- Либо не удается «увидеть» процессы в связи с отсутствием доступа;
- Либо происходит обращение по другому адресу.
1. Сначала проверим есть ли на сервере 1С в запущенные рабочие процессы rphost.
Или
Видим, что у нас rphost слушает порт 1560
Если не все процессы запущены смотрим как исправить тут Ошибки сервера 1С на Linux.
2. Если процессы запущены — проверим доступность рабочих процессов по портам, которые они «слушают».
С компьютера пользователя необходимо выполнить команду:
telnet server_address 1560 |
и другие порты, на которых есть rphost.
К причинам отсутствия доступа по данному порту можно отнести:
- Блокировка брадмауэром или другими подобными программами;
- Отсутствие доступа на уровне сети;
- Работающий selinux.
3. Проверяем dns-адресацию.
В частности:
-
-
- hosts на компьютере пользователя
-
(в Windows: C:WindowsSystem32driversetchosts);
-
-
- hosts на сервере 1С (в ОС Linux: /etc/hosts);
- реестр кластера 1С
-
(по умолчанию в ОС Linux: /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst.).
Ошибка может быть связана с несоответствием указания имени сервера
-
-
- у пользователя
- в реестре кластера серверов 1С:Предприятия.
-
Например, с различиями в указании имени сервера с/без домена.
1С Ошибка при выполнении операции с информационной базой
Дано: кластер 1С 8.3
Проблема: ошибки при запуске базы (пользователи не могут запустить 1С Предприятия после выбора базы), не важно бухгалтерия это или зарплата, или другая конфигурация.
Ошибка у пользователя при запуске базы в режиме «1С:Предприятие» 8.3:
Ошибка при выполнении операции с информационной базой
Или такая ошибка:
Ошибка установки соединения. Выполняется ожидание возможности запуска. При появлении возможности, запуск будет выполнен автоматически.
Ошибка при запуске кластера 1С:
Ошибка соединения с сервером 1С: Предприятия 8.3:
server_addr = tcp://<название сервера + порт>
descr = <IP port>: No connection could bе made because the target machine actively refused it.
line =1040
file = srcDataExchangeTcpClientImpl.cpp
Один из вариантов решения:
Проверьте, запущен ли «Агента сервера 1С:Предприятие» в списке служб (Services — «Агент сервера 1С:Предприятие 8.3»). Должно быть состояние Running.
Если пусто, то нужно запустить службу — Старт (Start).
Если служба уже запущена, то рекомендуется сделать перезапуск — Restart.
Также можно проверить в кластере нет ли запрета на запуск базы в ее свойствах (например, установленного при обновлении базы):
Если при запуске свойств базы кластер попросит логин и пароль в окне «Администратор информационной базы», то вводим логин-пароль администратора конфигурации (т.е. тот, который вводим при запуске конфигуратора конкретной базы), а не администратора кластера.
В свойствах базы проверяем блок «Блокировка начала сеансов включена» — поля должны быть пусты, как на рисунке ниже:
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
|
|||
1IIh
27.10.14 — 19:19 |
Здравствуйте! Сервер работает под win2008, в локалке с машин под виндой клиент замечательно работает с настройками Srvr=»192.168.44.51″;Ref=»base»; Поставил клиент под linux (Ubuntu). При попытке подключиться к серверу с аналогичными настройками выдаёт:
Ошибка при выполнении операции с информационной базой Нигде подобного найти не смог. В чём может быть проблема? |
||
Vladal
1 — 27.10.14 — 19:22 |
а из линя не по smb доступ к серверу? |
||
Vladal
2 — 27.10.14 — 19:28 |
база уже существует и прописана на сервере 1С? |
||
Стальная Крыса
3 — 27.10.14 — 20:58 |
с клиента машина с сервером 1С должна быть доступна по DNS-имени. |
||
Vladal
4 — 28.10.14 — 07:39 |
+(3) Значит в hosts на машине с сервером 1С надо добавить строк с ее IP и именем. Например: 192.168.0.100 server-100 |
||
1IIh 5 — 28.10.14 — 15:35 |
(3) (4) Спасибо. Всё так. |
TurboConf — расширение возможностей Конфигуратора 1С
Ошибка при выполнении операции с информационной базой 1С 8.3
Причины возникновения ошибки
Если копирование баз в архив выполнялось давно или вообще не выполнялось, ситуация становится близка к катастрофе. Приходится восстанавливать хозяйственные операции за большой период, а это всегда несет с собой риск появления новых ошибок.
Причины, вызывающие эту ошибку, могут быть совершенно разными:
- несовместимая версия файла базы данных;
- файл базы данных поврежден;
- ошибка соединения с сервером 1С: Предприятия 8.3;
- переустановка баз на сервере;
- проблема с портами на сервере
- и т.д.
Ошибки такого уровня очень серьезны. А в случае возникновения их на сервере — однозначно требуют обращения к специалистам. И если организации, устанавливающие клиент-серверный вариант, рассчитанный на большое число пользователей, обычно имеют в штате системных администраторов и программистов, отвечающих за сервер, то пользователи, работающие на обычных файловых вариантах 1С, должны уметь самостоятельно разобраться с этой проблемой и решить ее.
Как правило, ошибка при выполнении операции с информационной базой в файловом режиме работы означает, что произошло повреждение файла базы данных. Причин может быть множество:
- сетевые проблемы при записи файла;
- неудачное копирование базы;
- отключение электропитания в момент работы программы;
- и т.д.
В данной статье мы рассмотрим возникновение этой ошибки для пользователей файловых 1С и дадим два инструмента решения проблемы:
- Тестирование и исправление;
- использование утилиты chdbfl.exe.
Тестирование и исправление
Пошаговая инструкция Тестирования и исправления базы.
Шаг 1. Запустите 1С в режиме Конфигуратор.
Шаг 2. В конфигурации выберите пункт меню Администрирование — Тестирование и исправление.
Перед открытием формы тестирования программа напомнит о необходимости сделать копию базы перед проверкой. Если копия сделана — нажимаете на кнопку Продолжить.
Шаг 3. Настройка тестирования.
Форма тестирования предлагает несколько вариантов проверок и режимов, не зависящих друг от друга. Выполнить нужно все проверки в полном объеме, поэтому установите флажки напротив тех вариантов, где они не поставлены по умолчанию.
Форма тестирования и исправления информационной базы должна иметь следующий вид.
Рассмотрим основные группы переключателей проверки.
Группа переключателей проверки и режимы
Позволяет сделать выбор между режимом, производящим только проверку информационной базы и режимом, производящим коррекцию обнаруженных ошибок.
Проверка информационной базы:
- проверка логической целостности информационной базы;
- проверка ссылочной целостности информационной базы.
Коррекция обнаруженных ошибок:
- реиндексация таблиц информационной базы;
- пересчет итогов;
- сжатие таблиц информационной базы;
- реструктуризация таблиц информационной базы.
Группа переключателей тестирования
Варианты тестирования:
- Тестирование и исправление;
- Только тестирование.
Переключатель Тестирование и исправление выставлен по умолчанию, т. е. программа 1С будет не только искать ошибки, но и пытаться их исправить по заложенному разработчиками алгоритму.
При установке переключателя в положение Только тестирование будет произведен поиск ошибок без исправления. Просмотрев характер ошибок, пользователь сам примет решение: будет ли передавать ситуацию на автоматическое программное исправление или нет.
Группа при наличии ссылок на несуществующие объекты
Эта группа определяет, должна ли программа при обнаружении ссылок на несуществующие объекты:
- создавать объекты;
- удалять ссылки;
- не изменять.
По умолчанию установлен самый безопасный вариант Не изменять. При использовании первых двух вариантов в сложных случаях возможны искажения информации в базах 1С.
Группа переключателей при частичной потере данных объектов
Эта группа задает поведение программы, если было обнаружено, что данные объектов были частично потеряны, но оставшихся данных достаточно для того, чтобы восстановить потерянные. Пользователь самостоятельно выбирает вариант:
- создавать объекты;
- удалять объект;
- не изменять.
По умолчанию установлен самый безопасный вариант Не изменять. При использовании первых двух вариантов в сложных случаях возможны искажения информации в базах 1С.
Кнопка выполнить
При нажатии на кнопку Выполнить начинается процесс тестирования и исправления. По окончании проверки программа выдает системное сообщение об успешном окончании тестирования или список возможных проблем.
При просмотре сообщений обращайте внимание на сообщения типа:
Значение должно быть… Сохранено значение…
Если сообщения нарушения целостности в отчете есть, запустите тестирование повторно после исправления, чтобы убедиться, что программа решила проблему: эти сообщения должны уйти.
Утилита CHDBFL.EXE
Утилита включена в Платформу 1С и поставляется отдельно для каждой Платформы 1С.
Пошаговая инструкция работы с утилитой chdbfl.exe.
Определение платформы 1С
Откройте на вашем компьютере папку с Платформой, на которой работает ваша база. Как правило, это последняя установленная вами Платформа 1С, но могут быть случаи, когда запуск происходит с более старых версий специально, поэтому этот момент нужно уточнить. Сделать это можно, например, в конфигурации по справке о программе: меню Справка — О программе.
Место установки Платформы на компьютере зависит от ее разрядности:
- 32-разрядные Платформы 1С устанавливаются в каталог С:Program Files (x86)1cv8
- 64-разрядные Платформы 1С устанавливаются в каталог С:Program Files1cv8
Запуск утилиты CHDBFL.EXE
В выбранной Платформе 1С перейдите в папку bin и запустите утилиту chdbfl.exe.
Настройка проверки базы данных
Для настройки проверки физической целостности необходимо:
- выбрать файл информационной базы, где выходит ошибка;
- установить флажок Исправлять обнаруженные ошибки.
После нажатия на кнопку Выполнить запустится проверка физической целостности файла БД.
При успешном окончании проверки будет выдано соответствующее сообщение о том, что проверка завершилась без обнаружения ошибок или список таблиц, в которых было выполнено исправление.
Если рассмотренные здесь методы не помогли войти в базу данных и при запуске 1С выдается ошибка выполнения операции с информационной базой, то для восстановления целостности информационной базы и исправления ошибок следует обратиться к специалистам 1С.
Заказать консультацию
По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.