Опыт обслуживания базы 1С в PostgreSQL.

04.02.12

База данных - Инструменты администратора БД

...Время шло. Размер системного каталога PostgreSQL с базой 1C достиг размера 35Gb. Размер dt-файла выгрузки базы 1С стал где-то около 1.2Gb, а развернутая база на его основе 16Gb. И как-то пришло время придумать что-то еще для обеспечения производительной работы пользователей в 1С...

Скачать файлы

Наименование Файл Версия Размер
vacuum.sh и reindex.sh
.7z 0,74Kb
196
.7z 0,74Kb 196 Скачать

Знакомство с СУБД PostgreSQL было определено выходом версии платформы «1С:Предприятие 8.1», в которой была реализована поддержка СУБД PostgreSQL. Но все встречи с PostgreSQL проходили на резервном сервере (с ОС Linux), где методом тестового использования решался вопрос об использовании PostgreSQL в качестве СУБД для рабочей базы 1С. В это время на основном сервере (с ОС Linux) база 1С работала в файл-серверном режиме.

До поры до времени шел процесс перехода со старой системы на 1С. Ну это понятно — нормативно справочная информация была перенесена заранее, а в это время переносились текущие остатки, ну и так далее. Количество пользователей (менее 10) и размер файла базы 1С (менее 3Gb) позволяли работать в файл-серверном режиме.

Шло время. Пользователи по мере внедрения переводились из старой системы в 1С. Количество пользователей росло. Размер файла базы данных тоже увеличивался в размере.

Настало время подключать к базе 1С удаленных пользователей в терминальном режиме (FreeNX). Количество лицензий опять пришлось увеличить. Хорошо, что получилось поменять один ключ на ключ с большим количеством пользовательских лицензий и количество компьютеров для менеджера лицензий не увеличилось.

И тут произошло самое скучное — размер базы данных 1С в PostgreSQL вырос до неприличных размеров.

Все вместе - количество одновременно работающих в 1С пользователей более 10 и размер файла базы данных 1С более 4Gb, стало очень негативно сказываться на производительности работы пользователей в 1С.

Настало время серьезного знакомства с возможностью размещения базы 1С в СУБД PostgreSQL. Пользуясь знакомством с СУБД PostgreSQL, переезд на SQL-версию размещения данных 1С прошел быстро и без жертв (сервер с ОС Linux).

Время шло. Размер системного каталога PostgreSQL с базой 1C достиг размера 35Gb. Размер dt-файла выгрузки базы 1С стал где-то около 1.2Gb, а развернутая база на его основе 16Gb. И как-то пришло время придумать что-то еще для обеспечения производительной работы пользователей в 1С. Пользуясь документацией PostgreSQL, которая идет в комплекте с СУБД, оформилось две команды по обслуживанию базы «baza1c_81» в PostgreSQL. Эти команды выполняют сбор мусора, выполнение сбора статистики о базе данных для работы планировщика запросов, переиндексацию :

VACUUM FULL VERBOSE ANALYZE;

REINDEX DATABASE baza1c_81 FORCE;

