Инструменты пользователя

Инструменты сайта


centos_7_postgresql_9.5_под_1с

Centos 7 + PostgreSQL 9.5 под 1С

Скачиваем Centos 7 https://www.centos.org/download/

Выбираем первый пункт: Install CentOS 7 и жмем enter. После загрузки инсталлера, нас встречает окно с выбором языка, который будет использоваться во время установки. Я всегда выбираю Еnglish, мне так привычнее. Дальше загружается страница с выбором основных параметров установки. Она уже будет отличаться в зависимости от типа ISO образа, с которого происходит установка центос. CentOS 7 minimal

Если вы используете диск centos minimal iso, то увидите следующий экран: Дальше загружается страница с выбором основных параметров установки. Она уже будет отличаться в зависимости от типа ISO образа, с которого происходит установка центос. CentOS 7 minimal Если вы используете диск centos minimal iso, то увидите следующий экран. Здесь вам предлагают указать параметры установки. Восклицательным знаком помечен раздел, без настройки которого продолжение невозможно. Для настройки доступны следующие параметры установки:

  • 1. Выбор часового пояса centos.
  • 2. Выбор раскладки клавиатуры.
  • 3. Поддержка каких языков будет осуществляться на сервере.
  • 4. Откуда будет происходить установка. Так как у нас дистрибутив centos minimal, установка будет с локального iso.
  • 5. Выбор пакетов для установки. В образе minimal доступен только минимальный набор софта.
  • 6. Разбивка жесткого диска. Подробнее коснемся этого пункта, когда будем разбирать установку на raid.
  • 7. Настройка сетевых интерфейсов.

Для продолжения установки необходимо выполнить как минимум разбивку жесткого диска. Без этого продолжение установки невозможно. Но мы пройдемся по всем параметрам и установим необходимые для нас значения. Итак, нажимаем на DATE & TIME и настраиваем параметры времени: Указываем регион.

  • 1. Выбираем город.
  • 2. Включаем при необходимости службу времени для синхронизации часов centos с внешними серверами.

Это возможно сделать только если вы уже настроили сетевые параметры. Если нет, то вернитесь к этой настройке позже.

  • Unordered List Item3. Выбираем список внешних серверов для синхронизации времени: 

Указываем формат, в котором будет отображаться текущее время. 1. При необходимости изменяем дату сервера. После завершения настроек жмем сверху синюю кнопку Done. Идем в следующую настройку — KEYBOARD LAYOUT: Добавляем необходимые раскладки. Я добавил Russian.

  • 1. Нажимаем Options и выбираем, как будет происходить переключение раскладок.
  • 2. Тестируем раскладки и переключение. Если все в порядке, идем дальше.

Нажимаем LANGUAGE SUPPORT: Выбираем дополнительные языки, которые будет поддерживать система. Чаще всего мне это не нужно, но для примера добавим поддержку русского языка. Это может пригодиться, например, при создании файлового архива с русскими названиями в файлах. С поддержкой русского языка можно работать в консоли с русскими названиями папок и файлов. Если у вас, к примеру, сервер настраивается для работы в качестве шлюза, поддержка дополнительных языков скорее всего не пригодится. После выбора снова жмем Done. Теперь выполним сетевые настройки. Идем в раздел NETWORK & HOSTNAME. Подробно о настройке сетевых интерфейсов я указывал в одной из своих статей, поэтому останавливаться на этом вопросе не буду. Включаем ползунок в положение ON и получаем автоматически настройки по dhcp: Включение ползунка в положение ON активирует интерфейс, он получает настройки по dhcp. В разделе SOFTWARE SELECTION при minimal установке тоже нечего выбрать, уже указан единственно возможный вариант: Нам осталось рассмотреть последнюю обязательную настройку, без которой установка centos не начнется —INSTALLATION DESTINATION. Зайдя в нее вы увидите список подключенных к серверу дисков. В моем случае это один жесткий диск. Во время установки нужно указать пароль root, либо создать дополнительных пользователей. Пароль рекомендую установить, пользователей по необходимости.

