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

23.02.16

База данных - HighLoad оптимизация

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

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


Давайте разберемся, что мы тут будем делать по-взрослому, по программистскому )))

  1. Установим Ubuntu Server на виртуалку, чтобы было на чем тренироваться.
  2. Скачаем с сайта 1С последние исходники с патчами.
  3. Накатим патчи на исходники.
  4. Прикола ради попробуем собрать - не получилось, ибо в исходниках Postgres'а ошибочка в юнит-тесте XML.
  5. Соберем вручную.
  6. Инстальнем, что получилось.
  7. Создадим кластер.
  8. Попробуем запустить - ай-ай-ай, не запускается.
  9. Исправим файлик запуска.
  10. Накатим что-нибудь большое, чтобы было с чем поиграться и потестировать. Например, базу недействительных паспортов.
  11. Соберем с оптимальными ключами.
  12. А есть ли разница?

Ну что ж, приступим.

Установим Ubuntu Server на виртуалку

Итак, скачаем образ серверного Ubuntu отсюда. Если в качестве хост-стстемы у Вас стоит Windows, то, как я слышал, там есть какие-то проблемы с запуском 64-битных виртуалок. Если не взлетает - качните 32-битный образ, но это как-то не по-взрослому. Если у кого еще нет виртуальной машины, то это всегда можно по-быстрому исправить.

Собственно, у меня больше проблем возникает с установкой Windows, но, на всякий случай, покажу Вам пару картинок, как вообще развернуть Ubuntu Server на VirtualBox'е.

Для начала создадим новую виртуальныю машину. Запустим VirtualBox:

Менюшка Unity

В окошке создания новой виртуальной машины укажем имя, тип и версию гостевой операционной системы:

Создание ВМ

Дальше немного настроек. Отдадим нашей ситеме 1 гибибайт памяти (ну или гигабайт, если Вы привыкли говорить так):

Создадим виртуальный жесткий диск емкостью в 20 ГиБ, например.

Перейдем к настройкам машины. В настройка системы уберем загрузку с дискеты, укажем самый новый чипсет и PS/2 мышь.

На закладке "Ускорение" укажем, что используем аппаратную виртуализацию по полной (надеюсь, она у Вас есть).

В настройках носителей примонтируем в "оптический привод" наш образ. В принципе можно указать, что это "Live-CD".

С виртуалкой все. Теперь давайте установим систему.

После старта, если у Вас все галочки поставились как надо, Вы увидите экран с выбором языка:

Выберем с помощью стрелок клавиатуры нужный нам язык (например, "Русский") и нажмем Enter на первом пункте "Установить Ubuntu". Дальше Вам зададут абсолютно стандартные вопросы на тему раскладок клавиатуры и имени пользователя, как разбить диск и что туда ставить. В принципе не вижу ничего сложного в том, чтобы выбрать правильный ответ. Вопросы при сдаче экзамена на какого-нибудь профессионала куда сложнее, а количество пересдач в нашем случае вообще неограничено.

После установки мы получим какой-то такой экран. И если у Вас получится ввести имя пользователя и пароль правильно с первого раза, то Ваш экран будет незначительно отличатся от моего )))

Заметьте, Ubuntu не дает никаких гарантий, а Windows дает? Кто-нибудь уже стряс что-нибудь с Microsoft? Нет? Ну а если нет разницы, то зачем платить больше? ))) Кстати, всегда интересовало, какие гарантии снимает с нас 1С, когда мы ковыряемся в СУБД своими шаловливыми ручками? И на какие гарании можно рассчитывать от 1С и с каким SLA, если мы ничего такого не делаем? А то тут недавно в одной большой конторе пришлось залезть в их MS SQL, чтобы исправить ошибку формирования оборотки, в которой внезапно пропала вся аналитика. Цифры есть, а субконто - нет. Синтетику - пожалуйста, а если с аналитикой - пустой отчет. Странно, что никто в сторону MS и 1C даже не мяукнул, во всем обвинили разработчиков конфигурации, а не платформы, операционной системы или сервера СУБД, в которых, собственно, и была проблема. Так что если Вас до сих пор волнуют вопросы гарантии - сходите и прыгните с высогого здания, чтобы зря не мучиться)))

