0. starik-2005 1427 21.02.16 12:41 Сейчас в теме

Сборка PostgreSQL 9.4.2 из исходников с патчами от 1С

Честно - не нашел нигде описания того, как пропатчить KDE для FreeBSD, поэтому решил ликвидировать данную несправедливость. Ниже по тексту я расскажу не только про то, как собрать Postgres, но и как использовать флаги оптимизации для вашего процессора, чтобы все работало максимально быстро. Ну и немного остановлюсь на конфигурировании и администрировании.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Berckk 24.02.16 11:51 Сейчас в теме
Автору спасибо.
Но чтобы не собирать руками просто оставлю это здесь.

В предлагаемых пакетах используется более новый PostgreSQL 9.4.6. Эта версия СУБД имеет множество улучшений, прежде всего связанных с отказоустойчивостью.
http://www.postgrespro.ru/products/1c_build
teflon; angur; audion; gentle; cleaner_it; oldfornit; JohnyDeath; Nikovit; jaroslav.h; cmd_vasec; +10 Ответить
2. starik-2005 1427 24.02.16 14:53 Сейчас в теме
(1) Berckk, сейчас актуальная версия 9.5, но, как я понял1с еще не накатила туда свои патчи. В ней тоже много улучшений.
3. Danila-Master 90 26.02.16 08:17 Сейчас в теме
Спасибо за статью.
Только вопрос:
В стандартных репозетариях Ubuntu есть тоже Postgres. И при последующих обновлениях операционки, update попытается перетереть Postgres от 1С на Postgres и репозитария.
Знаю, что есть возможность отключить обновление Postgres'а.

Собственно как это сделать?
4. starik-2005 1427 26.02.16 08:19 Сейчас в теме
(3) Danila-Master, когда собираешь руками, то не пытается. Отключить обновления можно так: http://www.linuxrussia.com/2013/10/ubuntu-hold-package.html
7. Danila-Master 90 04.03.16 07:58 Сейчас в теме
5. B2B 255 02.03.16 16:42 Сейчас в теме
"./configure --disable-integer-datetimes"


Начиная с платформы версии 8.3.3 этот параметр не обязателен.
6. starik-2005 1427 02.03.16 18:10 Сейчас в теме
(5) B2B, ну вот и я о том же...
8. osipovigor 09.03.16 17:09 Сейчас в теме
Я извиняюсь, я новечек в этом всём, и дико туплю, но после установки постгри от сюда:
http://www.postgrespro.ru/products/1c_build

у меня 3 каталога
/etc/postgresql
/usr/lib/postgresql
/usr/hare/postgrsql

С каким из них необходимо работать? :)
9. starik-2005 1427 09.03.16 17:21 Сейчас в теме
(8) osipovigor, ну Вы всегда можете выполнить "sudo service postgres status" для отображения, откуда запущен экземпляр постмастера. В etc обычно лежат конфиги. В lib - сам постгрес. В share скорее всего данные или документация. В обычных сборках для Linux данные хранятся в /var/...

В принципе, последние версии платформы умеют работать с непереработанным PostgreSQL, так что можете просто установить постгрес и определить локали.
10. osipovigor 09.03.16 17:49 Сейчас в теме
(9) /usr/lib/postgresql/bin/initdb -D /usr/lib/postgresql/data - ругается на /usr/local/pgsql/bin/initdb - нет такого файла или каталога, но по идее при установке он должен был создаться? или мне нужно его создать?

UPD
Путь немного другой оказался
/usr/lib/postgresql/9.4/bin/initdb
11. starik-2005 1427 09.03.16 17:56 Сейчас в теме
(10) osipovigor, в готовых дистирибах обычно скрипт уже разворачивает кластер и вручную этим заниматься не нужно.
12. osipovigor 10.03.16 10:44 Сейчас в теме
Очередной глупый вопрос... не могу понять как выставить пароль на юзера postgres, в документации пишут
sudo -u postgres psql template1 и потом ALTER USER postgres with encrypted password 'your_password' , но что-то у меня не получается :)
13. starik-2005 1427 10.03.16 10:48 Сейчас в теме
(12) osipovigor, дык вроде в статье все есть. pgsql -U posrgres - зайти в консольную утилит. Вообще там pg_createuser или както так - посмотрите.
14. osipovigor 10.03.16 11:04 Сейчас в теме
(13) т.к. для меня это всё в новинку, меня надо ткнуть в нужный пункт носом как нашкодившего кота... и по возможности разжевать, я понимаю что вроде бы всё должно быть очевидно... но видимо не для меня :) При вводе su postgres он сразу же пароль просит.
UPD
нашёл, под рутом passwd postgres
15. starik-2005 1427 10.03.16 12:32 Сейчас в теме
(14) osipovigor, если набрать sudo su - postgres, то пароль спросят ваш, а не postgres'а.
16. Necessitudo 01.04.16 21:10 Сейчас в теме
Примечание к добавлению локалей - если убунта английская, то русской локали под UTF8 может не быть. Добавляется так -
echo 'ru_RU.UTF-8 UTF-8' >> /var/lib/locales/supported.d/local;