(Хотя с FULL в первой команде лучше для себя определиться еще раз самостоятельно, http://wiki.PostgreSQL.org/wiki/VACUUM_FULL и в документации PostgreSQL см. VACUUM).

Далее дело техники. Определили время запуска. В воскресенье с 17-00 до понедельника 6-00 в базе никого не бывает. В cron отключаем ночное архивирование базы в это время (а архивировать лучше как средствами 1С, так и pgdump). Помним о том, что в файле cron'а должна быть последняя пустая строка. Если файл cron'а редактировали во внешнем редакторе, тогда делаем crontab -e и в нем - :w, :q.

Первым шагом в cron добавляем строку создание архива :

0 17 * * 0 /var/lib/pgsql/backups/pgdump.sh, где 0-мин, 17-час, *-день, *-месяц, 0-(день недели воскресенье);

Вторым шагом добавляем в cron строку выполнения первой команды :

0 18 * * 0 /var/lib/pgsql/backups/vacuum.sh, учтем 30 минут на работу pgdump.sh посозданию архива;

 

Команда vacuum.sh по факту работает от 6 до 8 часов.

Третьим шагом добавляем в cron строку выполнения второй команды :

30 3 * * 1 /var/lib/pgsql/backups/reindex.sh, учтем время на работу vacuum.sh;

 

 

Команда reindex.sh выполняется не более 1 часа.

И в каждый понедельник база готова к эффективной работе.

А время идет. Подумываем об использовании SSD дисков для размещения WAL. И знакомство с вариантом работы в 64-bit системе состоялось.

 

PS Если начинаете править postgresql.conf, тогда после изменений убедитесь в успешном старте PostgreSQL c новым postgresql.conf. А также необходимо убедиться в успешном создании архивной копии, лучше всего восстановив базу на резервном сервере из архивной копии.

PS Расчет себестоимости.... иногда этот расчет начинает очень сильно задумываться о чем-то своем. Так вот, в этом случае можно попробовать отключить в конфигурационном файле PostgreSQL autovacuum, выполнить стоп-старт "Менеджер лицензий-Сервер предприятия-PostgreSQL". После расчета себестоимости в конфигурационном файле вернуть все назад, стоп-старт. Оценить время расчета и сделать вывод о необходимости  повтора  этих действий.

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

По странному стечению обстоятельств, именно вечером в пятницу, меньше всего желающих поплавать в бассейне. И не воспользоваться этим нельзя, что мы и делаем. Но вот с удаленным доступом из бассейна пока дела обстоят плохо. Наверно надо менять его. Бассейн. Но это наверно в следующем сезоне.А пока для спокойного выполнения пятничных планов делаем маленькое дополнение в cron, а именнодобавляем следующую строку :############
# Restore hasplm#
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /var/lib/pgsql/backups/hasp.restore
В hasp.restore запишем :#!/bin/sh
FLAG=$(ps -A | grep hasplm | wc -l)
CUR_DATE=20$(date +%y).$(date +%m).$(date +%d)-$(date +%H)$(date +%M)$(date +%S):
if [ $FLAG -eq 2 ]
then
    echo "$CUR_DATE hasplm running" >> /var/log/hasp.restore.log     
else
    #echo "false"
    hasplm &
    echo "$CUR_DATE RESTORE hasplm" >> /var/log/hasp.restore.log    
fi
И после выполнения crontab -e (читай про него выше), с необходимым интервалом будет происходить проверка работы менеджера лицензий и запуск его в случае необходимости.Еще добавим в каталоге logrotate.d в файле syslog два файла для logrotate(автоматическая архивация log-файлов, см).../var/mail/root /var/log/hasp.restore.log ...А потом в свободное время смотрим tcpdump(или еще как то), вычисляем с какого адреса забивают наш менеджер лицензий. А там тоже может стоять менеджер лицензий, и даже совсем не 1С. Если находим такой адрес, добавляем правило в iptables не оставляя ему шансов присылать нам эти приветы.

Несколько замечаний про 2011 год.

Поставили диски
SSD для WAL и Log PostgreSQL. Intel X25 - 2 шт. А вот что это дало, сказать сложно, прошлые замеры были при одной базе, а сейчас в PostgreSQL их уже несколько. Да и база подросла. Вот отключить бы SSD и посмотреть, но на рабочем сервере это не получится.

Проблема : После обновления УПП с 1.2.х на 1.3.х, не работает создание резервной копии средствами СУБД PostgreSQL, а именно работа pg_dump завершаеся с ошибкой - «pg_dump: Команда была: COPY public.config (filename, creation, modified, attributes, datasize, binarydata) TO stdout;».
Решение этой проблемы приведено в статье //infostart.ru/public/18771/.
Для выполнения запросов иcпользуем PgAdminIII
1) "SELECT FROM Config WHERE DataSize > 125829120” - увидеть, что такая запись есть;
2) "DELETE FROM Config WHERE DataSize > 125829120” ;

Но при следующем обновлении конфигурации возможно будут проблемы, которые можно решить прочитав //infostart.ru/public/68793/.

Проблема : При формировании некоторых отчетов 1С вылетает с сообщением о выполняемых недопустимых действиях. Решаем эту проблему обновлением видеодрайвера, или в его свойствах отключаем аппаратное ускорение.

