- Установка 1С 8.2 и 8.3 на PostgreSQL в Windows
- Установка и настройка сервера 1С Предприятие
- Установка PostgreSQL
- Создание базы 1С на Постгри
- Устанавливаем PostgreSQL
- Необходимые компоненты для установки
- Установка сервера приложений 1С
- Установка PostgreSQL в стандартном виде, достаточном для запуска 1С без дополнительных настроек
- Установка Postgre с выбором места хранения кластера
- Создание новой базы данных 1С на сервере с PostgreSQL
- Указание папки хранения базы данных
- Настройки PostgreSQL для работы с 1С:Предприятием. Часть 2
- Общие положения
- Настройки сервера для PostgreSQL
- Обозначения
- Параметры производительности
- Параметры для платформы 1С:Предприятия
- Параметры для PgBadger
- Параметры дополнительных модулей
- plantuner
- online_analyze
Установка 1С 8.2 и 8.3 на PostgreSQL в Windows
PostgreSQL — достаточно современная и популярная СУБД в мире. Её не обошла и фирма 1С, выбрав в качестве одной из поддерживаемых для работы СУБД. Рассмотрим инструкцию по установке PostgreSQL и её первоначальной настройки для 1С 8.3 под ОС Windows.
PostgreSQL — бесплатная программа, это является одним из решающих факторов по выбору данной СУБД.
Для установки сервера нам понадобится два архива — сервера 1С предприятия (х86-64) и дистрибутив PostgreSQL. В нашем примере платформа версии 8.3.4, а СУБД 9.1.2. Их лучше взять из официальных источников 1С — диска или сайта ИТС.
Установка и настройка сервера 1С Предприятие
Первым делом установим сервер 1C предприятия 8.3 (или 8.2). Для этого запустим файл setup.exe из архива. Установка мало чем отличается от обычной установки клиентского приложения, за исключением некоторых особенностей:
1. Не забудьте выбрать в компонентах нужные пункты:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
2. Указать, от чьего имени будет запускаться приложение. Рекомендуется создавать нового пользователя «USR1Cv8». У этого пользователя должны быть установлены нужные права:
После установки части 1С можно приступить к работе с СУБД.
Установка PostgreSQL
Запустите файл postgresql-9.1.2-1.1C(x64).msi, в папке windows выбрать подпапку 64 или 86, в зависимости от разрядности ОС. Можно оставить практически всё по умолчанию. Необходимо обратить внимание на следующие моменты:
1. Так же, как с 1С 8.3, СУБД устанавливается как сервис. Необходимо проверить права у используемого пользователя. Система по умолчанию создаст нового пользователя, от чего имени будет запускать службу:
2. Настройка кластера 1C. Здесь необходимо указать пароль для пользователя:
Для выполнения данного пункта должна быть запущена служба «Вторичный вход в систему» (secondary logon). Если он не запущен, его следует запустить в списке всех сервисов:
Далее — все настройки по умолчанию.
Создание базы 1С на Постгри
Создание базы — очень простой процесс. В списке баз необходимо нажать «Добавить», выбрать пункт «Создание новой информационной базы», указать название базы и выбрать вариант расположения — «На сервере 1С: Предприятия», где заполнить настройки подобно указанным на скриншоте:
Где пароль и имя пользователя те, которые Вы указывали на этапе настройки кластера.
Вот и всё — можно работать с системой.
Другие статьи по 1С:
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Устанавливаем PostgreSQL
Необходимые компоненты для установки
СУБД PostgreSQL распространяется бесплатно и входит в комплект поставки сервера приложений «1С». Сервер приложений «1С:Предприятие 8» поставляется в двух вариантах: 32-разрядный и 64-разрядный. Postgre может работать с обоими.
Итак, имеем на руках дистрибутивы:
- Postgre: postgresql-9_1_2-1_1Cx64.zip, любезно предоставленный фирмой «1С».
- Дистрибутив сервера приложений «1С:Предприятие» для Windows x64, версии 8.2.16.368.
Казалось бы, чего проще — запусти и установится. Легко! Но установка в стандартном режиме даст одно небольшое ограничение: кластер у нас будут лежать в папке «Program Files». Не всем это понравится. Рассмотрим два варианта установки, простой и расширенный.
Статья разбита на 5 разделов:
1) Установка сервера 1C.
2) Установка PostgreSQL в стандартном виде, достаточном для запуска 1С без дополнительных настроек.
3) Установка PostgreSQL с выбором папки хранения кластера.
4) Создание новой информационной базы 1С.
5) Указание папки хранения файлов базы данных на сервере СУБД.
Перед установкой обязательно прочитайте всю статью целиком!
Установка сервера приложений 1С
Запускаем setup.exe из папки с дистрибутивом сервера 1С.
Далее. далее. До выбора способа запуска сервера приложений:
В том случае, если вы установите сервер приложений не как сервис, нужно будет вручную его запускать каждый раз. Требуется такой вариант редко. Устанавливаем как службу (сервис), и решаем, под каким пользователем он будет запускаться. Из соображений безопасности лучше создать отдельного пользователя USR1CV82, а не разрешать сервису работать под полными правами.
После установки сервера приложений система предложит установить драйвер ключа защиты HASP. Соглашаемся:
Если сообщение будет другим, в системе, скорее всего, остались «хвосты» от предыдущих установок драйверов HASP. Удаляйте их все, и пробуйте заново.
Готово, сервер приложений «1С:Предприятие 8» мы установили успешно.
Установка PostgreSQL в стандартном виде, достаточном для запуска 1С без дополнительных настроек
Выбираем русский язык и двигаемся дальше.
Пока все просто, «далее».
Опции установки можно не менять, 1С работать будет. Далее.
Postgre, как и сервер 1С, может сам создать пользователя, под которым будете запускаться служба. Обращаю ваше внимание на то, что если указать учетную запись с правами администратора, то служба корректно работать не будет. Обязательно создавайте нового пользователя.
Следующее окно установки.
Инициализируем кластер. Если у нас сервер баз данных и сервер приложений 1С находятся на разных компьютерах, тогда устанавливаем галочку «Поодерживать подсоединения с любых IP», иначе не трогаем. Обязательно указываем кодировку UTF8. Создаем суперпользователя СУБД. Далее…
Уже почти все. Далее.
Для начальной работы нам ничего дополнительного не нужно, снимаем галочку, завершаем установку.
Результат наших усилий — готовый к работе PostgreSQL. Если нас устраивает, что базы будут лежать в Program Files\PostgreSQL\9.1.2-1.1C\data — заканчиваем на этом, раскрываем базы и наслаждаемся процессом. Однако, чаще все-таки базы данных «лежат» на специально предназначенных для этого дисковых массивах, а не на системном диске. Для того, чтобы настроить расположение данных, перед установкой прочитайте следующий раздел.
Установка Postgre с выбором места хранения кластера
Приступаем к установки Postgre и выполняем все шаги до тех пор, пока нам не предложат инициализировать кластер:
Снимаем галочку «Инициализировать кластер базы данных» и нажимаем «Далее».
Снимаем галочку «По выходу запустить Stack Builder» и завершаем установку.
Дальше начинаем колдовать в командной строке:
1. Необходимо выдать полные права на папку в которую мы установили PostgreSQL, обычно это C:\Program Files\PostgreSQL
2. Из под админских прав запускаем cmd. Если это делаете в win7, то запускаем от Администратора.
3. Создаем папку где будет храниться кластер. Например d:\postgredata.
4. Проводим инициализацию кластера вручную с указанием пути где он будет находиться.
“C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\initdb.exe” -D d:\postgredata —locale=Russian_Russia —encoding=UTF8 -U postgres
5. Удаляем службу PostgreSQL, которая была установлена в ходе установки.
sc delete pgsql-9.1.2-1.1C-x64
Где pgsql-9.1.2-1.1C-x64 – Это название службы. Если не знаете название точно, можно посмотреть свойствах службы “PostgreSQL Database Server…” (Пуск – Панель управления – Администрирование – Службы )
6. Создаем новый сервис с указанием нашего кластера
“C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_ctl” register -N pgsql -U postgresql -P пароль -D d:/postgredata
7. Теперь заходим в службы. Пуск – Панель управления – Администрирование – Службы и стартуем нашу службу.
Создание новой базы данных 1С на сервере с PostgreSQL
Есть несколько вариантов создания базы данных. Можно попробовать создавать базу через pgAdmin3, консоль администрирования серверов 1С. Но тут вы столкнетесь с массой непонятных вопросов и кучей ошибок, ответы на которые будете долго искать. Оставьте это для специалистов. Наша задача получить работоспособную базу с минимальными усилиями. Опишем самый простой путь добиться этого.
Запускаем клиент 1С.
Создаем новую информационную базу. Далее.
Выбираем шаблон новой базы. Далее.
Придумываем название базы, указываем «На сервере 1С:Предприятия», далее.
Кластер серверов 1С:Предприятия – localhost, если мы создаем базу на том же компьютере, где установлен сервер 1С, или имя сервера приложений 1С, если на другом.
Имя информационной базы в кластере — в дальнейшем это название будет указываться при подключении с других компьютеров.
Тип СУБД – Выбираем PostgreSQL.
Сервер баз данных — указываем название сервера PostgreSQL. Если создаем базу на сервере, так же указываем localhost.
Имя базы данных – с таким название будет создана база в PostgreSQL.
Пользователь, пароль – имя пользователя, которого мы указывали как суперпользователя при установке PostgreSQL. Обязательно поднимаем галочку «Создать базу данных в случае ее отсутствия».
Возникает вопрос — а где база будет храниться физически? В папке Base указанного кластера. А если мы не хотим, чтоб она лежала там, где лежат все базы? Тут пока ничего поделать нельзя, просто создаем базу и двигаемся дальше. Далее…
Готово. Правильно установленная система дальше все сделает сама.
Указание папки хранения базы данных
Итак, мы создали базу. В большинстве случаев на этом установка заканчивается. Однако, если баз много, и есть несколько дисковых массивов для разных групп баз, нужно указать, где физически должны располагаться базы. Чтобы сделать это, запускаем pgAdmin3 из Пуск – Программы – PostgreSQL. Подключаемся к нашему серверу.
При первом подключении Postgre попросит пароль для пользователя postgres (которого мы создавали при установке).
Поставим галочку «сохранить пароль», чтобы больше не спрашивал.
Создаем новый TableSpace, это будет та папка, в которой будут храниться наши базы.
Указали место хранения файлов базы. Ок.
Теперь открываем свойства уже созданной ранее базы данных, размещение которой мы хотим изменить.
Меняем свойство Tablespace. После нажатия «ОК» файлы базы данных будут автоматически перемещены. Готово! Надеемся, что статья была вам полезна. Если это так — оставляйте комментарии, делитесь ссылками на эту страницу. Спасибо!
Настройки PostgreSQL для работы с 1С:Предприятием. Часть 2
Общие положения
В документе описывается настройка PostgreSQL версий 9.2-9.4 на максимальную производительность для платформы 1С. Предполагается, что сервер, используемый для PostgreSQL является достаточно производительным и имеет приблизительно:
- 4 — 512 Gb RAM
- 2 — 256 CPU cores
- RAID 0-1 или SSD
Данный документ подразумевает хотя бы поверхностное знакомство с архитектурой PgSQL. Приведенные в документе параметры являются приблизительными и стартовыми для тонкой настройки.
Настройки сервера для PostgreSQL
- Рекомендуется отключать HyperThreading. Для программ типа систем управления базами данных от него скорее вред чем польза.
- Также рекомендуется отключать Energy Saving, поскольку в противном случае могут непредсказуемо вырастать задержки ответов БД.
- Надо запретить своппинг разделяемой памяти SYSV/posix (FreeBSD: kern.ipc.shm_use_phys=1)
Обозначения
- RAM — объем оперативной памяти сервера. Если сервер используется не только для PostgreSQL, то надо уменьшить эту величину на объем занятой памяти.
- NCores — суммарное число ядер на всех CPU сервера
- max_connections — максимальное число коннектов (или сессий) к PgSQL. Задается в конфигурационном файле.
- WAL — Write Ahead Log, опережающий лог действий с таблицами и индексами. Основная задача — целостность и отказоустойчивость базы данных при одновременном росте производительности.
- checkpoint — точка восстановления база данных. Все WAL данные, записанные до checkpoint становятся не нужны.
- X..Y — диапазон значений от X до Y включительно
Параметры производительности
Количество памяти, выделенной PgSQL для совместного кеша страниц. Эта память разделяется между всеми процессами PgSQL.
Максимальное количество страниц для временных таблиц. Т.е. это верхний лимит размера временных таблиц в каждой сессии.
work_mem = RAM/32..64 или 32MB..128MB
Лимит памяти для обработки одного запроса. Эта память индивидуальна для каждой сессии. Теоретически, максимально потребная память равна max_connections * work_mem, на практике такого не встречается потому что большая часть сессий почти всегда висит в ожидании. Это рекомендательное значение используется оптимайзером: он пытается предугадать размер необходимой памяти для запроса, и, если это значение больше work_mem, то указывает экзекьютору сразу создать временную таблицу. work_mem не является в полном смысле лимитом: оптимайзер может и промахнуться, и запрос займёт больше памяти, возможно в разы. Это значение можно уменьшать, следя за количеством создаваемых временных файлов:
Лимит памяти для обслуживающих задач, например вакуум, автовакуум или создания индексов.
Оценка размера кеша файловой системы. Увеличение параметра увеличивает склонность системы выбирать IndexScan планы. И это хорошо.
Оценочное значение одновременных запросов к дисковой системе, которые она может обслужить единовременно. Для одиночного диска = 1, для RAID — 2 или больше.
Стоимость чтения рандомной страницы (по-умолчанию 4). Чем меньше seek time дисковой системы тем меньше (но > 1.0) должен быть этот параметр. Излишне большое значение параметра увеличивает склонность PgSQL к выбору планов с сканированием всей таблицы (PgSQL считает, что дешевле последовательно читать всю таблицу, чем рандомно индекс). И это плохо.
Включение автовакуума. Не выключайте его!
Количество процессов автовакуума. Общее правило — чем больше write-запросов, тем больше процессов. На read-only базе данных достаточно одного процесса.
Время сна процесса автовакуума. Слишком большая величина будет приводить к тому, что таблицы не будут успевать вакуумиться и, как следствие, вырастет bloat и размер таблиц и индексов. Малая величина приведет к бесполезному нагреванию.
Время сна между циклами записи на диск фонового процесса записи. Данный процесс ответственен за синхронизацию страниц, расположенных в shared_buffers с диском. Слишком большое значение этого параметра приведет к возрастанию нагрузки на checkpoint процесс и процессы, обслуживающие сессии (backend). Малое значение приведет к полной загрузке одного из ядер.
Параметры, управляющие интенсивностью записи фонового процесса записи. За один цикл bgwriter записывает не больше, чем было записано в прошлый цикл, умноженное на bgwriter_lru_multiplier, но не больше чемbgwriter_lru_maxpages.
Выключение синхронизации с диском в момент коммита. Создает риск потери последних нескольких транзакций (в течении 0.5-1 секунды), но гарантирует целостность базы данных, в цепочке коммитов гарантированно отсутствуют пропуски. Но значительно увеличивает производительность.
Максимальное количество сегментов WAL между checkpoint. Слишком частые checkpoint приводят к значительной нагрузке на дисковую подсистему по записи. Каждый сегмент имеет размер 16MB.
Степень «размазывания» checkpoint’a. Скорость записи во время checkpoint’а регулируется так, что бы время checkpoint’а было равно времени, прошедшему с прошлого, умноженному на checkpoint_completion_target.
Минимальное и максимальный объем WAL файлов. Аналогично checkpoint_segments.
Выключение шифрования. Для защищенных ЦОД-ов шифрование бессмысленно, но приводит к увеличению загрузки CPU.
Выключение параметра приводит к росту производительности, но появляется значительный риск потери всех данных при внезапном выключении питания. Внимание: если RAID имеет кеш и находиться в режиме write-back, проверьте наличие и функциональность батарейки кеша RAID контроллера! Иначе данные записанные в кеш RAID могут быть потеряны при выключении питания, и, как следствие, PgSQL не гарантирует целостность данных.
Групповой коммит нескольких транзакций. Имеет смысл включать, если темп транзакций превосходит 1000 TPS. Иначе эффекта не имеет.
Дисковое пространство для временных таблиц/индексов. Помещение временных таблиц/индексов на отдельные диски может увеличить производительность. Предварительно надо создать tablespace командой CREATE TABLESPACE. Если характеристики дисков отличаются от основных дисков, то следует в команде указать соответствующий random_page_cost. См. статью.
Отключение контроля разрешения уровня записи.
Максимальное количество открытых файлов на один процесс PostreSQL. Один файл это как минимум либо индекс либо таблица, но таблица/может состоять из нескольких файлов. Если PostgreSQL упирается в этот лимит, он начинает открывать/закрывать файлы, что может сказываться на производительности. Диагностировать проблему под Linux можно с помощью команды lsof.
Параметры для платформы 1С:Предприятия
Разрешить использовать символ \ для экранирования.
Не выдавать предупреждение о использовании символа \ для экранирования.
Максимальное число блокировок индексов/таблиц в одной транзакции.
Количество одновременных коннектов/сессий.
Параметры для PgBadger
При большой нагрузке может влиять на производительность по причине большого потока записи на диск. Лучше вынести на отдельный шпиндель.
Примечание. Здесь пока никак не рассматриваются вопросы ротации логов и использования самого PgBadger’a.
Параметры дополнительных модулей
plantuner
Исправляет чрезмерную пессимистичность оптимизатора посгтреса на пустых, недавно созданных таблицах.
online_analyze
Автоматически анализировать временные таблицы при их изменении. Фоновый analyze может заметно отставать, и, как результат, планер ошибается.
Отключение излишней болтливости автоматического analyze.