Примечание к скачиванию патча - путь изменился, теперь нужно так -
wget http://downloads.v8.1c.ru/get/Info/AddCompPostgre/9_4_2_1_1C/Patch_SUBD_PostgreSQL.rar

mc просто так rar не откроет, поэтому делаем так -
sudo apt-get install unrar-free
17. starik-2005 1427 01.04.16 21:43 Сейчас в теме
(16) Necessitudo, у меня по этой ссылке сейчас не открылось - 403-я ошибка.
18. Necessitudo 01.04.16 22:49 Сейчас в теме
(17) Хм, а у меня открывается.
Вопрос -

Кстати, стоит особо отметить одну библиотеку, в которой нуждается 1С-овский постгрес - это icu. В серверной убунту 14.04 по умолчанию ставится версия 52 этой библиотеки, но люди говорят, что надо 48-ю, поэтому эти два пакета придется скачать отдельно и установить командой "dpkd -i имя_пакета". Нам нужны пакеты ibicu-dev и libicu48.

Так а как их установить? Я их отдельно скачал
http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu-dev_4.8.1.1-3ubuntu0.6_amd64.deb
http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu48_4.8.1.1-3ubuntu0.6_amd64.deb

parallels@ubuntu:~/Documents/postgres-install/postgresql-9.4-9.4.2$ sudo dpkg -i -R /home/parallels/Documents/postgres-install/postgresql-9.4-9.4.2
(Reading database ... 230244 files and directories currently installed.)
Preparing to unpack .../libicu48_4.8.1.1-3ubuntu0.6_amd64.deb ...
Unpacking libicu48 (4.8.1.1-3ubuntu0.6) over (4.8.1.1-3ubuntu0.6) ...
Preparing to unpack .../libicu-dev_4.8.1.1-3ubuntu0.6_amd64.deb ...
Unpacking libicu-dev (4.8.1.1-3ubuntu0.6) over (4.8.1.1-3ubuntu0.6) ...
Replaced by files in installed package icu-devtools (52.1-3ubuntu0.4) ...
Setting up libicu48 (4.8.1.1-3ubuntu0.6) ...
dpkg: dependency problems prevent configuration of libicu-dev:
icu-devtools (52.1-3ubuntu0.4) breaks libicu-dev (<< 52.1-3ubuntu0.4) and is installed.
Version of libicu-dev to be configured is 4.8.1.1-3ubuntu0.6.

dpkg: error processing package libicu-dev (--install):
dependency problems - leaving unconfigured
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for libc-bin (2.19-0ubuntu6.7) ...
Errors were encountered while processing:
libicu-dev

И что с этим дальше посоветуете сделать? У меня Убунта 14.04 - но Desktop.
19. starik-2005 1427 02.04.16 11:22 Сейчас в теме
(18) Necessitudo, да в принципе также: sudo dpkg -i libicu... Но у Вас там devtools от последней версии установлен, поэтому его предварительно надо снести, иначе проблема с зависимостями. Удалять пакеты можно командой sudo apt-get purge имя_пакета.

По поводу 403, то вот оно:
Прикрепленные файлы:
20. Necessitudo 02.04.16 15:58 Сейчас в теме
(19) Ну мы должны были догадаться - ссылка действительна только для тех кто залогинился на
https://users.v8.1c.ru/ Иначе бы можно было релизы любых типовых скачивать по прямой ссылке:)
21. starik-2005 1427 02.04.16 16:14 Сейчас в теме
(20) Necessitudo, раньше 1С выкладывала патчи и постгрес в открытом доступе. Хотя патчи те еще - что-то оптимизируют, что-то ломают )) Вот, видимо, и решили не позориться.
22. audion 02.04.16 17:53 Сейчас в теме
(21) Сергей, большое спасибо за статью, очень своевременная и полезная. Насчет патчей в открытом доступе - почему-то старый адрес дает 404. Может, поправят.
Ну, зато есть https://www.postgrespro.ru/products/1c_build где есть ссылки на репы для Ubuntu/Debian и CentoOS, где, естественно, есть и раздел src. Так что для экспериментов вполне можно сдуть сырцы оттуда и пересобрать PG под себя.
Например, на странице http://1c.postgrespro.ru/deb/pool/main/p/postgresql-9.4/ есть все уже собранные билды для разных deb-based дистрибутивов, равно как и пакеты для сборки. В частности, вот прямая ссылка на архив http://1c.postgrespro.ru/deb/pool/main/p/postgresql-9.4/postgresql-9.4_9.4.7-1.trusty-1C.debian.tar.gz для трасти. В архиве есть каталог patches, где собраны все эти патчи.