Проблема : Как только из 60 остается свободными 1-3 лицензии, тогда 1С у пользователя начинает сильно тормозить в своей работе. Решения пока не нашли.

 

 

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2973    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3524    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177737    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27375    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61314    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11746    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    31110    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10983    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DitriX 2091 09.08.10 05:05 Сейчас в теме
тоже встал вопрос о том на чем ставить 1с, постгри на линуксе или мускул на Р2...
Не сравнивали ли Вы случайно вот таких 2 варианта, а то интересно, где же шустрее и проще...
3. sashacd 75 09.08.10 09:08 Сейчас в теме
(1) Производительность одной и той же базы(текущей) в PostgreSQL и MS SQL к сожалению не сравнивали. Второго аналогичного по ТТХ сервера нет, на рабочем ставить MS SQL не судьба. А на обычном компе не интересно. Все сравнения были в начале, и в общем то на маленьких по объему базах.
2. MaratL 38 09.08.10 08:24 Сейчас в теме
2DitriX 1C на мускуле не живёт.
Или я не так понял?
4. Vladimir7799 09.08.10 09:32 Сейчас в теме
Год назад делал сравнение производительности , пробывал sql 2000, 2005 and postgres под windows. Под виндой 1. место - 2000, второе 2005, третье postgres. При условии установки по умолчанию, без тонкой настройки. После настройки postgres повышает производительность, но проигрывает мелкософтовским продуктам. Под linux с минимальной насторойкой postgres показывает производительность почти как 2000 под виндой. Сейчас у меня 2 сервака крутятся под linux - надежно и без гемора. При активном использовании базы претензий к работе вообще нет. Серваки перегружаются где то раз в пол года, по причине что в конторе просто выключают электроэнергию для профработ на выходные. По поводу статьи - вакуум можно делать и почаще :D Можно использовать pgAdmin.
7. sashacd 75 09.08.10 13:32 Сейчас в теме
(4) Чаще vacuum не делаем(там есть FULL) - и надеемся на autovacuum
5. Vladimir7799 09.08.10 09:35 Сейчас в теме
Да забыл .. тест производил под windows server 2003 r2, Linux openSuse 11.1 . железо использовалось для тестов одно и тоже, на чистую операционку.
6. fastwriter 6 09.08.10 09:56 Сейчас в теме
Очень нужная статья - по работе 1ц с Linux и Postgree материалов пока недостаточно.
8. Vladimir7799 09.08.10 14:02 Сейчас в теме
Зря надеетесь на autovacuum. хотя full достаточно раз в одну- две недели делать, зависит от нагружености базы. Кстати какой из linux -ов используете?
9. sashacd 75 09.08.10 16:16 Сейчас в теме
(8) На рабочем сервере сейчас стоит MOPS 32bit, ядро пересобрали(памяти много, поэтому добавляли PAE). Для различных эксперементов успешно устанавливалось еще на SLES 64bit, Slackware.
10. iceflash 4 11.08.10 15:34 Сейчас в теме
опыт хороший, но я бы хотел узнать как у вас так быстро выросла БД, или если это не БД, а всего лишь каталог Data где лежит "много" всего. Сам использую Postgres и доволен, сама бд очень нарвиться, не только в качестве субд для 1С (1с, кстати очень извратились из-за лени видимо, со своим патчем по поводу блокировок, чем самым, производительность данной субд значительно падает и при хорошей производительности будет равна ms sql)
интересен так же конфиг, разделы автовакуума, анализа, и распределения памяти. На моеми проекте работает 28-30 пользователей, база 11 Гб.
Опять же бесит еще одна ошибка 1С (ух, как же я люблю их называть 1ц) это проблемы со штатным бэкапом когда конфигурация стоит на поддержке.
11. sashacd 75 11.08.10 18:13 Сейчас в теме
(10) Путь базы - 01.01.2008 старт в файл сервере - 01.08.2008 старт в PostgreSQL - август 2010 работаем дальше в PostgreSQL. Предприятие у нас производственное - много документов отчет производства за смену(наработка и выпуск).
Одновременно работает в базе наверно пользователей 35(плюс минус), вообще ключей 50 и все были заняты.
Конфиг, разделы автовакуума, анализа, и распределения памяти, а также все эксперементы это тема отдельной статьи....
Штатный бекап делается ночью в wine(dt). Еще pgdump запускается ночью и в обед.
12. iceflash 4 11.08.10 18:30 Сейчас в теме
Просто меня на данный момент интересуют пара вопросов, по тюнингу постгрес в этих направлениях потому и было бы очень интересно сравнить/посмотреть. А зачем делает еще выгрузку информационной базы штатными средствами 1С? (были случаи когда из бэкапа постгреса не смогли восстановить?)
13. sashacd 75 11.08.10 19:02 Сейчас в теме
(12) Зачем штатными? - это когда с утра хотят пользователи поэксперементировать со вчерашними данными - и побыстрее хотят. Или дома посмотреть базу.(Если не корректные параметры postgresql.conf, то не сделает архив, логи конечно будут, но шанс пролететь есть)

