В данной статье описывается настройка выделенного сервера под PosqtgreSql. Сам 1С:Предприятие на данный сервер НЕ УСТАНАВЛИВАЕТСЯ!
Статья рассчитана на опытных пользователей и администраторов. Я не буду описывать все досконально, опишу только основные моменты.
OpenSuse 12.2 выбрана в связи с тем, что для быстродействия решено было использовать SAS RAID 0, а OpenSuse 12.2 по умолчанию поддерживала RAID контроллер и также под нее подходили установочные файлы для PostgreSQL от 1с.
Итак, ищем в сети образ openSUSE-12.2-NET-x86_64, качаем и прожигаем на CD. Вы можете скачать сразу полноценный образ, но у меня были сложности с записью на DVD, поэтому я использовал openSUSE-12.2-NET-x86_64.
Грузимся с нашего CD и начинаем установку системы
Выбираем в качестве носителя «сеть», «http», адрес — download.opensuse.org, репозитории - /distribution/12.2/repo/oss/
YAST – система — сетевые настройки — настраиваем сеть
YAST - безопасность и пользователи — брандмауэр — отключаем
YAST - система — системные службы — активируем sshd
перезапускаем компьютер и коннектимся по ssh (utf-8)
# устанавливаем необходимые пакеты
zypper install nano
zypper install termcap
# проверяем настройки сети
ethtool -s eth0 speed 1000 duplex full autoneg off
# 192.168.110.1 – в данном случае IP DNS сервера
echo "nameserver 192.168.110.1" > /etc/resolv.conf
nano /etc/sysconfig/network/ifcfg-eth0
BOOTPROTO='static'BROADCAST=''ETHTOOL_OPTIONS='speed 1000 duplex full autoneg off'# 192.168.110.10 – в данном случае IP этого компьютераIPADDR='192.168.110.10'MTU=''NAME='RTL8111/8168B PCI Express Gigabit Ethernet controller'NETMASK='255.255.255.0'NETWORK=''REMOTE_IPADDR=''STARTMODE='onboot'USERCONTROL='no'
# убираем автологин, зачем тратить лишние ресурсы
nano /etc/sysconfig/displaymanager
DISPLAYMANAGER_AUTOLOGIN="no"
# устанавливаем PostgreSQL
mkdir ~/postgres
cd ~/postgres
wget http://koladigesta.ru/files/postgresql/9.0x64/postgresql-9.0.3-3.1C.x86_64.rpm
wget http://koladigesta.ru/files/postgresql/9.0x64/postgresql-contrib-9.0.3-3.1C.x86_64.rpm
wget http://koladigesta.ru/files/postgresql/9.0x64/postgresql-devel-9.0.3-3.1C.x86_64.rpm
wget http://koladigesta.ru/files/postgresql/9.0x64/postgresql-docs-9.0.3-3.1C.x86_64.rpm
wget http://koladigesta.ru/files/postgresql/9.0x64/postgresql-libs-9.0.3-3.1C.x86_64.rpm
wget http://koladigesta.ru/files/postgresql/9.0x64/postgresql-server-9.0.3-3.1C.x86_64.rpm
wget http://koladigesta.ru/files/postgresql/9.0x64/postgresql-test-9.0.3-3.1C.x86_64.rpm
rpm -Uvh --nodeps ./*.rpm
mkdir /usr/local/postgresql
groupadd postgres
useradd -g postgres -p postgres -d /usr/local/postgresql postgres
chown postgres:postgres -R /usr/local/postgresql
# делаем символьные ссылки на требуемые библиотеки
ln -s /lib64/libssl.so.1.0.0 /lib64/libssl.so.4
ln -s /lib64/libcrypto.so.1.0.0 /lib64/libcrypto.so.4
ln -s /lib64/libreadline.so.6.2 /lib64/libreadline.so.4
# инициализируем кластер базы
su postgres -c 'LANG=ru_RU.UTF-8 /usr/pgsql/bin/initdb /usr/local/postgresql/data'
# создаем скрипт автозапуска для postgresql
nano /etc/init.d/postgresql
#!/bin/shKIND="postgresql"USER="postgres"BIN="/usr/pgsql/bin/pg_ctl"DIR="/usr/local/postgresql/data"start() {echo -n $"Starting $KIND services: "sudo -u $USER -H $BIN -D $DIR startecho}stop() {echo -n $"Shutting down $KIND services: "sudo -u $USER -H $BIN -D $DIR stopecho}restart() {echo -n $"Restarting $KIND services: "sudo -u $USER -H $BIN -D $DIR restartecho}case "$1" instart)start;;stop)stop;;restart)restart;;*)echo $"Usage: $0 {start|stop|restart}"exit 1esacexit $?
chmod u+x /etc/init.d/postgresql
chkconfig postgresql on
sudo systemctl --system daemon-reload
service postgresql start
# теперь оптимизируем postgresql
# измененяем значение shmmax (Наибольший допустимый размер сегмента распределенной памяти max 1/4 RAM) в байтах
echo 2064529408 >/proc/sys/kernel/shmmax
echo "kernel.shmmax=2064529408" >>/etc/sysctl.conf
reboot
psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'postgres'"
rm /usr/local/postgresql/data/pg_hba.conf
echo "local all all trust" >>/usr/local/postgresql/data/pg_hba.conf
echo "host all all 0.0.0.0/0 password" >>/usr/local/postgresql/data/pg_hba.conf
chown postgres:postgres /usr/local/postgresql/data/pg_hba.conf
# настройки приведены для нашего сервера, подбирались в течении месяца
# Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
# 8Gb DDR2
nano /usr/local/postgresql/data/postgresql.conf
listen_addresses = '*'port = 5432max_connections = 50shared_buffers = 1792MBwork_mem = 370MBmaintenance_work_mem = 256MBcheckpoint_segments = 32effective_cache_size = 4GBrandom_page_cost = 2.5fsync = onwal_sync_method = fdatasynccpu_tuple_cost = 0.005cpu_index_tuple_cost = 0.001log_min_messages = error
# перезапускаем postgresql
service postgresql restart
# если система проработает без сбоев месяц и у вас есть хороший ИБП, то вы можете намного ускорить свой сервер применив в postgresql.conf опцию fsync = off. Лично у нас сервер работает с такой опцией, т.к. база в sql занимает 200Гб. Однако данная опция опасна и я рекомендую вам почитать о ней, прежде чем вы примените ее на своем боевом сервере.