Продолжаем разговор (с)...

Для начала обновим систему, чтобы все было хорошо. Для этого наберем в командной строке такое заклинание:

sudo apt-get update
sudo apt-get dist-upgrade

Первая команда обновляет из репозитариев информацию о пакетах, а вторая скачивает и устанавливает обновления, включая обновления ядра. У меня все оказалось после установки новое.

Дальше можно накатить пакет расширений для гостевой ОС. Для этого в меню "Устройства" виртуальной машины выберите "Подключить образ диска дополнений гостевой ОС". После этого нам следует куда-нибудь примонтировать CDROM и запустить скриптик, устанавливающий дополнения:

sudo mount /dev/cdrom /media/cdrom
cd /media/cdrom

Если сейчас мы запустим скрипт, то полчим ошибку, т.к. у нас не установлены пакеты для сборки. Давайте исправим это:

sudo apt-get install build-essential

Теперь установим гостевое ПО:

sudo sh VBoxLinuxAdditions.run

Получилось? Замечательно!

Устанавливаем правильную локаль

Для того, чтобы 1С не говорила, что Postgres невозможно использовать, в системе нужно поставить правильную "локаль". Для этого следует выполнить следующие команды:

locale-gen en_US
locale-gen ru_RU
update-locale LANG=ru_RU.UTF8
dpkg-reconfigure locales

Команды эти необходимо выполнять от имени администратора. Для этого лучшее всего ввести "sudo -i", после чего система "переходит" в режим root'а. Выйти из него можно (и нужно, чтобы не было проблем с дальнейшими нашими действиями) командой "exit".

Качаем Postgres с сайта 1С с патчами

На 1С-овском сайте есть соответствующий раздел, в котором абсолютно открыто лежат нужные нам файлики в количестве целых одна штука. Чтобы не мучиться с сетевыми папками и прочим, давайте скачаем этот файлик прямо из Ubuntu. Для этого в linux есть простой скачивальщик файлов "wget". Так и запишем:

wget http://v8.1c.ru/overview/postgresql_patches/9-4-2/postgresql-9.4_9.4.2-1.1c.deb.zip

Теперь остается распаковать файл и попытаться собрать. Для упрощения жизни давайте установим миднайт-коммандер - замечательный файловый менеджер. Полагаю, Вы уже поняли, как устанавливаются здесь программы: просто набираете "sudo apt-get install имя_программы" и вводите пароль. Если хотите более выдающегося интерфейса, то можете зайти в менеджер пакетов aptitude, но там и потеряться можно - пакетов тысячи. Запускаем mc и видим скаченный нами файл:

Создадим каталог, например postgres-install, в который с помощью mc распакуем наш архив. Собственно, здесь у нас три файла: файл с оригинальным постгресом (он абсолютно идентичен архиву с исходниками с официального сайта Postgres'а, только название изменено), файл с заплатками для сборки пакета под debian (Ubuntu использует инструменты сборки пакетов из debian, так что это то, что нужно) и файл с описанием (.dsc - дескрипшн). Давайте распакуем все это и накатим патчики. Для этого нам нужно выполнить следующую команду:

dpkg-source -x *.dsc

Вот что должно появиться на Вашем экране:

Мы распаковали файлы с исходниками и применили к ним патчи.

Если бы не было ошибки с юнит-тестом XML в данной версии сборки, то мы бы могли написать одну команду, которая собрала бы нам установочные пакеты. Но т.к. при этом запускаются юнит-тесты и на одном из них валится ошибка, то нам придется собирать пакет самостоятельно. И это ... хорошо! )))

Собираем PostgreSQL вручную