И вот еще добавлю: для понимания сущности того, что добавили эти патчи: http://www.silverbulleters.org/ne-obizhayte-linux-oida-ili-osobennosti-patcha-1s-dlya-postgresql/
23. starik-2005 1427 03.04.16 13:22 Сейчас в теме
(22) audion, да, мне автор вебинара про постгри скидывал данную ссылку (в конце Вашего сообщения). Сказал, что fastrun - это специальная опечатка, но верится с трудом, ибо правильно будет "fasttrun" ))) ... ну и прочие мелочи в статье скорее выдают "юношу с взором горящим", нежели профессионала, хотя, как я понял, автор и сам готов дать заветов массу )))

По поводу "постгри.про", то в самом первом комментарии авторы "про" уже отписались. Рад, что у них там и исходники 1С-освского постгри выложены, ибо сейчас 1С их из свободного доступа убрала.

Вообще, по поводу сборки, то имеет смысл собирать под текущую архитектуру процессора, используя ключи сборки -march=native -O3 -flto - это позволяет существенно (до 20-25%) повысить скорость стандартного теста pgbench (у меня с 8к до 10,8к увеличилась скорость при j10 и с10). Ну а по поводу настроек памяти, то, полагаю, Вам и так теперь известно, куда крутить параметры в конфиге постгри.
24. audion 04.04.16 15:06 Сейчас в теме
(23) насчет "fastrun" - Алексей уже говорил, это одна из его милых шуточек, пасхалок, что-ли. Как и Frag_I_ster, да простит меня многоуважаемый камрад Fragster за этот пример. У Алексея много такого, вспомните, им упоминалась версия 1С 8.3.7.1760 (хотя, естественно, речь о 8.3.6.1760). Типа защита от копирования. Я, лично, резко против такой защиты, это не комильфо, ну да дело хозяйственное. Статья, в общем-то, согласен, несколько сумбурная и лихая, но назначение трех патчей в ней худо-бедно изложено. Может, полезными будут и слайды Льва Ласкина https://pgconf.ru/media/2016/02/19/%D0%9B%D0%B0%D1%81%D0%BA%D0%B8%D0%BD%20%­D0%9B%D0%B5%D0%B2.pdf

Из первого поста не было понятно, что на сайте PG Pro есть сами исходники, вот и добавил прямую ссылку, а то заметил, народ стал часто об этом спрашивать. Может, добавите в статью этот момент, а то неофиты будут спотыкаться.

Насчет ключей сборки - спасибо, очень полезно. Я сейчас вот с zfs экспериментирую, пока что данные противоречивые, но как только что-то интересное выплывет, обещаю поделиться. И кстати, встретил рекомендацию, что если баз много, очень полезно увеличивать кол-во autovacuum_max_workers до кол-ва, когда один процесс будет в запасе, и настройки autovacuum делать весьма агрессивными, но при этом каждую минуту запускать из крона скрипт, который устанавливает процессам autovacuum пониженный приоритет. Думаю, от раздувания баз и постоянно работающего вакуума это действительно помогает.
25. starik-2005 1427 05.04.16 10:23 Сейчас в теме
(24) audion, я думаю, что все это может потянуть на отдельную статью. Хотелось бы написать ее в соавторстве с товарищами, которые пилят постгри.про. Если у них найдется желание и время - я только за. Можно было бы опустить детали по установке сервера и сосредоточиться на установке именно самого постгри.
26. Alik_1c 08.04.16 13:09 Сейчас в теме
Ваша статья очень содержательна но ссылки не работают. Исправьте пожалуйста.
27. starik-2005 1427 09.04.16 11:20 Сейчас в теме
(26) Alik_1c, да, ссылки перестали работать. Статью я скорее всего напишу новую, ибо многое поменялось с тех совсем недалеких пор: 1С зачем-то закрыла часть сайта, на которой располагались постгри с исходниками. Исходники появились на сайте постгрес.про. Полагаю, что-то могло поменяться и в сборке - надо будет еще раз все проделать и описать. Думаю ближе к майским.
28. ikekoval 90 14.12.16 00:25 Сейчас в теме
При попытке через интерфейс выбрать "Получить образ диска Дополнений гостевой ОС" получал ошибку с расшифровкой Could not mount the media/drive '/usr/share/virtualbox/VBoxGuestAdditions.iso' (VERR_PDM_MEDIA_LOCKED).
Вылечилось sudo apt-get install virtualbox-guest-additions-iso
29. user848206 22.10.17 20:18 Сейчас в теме
Лучшая статья что нашел.
Дополню.
После установки при создании базы ругалось на
syntax error at or near "SECOND"
if arg_mode = \'SECOND\' then
помогло изменение в конфиге этих параметров (после создания базы вернуть как было)
backslash_quote = on
escape_string_warning = off
standart_conforming_strings = off

потом ругалось на
"$libdir/fasttrun": No such file or directory
оказалось компилировать надо не make install, а make install-world
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Разработчик 1С
Москва
зарплата от 100 000 руб. до 160 000 руб.
Полный день

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 130 000 руб. до 150 000 руб.
Полный день