заходим под root и вводим yum update -y && yum upgrade -y && yum install openssh-server nano mc -y ^&& reboot nano /etc/sysconfig/selinux

  • [root@host2a ~]# cat /etc/sysconfig/selinux
  • # This file controls the state of SELinux on the system.
  • # SELINUX= can take one of these three values:
  • # enforcing - SELinux security policy is enforced.
  • # permissive - SELinux prints warnings instead of enforcing.
  • # disabled - SELinux is fully disabled.
  • SELINUX=disabled
  • # SELINUXTYPE= type of policy in use. Possible values are:
  • # targeted - Only targeted network daemons are protected.
  • # strict - Full SELinux protection.
  • SELINUXTYPE=targeted
  • # SETLOCALDEFS= Check local definition changes
  • SETLOCALDEFS=0

reboot

  • подключаемся по SSH
  • Приступаем к установке 1с Сервера x32
  • Установка дополнительного ПО для настройки сервера:
  • Выполняем последовательно команды:
  • yum install rpm-build wget glibc-devel bison flex readline-devel zlib-devel openssl-devel pam-devel gettext gcc make icu libicu libicu-devel
  • yum install ImageMagick
  • yum install t1utils
  • yum install unixODBC
  • yum install ttf2pt1
  • yum install ttmkfdir cabextract rpm-build
  • yum install chkfontpath
  • cd /root/rpmbuild/SPECS
  • rpmbuild -bb msttcorefonts-2.0-1.spec
  • cd rpmbuild/RPMS/noarch
  • rpm -ivh msttcorefonts-2.0-1.noarch.rpm
  • cd /usr/share/fonts/msttcorefonts
  • mkfontscale
  • mkfontdir
  • Создаем символические ссылки на библиотеки libicu:
  • ln -s /usr/lib64/libicui18n.so /usr/local/lib64/libicui18n.so.46
  • ln -s /usr/lib64/libicudata.so /usr/local/lib64/libicudata.so.46
  • ln -s /usr/lib64/libicuuc.so /usr/local/lib64/libicuuc.so.46
  • Ставим PostgreSQL
  • sudo rpm -ivh http://1c.postgrespro.ru/keys/postgrespro-1c-centos95.noarch.rpm && sudo yum install postgresql-pro-1c-9.5
  • chkconfig postgresql-9.5 on
  • Закачиваем сервер 1с
  • scp /home/unix/1/8.3.7.2008_rpm.tar.gz root@192.168.200.68:/home/unix
  • Распаковываем
  • tar zxvf *.tar.gz
  • Устанавливаем
  • yum localinstall *.rpm
  • chkconfig srv1cv83 on
  • Оптимизируем postgresql под 1с
  • Ниже перечислены основные параметры, на  которые следует обратить внимание при оптимизации производительности PostgreSQL.
  • shared_buffers
  • Объём совместно используемой памяти, выделяемой PostgreSQL для кэширования данных, определяется числом страниц (shared_buffers) по 8 килобайт каждая. Следует учитывать, что операционная система сама кеширует данные, поэтому нет необходимости отводить под кэш всю наличную оперативную память. Размер shared_buffers зависит от многих факторов, для начала можно принять следующие значения:
  • 8–16 Мб  – Обычный настольный компьютер с 512 Мб и небольшой базой данных
  • 80–160 Мб – Небольшой > сервер, предназначенный для обслуживания базы данных с объёмом оперативной памяти 1 Гб и базой данных около 10 Гб.
  • 400 Мб – Сервер с несколькими процессорами, с объёмом памяти в 8 Гб и базой данных занимающей свыше 100 Гб обслуживающий несколько сотен активных соединений одновременно .
  • work_mem
  • Под каждый запрос выделяется ограниченный объём памяти для работы. Этот объём используется для сортировки, объединения и других подобных операций. При превышении этого объёма сервер начинает использовать временные файлы на диске, что может существенно снизить производительность. Оценить необходимое значение дляwork_mem можно разделив объём доступной памяти (физическая память минус объём занятый под другие программы и под совместно используемые страницы shared_buffers) на максимальное число одновременно используемых активных соединений.
  • maintenance_work_mem
  • Эта память используется для выполнения операций по сбору статистики (ANALYZE), сборке мусора (VACUUM), создания индексов (CREATE INDEX) и добавления внешних ключей. Размер выделяемой под эти операции памяти должен быть сравним с физическим размером самого большого индекса на диске.
  • effective_cache_size
  • PostgreSQL в своих планах опирается на кэширование файлов, осуществляемое операционной системой. Этот параметр соответствует максимальному размеру объекта, который может поместиться в системный кэш. Это значение используется только для оценки. effective_cache_size можно установить в 1/2 - 2/3 от объёма имеющейся в наличии оперативной памяти, если вся она отдана в распоряжение PostgreSQL.
  • Следующие параметры могут существенно увеличить производительность работы PostgreSQL. Однако их рекомендуется использовать только если имеются надежные ИБП и программное обеспечение, завершающее работу системы при низком заряде батарей.
  • fsync 
  • Данный параметр отвечает за сброс данных из кэша на диск при завершении транзакций. Если установить его значение fsync=off то данные не будут записываться на дисковые накопители сразу после завершения операций. Это может существенно повысить скорость операций insert и update, но есть риск повредить базу, если произойдет сбой (неожиданное отключение питания, сбой ОС, сбой дисковой подсистемы).
  • synchronous_commit
  • Включает/выключает синхронную запись в лог файлы после каждой транзакции. Это защищает от возможной потери данных. Но это накладывает ограничение на пропускную способность сервера.
  • Если вашей системе не критична потенциально низкая возможность потери небольшого количества изменений при крахе системы, но необходимо обеспечить в несколько раз большую производительность по количеству транзакций в секунду. В этом случае можно установить этот параметр в off (отключение синхронной записи).
  •  shared_buffers - Общий буфер сервера
  • Размер кэша чтения и записи PostgreSQL, общего для всех подключений. Если данные отсутствуют в кэше, производится чтение с диска (возможно, будут кэшированы ОС)
  • Если объём буфера недостаточен для хранения часто используемых рабочих данных, то они будут постоянно писаться и читаться из кэша ОС или с диска, что крайне отрицательно скажется на производительности.
  • Но это не вся память, требуемая для работы, не следует указывать слишком большое значение, иначе не останется памяти как для собственно выполнения запросов клиентов (а чем их больше тем выше потребление памяти), так и для ОС и прочих приложений, например, процесса сервера 1С. Так же сервер полагается и на кэш ОС и старается не держать в своём буфере то что скорее всего закэшировано системой.
  • Начальные рекомендации:
  • Средний объем данных, доступно 256-512Мб - значения 16-32Мб
  • Большой объем данных, доступно 1-4Гб - значения 64-256Мб или выше.
  • В тесте использовалось
  • shared_buffers = 512MB
  • work_mem - память для сортировки, агрегации данных и т.д.
  • Выделяется на каждый запрос, возможно по нескольку раз для сложных запросов. Если памяти недостаточно - PostgreSQL будет использовать временные файлы. Если значение слишком большое - может возникнуть перерасход оперативной памяти и ОС начнет использовать файл подкачки с соответствующим падением быстродействия.
  • Есть рекомендация при расчетах взять объем доступной памяти за вычетом shared_buffers, и поделить на количество одновременно исполняемых запросов. В случае сложных запросов делитель стоит увеличить, т.е. уменьшить результат. Для рассматриваемого случая из расчета 5 активных пользователей (2.5Гб-0.5Гб (shared_buffers))/5=400Мб. В случае если СУБД сочтет запросы достаточно сложными, или появятся дополнительные пользователи, потребуется значение уменьшить.
  • Для простых запросов достаточно небольших значений - до пары мегабайт, но для сложных запросов (а это типовой сценарий для 1С) потребуется больше. Рекомендация - для памяти 1-4Гб можно использовать значения 32-128Мб. В тесте использовал
  • work_mem = 128MB
  • maintenance_work_mem - память для команд сбора мусора, статистики, создания индексов.
  • Рекомендуется устанавливать значение 50-75% от размера самой большой таблицы или индекса, но чтобы памяти хватило для работы системы и приложений. Рекомендуется устанавливать значения больше чем work_mem. В тесте использовал
  • maintenance_work_mem = 192MB
  • temp_buffers - буфер под временные объекты, в основном для временных таблиц.
  • Можно установить порядка 16 МБ. В тесте использовал
  • temp_buffers = 32MB
  • effective_cache_size - примерный объем дискового кэша файловой системы.
  • Оптимизатор использует это значение при построении плана запроса, для оценки вероятности нахождения данных в кэше (с быстрым случайным доступом) или на медленном диске. В Windows текущий объем памяти, выделенной под кэш, можно посмотреть в диспетчере задач.
  • инициализируем базу
  • service postgresql-9.5 initdb
  • настраиваем config
  • nano /var/lib/pgsql/9.5/data/postgresql.conf
  • Открываем порты
  • 2
  • firewall-cmd –permanent –add-port=5432/tcp
  • 2
  • firewall-cmd –permanent –add-port=1540/tcp
  • 2
  • firewall-cmd –permanent –add-port=1541/tcp
  • 2
  • firewall-cmd –permanent –add-port=1560/tcp
  • 2
  • firewall-cmd –permanent –add-port=80/tcp
  • Меняем под себя запускаем базу
  • Заходим меняем пароль
  • su - postgres
  • psql
  • postgres=# \password postgres
  • CREATE EXTENSION adminpack;
  • Настраиваем доступ
  • nano /var/lib/pgsql/9.5/data/pg_hba.conf
  • […]
  • # TYPE  DATABASE        USER            ADDRESS                 METHOD
  • # «local» is for Unix domain socket connections only
  • local   all             all                                     md5
  • # IPv4 local connections:
  • host    all             all             127.0.0.1/32            md5
  • host    all             all             192.168.1.0/24          md5
  • # IPv6 local connections:
  • host    all             all             ::1/128                 md5
  • […]
  • systemctl restart postgresql-9.5
  • nano /var/lib/pgsql/9.5/data/postgresql.conf
  • listen_addresses = '*'
  • port = 5432
  • systemctl restart postgresql-9.5
  • Устанавливаем phpphadmin
  • yum install phpPgAdmin httpd
  • настраиваем доступ
  • nano  /etc/httpd/conf.d/phpPgAdmin.conf
  • […]
  • Alias /phpPgAdmin /usr/share/phpPgAdmin
  • <Location /phpPgAdmin>
  •     <IfModule mod_authz_core.c>
  •         # Apache 2.4
  •         Require all granted
  •         #Require host example.com
  •     </IfModule>
  •     <IfModule !mod_authz_core.c>
  •         # Apache 2.2
  •         Order deny,allow
  •         Allow from all
  •         # Allow from .example.com
  •     </IfModule>
  • </Location>
  • systemctl enable httpd
  • systemctl start httpd
  • vi /etc/phpPgAdmin/config.inc.php
  • Find the following line:
  • $conf['servers'][0]['host'] = '';
  • Change it as shown below:
  • $conf['servers'][0]['host'] = 'localhost';
  • And find the line:
  • $conf['extra_login_security'] = true;
  • Change the value to false:
  • $conf['extra_login_security'] = false;
  • Find the line:
  • $conf['owned_only'] = false;
  • Set the value as true.ru
  • $conf['owned_only'] = true;
  • Save and close the file. Restart postgresql service and Apache services.
  • Заходим на терминальный сервер запускаем сервер администрирования
  • подключаемся к sql серверу создаем базу
  • но сначала пропишем hostname в etc
  • nano /etc/hostname
  • sql.ismltd.local sql