Для того, чтобы все было совсем хорошо, нам надо узнать, какие библиотеки поставить для сборки. Поэтому все-таки воспользуемся той волшебной командой, которая могла бы нам собрать пакет. Для этого нужно зайти в каталог, в который распаковались исходники, и запустить следующую команду:

cd postgresql-9.4-9.4.2
dpkg-buildpackage -rfakeroot

В выводе команды у нас будет следующее сообщение: "Неудовлетворенные сборочные зависимости: ..." Указанные пакеты надо поставить через уже известный нам sudo apt-get install:

sudo apt-get install libperl-dev libipc-run-perl tcl8.6-dev  libedit-dev libssl-dev libpam0g-dev libxml2-dev krb5-multidev libldap2-dev libselinux1-dev libxslt1-dev python-dev python3-dev bison openjade docbook-dsssl docbook-xsl docbook opensp xsltproc libicu-dev ...

В общем и целом наша задача - переписать в эту строку все те пакеты, которые нам понадобятся и на которые ругается dpkg.

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

После того, как все пакеты установлены, можем еще раз запустить "dpkg-buildpackage -rfakeroot", чтобы проверить, все ли зависимости удовлетворены. Если сборка пошла, то можно подождать и узнать, что из этого выйдет. У меня все завершается ошибкой юнит-теста для xml. Но то, что сборка началась - это уже хорошо. Давайте соберем это чудо программной мысли руками. Для этого запустим ./configure. Эта команда подготавливает make-файл для сборки. В качестве ключей можно передать те или иные параметры, о которых можно узнать с помощью ./configure -- help. Можно запустить и без ключей, указав параметры сборки по-умолчанию. Видел рекомендацию запускать так: "./configure --disable-integer-datetimes", но, как мне кажется, это не обязательно.

Когда команда ./configure отработает, мы получим возможность собрать нашу программу. Если ошибок не было, то выполните make clean, чтобы почистить мусор от предыдущей неудачной сборки. Дальше соберем программу с помощью make -j X, где Х - это количество потоков. Я указываю 8, т.к. у меня типа восьмиядерная машина (четыре виртуальных ядра i7 я тоже считаю). Вот, все побежало куда шустрее, хотя я и выделил своей виртуальной машине всего два ядра из четырех. Если все собралось хорошо, то последней строчкой будет такая: "All of PostgreSQL successfully made. Ready to install."

Установка

Ну собрать мы вроде как собрали, теперь давайте установим. В этом тоже ничего сверхъестественного нет, просто выполним sudo make install и введем пароль. Установка у меня заняла примерно 2 секунды. Теперь попробуем запустить нашу СУБД. Для этого нужно произвести следующие шаги:

  1. Создать пользователя postgres командой: "sudo useradd postgres -p postgres -U -m"
  2. Установить владельцем каталога, куда мы поставили PostgreSQL, данного пользователя: "sudo chown -R postgres:postgres /usr/local/pgsql"
  3. Инициализировать кластер: "/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data". Тут нужно отметить, что кластер придется создавать от имени пользователя postgres. Чтобы залогиниться под ним, надо выполнить "sudo su - postgres". После инициализации кластера в каталоге "data" создается структура кластера с конфигурационными файлами, и нам сообщают, что каталог инициализирован и можно запустить постгрес такой-то или этакой-то командой. Если мы попытаемся запустить команду от рута, то нам скажут, что это небезопасно. Если от пользователя postgres - то поулчим ошибку "FATAL: could not create lock file ...".
  4. Поборем ошибку из 3. Для этого нам нужно поменять файл postgresql.conf, который находится в каталоге data. Отредактировать там надо параметр "unix_socket_directories", в котором нужно указать каталог "/tmp". И не забудьте убрать решетку в начале строки.

Автозагрузка