А postgresql.conf можем и обменяться + sysctl + config ядра

14. iceflash 4 11.08.10 19:08 Сейчас в теме
Ага, надо будет обменяться=) Кстати пару раз возникала проблема с присвоением нового номера для документа, штатными средствами, не встречались с таким, было именно несколько раз за пол год. т.е. при вызове метода установки нового номера возвращается значение существующего уже документа (это как то связанно с обработкой самой БД) но данная проблема, как пришла так и ушла без изменения кода=)
15. sashacd 75 11.08.10 19:14 Сейчас в теме
(14) Нет, такого не было. Вот только на последнем сервере предприятия установили только 4 рабочих процесса, на предыдущем релизе делали 6. Но с 6 стало как то тормозить.
16. iceflash 4 11.08.10 19:18 Сейчас в теме
у нас на том объекте 2 процесса на сервере 1ц. А баз 3 :
2 типовых бух-ии (6-10 пользователей в каждо)
1 разработка отдельная (28-30 пользователей)
17. sashacd 75 11.08.10 19:22 Сейчас в теме
да кстати тоже не стали мудрить - все на один сервак взвели - pgsql и сервер предприятия, freenx и базы в файл-серверном исполнении. Получилось как раз до кризиса сервак купили - пока тянет. А кстати у вас в postgresql несколько баз 1с?
18. iceflash 4 11.08.10 19:33 Сейчас в теме
там сейчас такая структура один сервак(8Гб процессор мощный не помню какой точно, но общая загрузка 10-13% рэйд массив 5) на нем 1ц сервер, и постгрес для конфы разработанной на 11 Гб (28-30 пользователей)
Другой комп, просто средний с сата дисками на нем постгрес для 2-х баз бухгалтерии и еще там 2 зупа файловых, работает там в этих базах не много народу, до 10 пользователей.
Но в 1-ой базе крутится служебный пользователь которы, из бух-ии тянет данные по 60,62 счету, и все документы для акта сверки (Счет, Реализация, Поступление услуг, банковские выписки)
19. zhleonid8 29.09.11 13:36 Сейчас в теме
проверено, терминал ставь , рейд массив,
20. imshev 18.10.11 14:05 Сейчас в теме
а в чем причина таково нереального размера вы не разбирались?
21. йцукенн 20.12.11 10:43 Сейчас в теме
Под Win 2008R2, медленно работал 1с в связке с PostgresqL.
Перенесли Postgresql на cервер Linux, поставили автовакуум, последний релиз сервера 1с и сборки Postgresql для 1с. В настоящий момент быстродействие увеличилось примерно в полтора раза. Тестировали на проведении документов за весь период ведения учета.
22. йцукенн 20.12.11 10:46 Сейчас в теме
Посмотрите логи БД, почистите их по необходимости.
23. sashacd 75 25.12.11 19:19 Сейчас в теме
Проблема : После обновления УПП с 1.2.х на 1.3.х, не работает создание резервной копии средствами СУБД PostgreSQL, а именно работа pg_dump завершаеся с ошибкой - «pg_dump: Команда была: COPY public.config (filename, creation, modified, attributes, datasize, binarydata) TO stdout;».


Решение этой проблемы приведено в статье http://infostart.ru/public/18771/

Для выполнения запросов иcпользуем PgAdminIII
1) “SELECT FROM Config WHERE DataSize > 125829120” - увидеть, что такая запись есть;
2) “DELETE FROM Config WHERE DataSize > 125829120” ;
24. ГМВ 75 04.02.12 20:07 Сейчас в теме
"Проблема : Как только из 60 остается свободными 1-3 лицензии, тогда 1С у пользователя начинает сильно тормозить в своей работе. Решения пока не нашли."
По моим наблюдениям, проблема существует и при большем количестве свободных лицензий, если поиск ключей происходит в режиме BROADCAST = Enable.
25. Shaka13 16.10.14 03:03 Сейчас в теме
У меня на останавливается и не перезапускается демон pgsql кто-нибудь сталкивался с таким?
Оставьте свое сообщение