Затем прописываем в терминальном сервере в C:winodws/system32/drivers/etc/host 192.168.200.16 sql sql.ismltd.local теперь добавляем базу Ну осталось загрузить базу и можно работать. Теперь приступаем к настройке резервного копирования * Добавляем диск для backup * mkdir /hdd/backup * fdisk -l * sudo mkfs.ext4 /dev/vdb * * blkid * UUID=«f8ee8a10-d796-4ea6-ab48-37a2b4692969» копируем * Заходим в /etc/fstab добовляем для автомонтирования * UID=f8ee8a10-d796-4ea6-ab48-37a2b4692969 /hdd/backup ext4 defaults 0 1 * Монтируем диск * mount /dev/vdb /hdd/backup * Создаем скрипт * mkdir /scrypts * nano /scrypts/pg_backup.sh * #!/bin/bash * cd /backup/ * * #! /bin/bash * DIR=«/backup» * YMD=$(date «+%Y-%m-%d») * su -c «pg_dump -U postgres ism_ka | gzip -6 > «$DIR/ism_ka.$YMD.gz »» postgres * * # delete backup files older than 60 days * OLD=$(find $DIR -type d -mtime +60) * if [ -n «$OLD» ] ; then * echo deleting old backup files: $OLD * echo $OLD | xargs rm -rfv * fi * даем права * chown -R postgres.postgres /skript * chown -R postgres.postgres /backup * Заходим от postgres * su postgres * Открываем крон * sudo crontab -u postgres -e * Пишем * 0 3 * * * /skript/pg_backup.sh

centos_7_postgresql_9.5_под_1с.txt · Последние изменения: 2016/05/17 09:13 — 46.228.1.251