Пропишем наш сервер в автозагрузку. Для этого нужно:

  1. Скоприовать файлик из каталога сборки "contrib/start-scripts/linux" в каталог "/etc/init.d/". Выполним "sudo cp ./contrib/start-scripts/linux /etc/init.d/postgres". 
  2. Сделать файл исполняемым "sudo chmod +x /etc/init.d/postgres"
  3. Выполнить "sudo update-rc.d postgres defaults" для обновления информации об автозагрузке.
  4. Ну и финальное "sudo service postgres start"

Все, теперь у нас полностью рабочий постгрес, который можно юзать для работы с 1С. Подключимся к нему с помощью pgadmin:

В принципе, у меня после такой установки все заработало: и база 1С создалась (демоторговля), и документы в ней провелись (710 штук) за достаточно небольшое время. При этом я еще не трогал настройки и не компилировал ничего с ключами оптимизации быстродействия.

По поводу оптимизации, то предлагаю Вам собрать постгрес с ключами, оптимальными для Вашего процессора. Для этого нужно выполнить команду "gcc -march=native -E -v - </dev/null 2>&1 | grep cc1", в выводе которой лично у меня вот что:

/usr/lib/gcc/x86_64-linux-gnu/4.8/cc1 -E -quiet -v -imultiarch x86_64-linux-gnu - -march=corei7-avx -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c -mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=corei7-avx -fstack-protector -Wformat -Wformat-security

Из этого всего нам надо то, что является ключом (т.е. со знаком "-" или "--" перед словом). Я лично взял начиная с "-march=corei7-avx" и до конца строки. Для того, чтобы компиляция пошла с этими ключами, нам надо передать их в ./configure через опцию CFLAGS. Т.е. пишите что-то типа:

./configure CFLAGS='-march=corei7-avx ...'

Вот и все!

Postgres Postgresql sql База данных СУБД

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 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    2963    12    1    

34

SALE! 20%

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

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

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

10000 8000 руб.

10.11.2023    3492    11    1    

33

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177722    1073    0    

849

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

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

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

14400 руб.

29.04.2020    27367    79    146    

59

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

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

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

4200 руб.

10.11.2015    61309    88    59    

73

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

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

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

20000 руб.

12.09.2019    11742    5    9    

7

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

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

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

3600 руб.

06.02.2017    31105    31    18    

47

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

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

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

12000 руб.

09.10.2019    10974    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 3033 24.02.16 14:53 Сейчас в теме
(1) Berckk, сейчас актуальная версия 9.5, но, как я понял1с еще не накатила туда свои патчи. В ней тоже много улучшений.
3. Danila-Master 116 26.02.16 08:17 Сейчас в теме
Спасибо за статью.
Только вопрос:
В стандартных репозетариях Ubuntu есть тоже Postgres. И при последующих обновлениях операционки, update попытается перетереть Postgres от 1С на Postgres и репозитария.
Знаю, что есть возможность отключить обновление Postgres'а.

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


Начиная с платформы версии 8.3.3 этот параметр не обязателен.
6. starik-2005 3033 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 3033 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 3033 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 3033 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 3033 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 3033 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 3033 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 3033 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 3033 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 3033 05.04.16 10:23 Сейчас в теме
(24) audion, я думаю, что все это может потянуть на отдельную статью. Хотелось бы написать ее в соавторстве с товарищами, которые пилят постгри.про. Если у них найдется желание и время - я только за. Можно было бы опустить детали по установке сервера и сосредоточиться на установке именно самого постгри.
26. Alik_1c 08.04.16 13:09 Сейчас в теме
Ваша статья очень содержательна но ссылки не работают. Исправьте пожалуйста.
27. starik-2005 3033 09.04.16 11:20 Сейчас в теме
(26) Alik_1c, да, ссылки перестали работать. Статью я скорее всего напишу новую, ибо многое поменялось с тех совсем недалеких пор: 1С зачем-то закрыла часть сайта, на которой располагались постгри с исходниками. Исходники появились на сайте постгрес.про. Полагаю, что-то могло поменяться и в сборке - надо будет еще раз все проделать и описать. Думаю ближе к майским.
28. ikekoval 119 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
Оставьте свое сообщение