вторник, 18 апреля 2017 г.

Установка postgresql 9.6.2 на ubuntu 16.04.2 lxc

Клонировать контейнер
# lxc-clone -o xenial_lxc -n xp962_lxc

Проверить:
# nano /var/lib/lxc/xp962_lxc/rootfs/etc/hosts
127.0.0.1   localhost
127.0.1.1   xp962_lxc

Сохранить.


Старт контейнера
# lxc-start -n xp962_lxc -d

Посмотреть ip
# lxc-ls -f

Зайти по ssh
# ssh ubuntu@192.168.0.222

$ sudo -i
Настроим часовой пояс Москва.
# dpkg-reconfigure tzdata
# apt-get update -y
# apt-get upgrade -y
# apt-get install mc htop samba nano wget -y

Настроим ipv6
# nano /etc/sysctl.conf
В конец файла:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Сохранить.
# sysctl -p
Проверка:
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1

# reboot

Зайти по ssh
# ssh ubuntu@xp962_lxc

Подключение под debian 7/8, ubuntu 12.04/14.04/16.04:
 

# sudo sh -c 'echo "deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list'
# wget --quiet -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | sudo apt-key add - && sudo apt-get update
# sudo apt-get install postgresql-pro-1c-9.6 -y

# systemctl start postgresql
# systemctl enable postgresql
# systemctl status postgresql

● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Вт 2017-04-18 08:51:27 UTC; 1min 18s ago
Main PID: 1455 (code=exited, status=0/SUCCESS)

апр 18 08:51:27 p962_lxc systemd[1]: Starting PostgreSQL RDBMS...
апр 18 08:51:27 p962_lxc systemd[1]: Started PostgreSQL RDBMS.

# su - postgres
$ psql -l
$ psql
q
Далее наберем
\password
введем два раза новый пароль pass
и наберем команду
\q
для выхода.
$ exit
Обратите внимание, что данный пароль устанавливается для внутреннего пользователя базы данных, а не для одноименного пользователя операционной системы Ubuntu.
Проверим, корректно ли запущен и работает наш сервер PostgreSQL который нам нужен для дальнейшего развертывания базы данных. Выполним
# netstat -atn|grep 0.0.0.0:54
Мы должны получить строку с номером порта (обычно 5432)/
# ps ax | grep postgres
# netstat -nlt
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN
tcp6       0      0 :::139                  :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 :::5432                 :::*                    LISTEN
tcp6       0      0 :::445                  :::*                    LISTEN
 

# poweroff

Сохранение контейнера xp962_lxc
# cd /var/lib/lxc/
# tar -cvzf xp962_lxc.tar.gz ./xp962_lxc
_______________________________________________

Установка 1С

Клонировать контейнер
# lxc-clone -o xp962_lxc -n xp962

# mkdir /var/lib/lxc/xp962/rootfs/home/ubuntu/8.3.10.2252
# cp /home/user/_soft/8.3.10.2252/deb64.tar.gz /var/lib/lxc/xp962/rootfs/home/ubuntu/8.3.10.2252/

Старт контейнера
# lxc-start -n xp962 -d

Посмотреть ip
# lxc-ls -f

# ssh ubuntu@xp962
# systemctl status postgresql
# netstat -atn|grep 0.0.0.0:54

# apt-get install imagemagick -y
Строка ниже срабатывает далеко не всегда
# apt-get install ttf-mscorefonts-installer -y
# fc-cache -f -v
------------------------------------------------------------
Альтернативно:
# apt-get install wget -y
# mkdir /home/ubuntu/Downloads
# wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb -P /home/ubuntu/Downloads
# apt install /home/ubuntu/Downloads/ttf-mscorefonts-installer_3.6_all.deb
# fc-cache -f -v
------------------------------------------------------------


# cd /home/ubuntu/8.3.10.2252/# tar xvzf deb64.tar.gz
# dpkg -i 1c*.deb
# apt-get -f install
# apt autoremove -y
# cd ..
# rm -R /home/ubuntu/8.3.10.2252
# chown -R usr1cv8:grp1cv8 /opt/1C
Зададим пароль pass
# passwd usr1cv8
# service srv1cv83 start
# service srv1cv83 status
!!!# service srv1cv83 restart

netstat -atn|grep 0.0.0.0:15
netstat -atn|grep 0.0.0.0:54

Сохраним без базы.

# poweroff

Поскольку сервер 1с запускался нужно
почистить

# rm -R /var/lib/lxc/xp962/rootfs/home/usr1cv8/.1cv8

Сохранение контейнера xp962
# cd /var/lib/lxc/
# tar -cvzf xp962.tar.gz ./xp962

Восстановление контейнера
!!!# cd /var/lib/lxc
!!!# tar xvzf xp962.tar.gz

!!!Старт контейнера
!!!# lxc-start -n xp962 -d

!!!Посмотреть ip
!!!# lxc-ls -f


Клонирование контейнера с заменой кластера 1с
Клонировать контейнер
# lxc-clone -o xp962 -n xp962_1
Почистить кластер 1с
!!!# rm -R /var/lib/lxc/xp962_1/rootfs/home/usr1cv8/.1cv8
Создадим базу (база подхватится из клонируемого контейнера):

Старт контейнера
# lxc-start -n xp962_1 -d


Посмотреть ip
# lxc-ls -f

Создадим базу (база подхватится из клонируемого контейнера):




# poweroff
Сохранение контейнера xp962_1
# cd /var/lib/lxc/
# tar -cvzf xp962_1.tar.gz ./xp962_1

Старт контейнера
# lxc-start -n xp962_1 -d

Посмотреть ip
# lxc-ls -f





PostgreSQL - реальная альтернатива для высоконагруженных систем на базе 1С

# nano /etc/postgresql/9.6/main/postgresql.conf
ssl = false
autovacuum = on
autovacuum_max_workers =3
Autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.01
autovacuum_analyze_scale_factor = 0.05
online_analyze.enable = on
fsync = on
synchronous_commit = off

# reboot

Тест показал 38 попугаев.

Настройки ниже  ускорения не дали.

Configuration calculator for PostgreSQL



# nano /etc/postgresql/9.6/main/postgresql.conf 
 
max_connections = 20
shared_buffers = 4GB
effective_cache_size = 12GB
work_mem = 209715kB
maintenance_work_mem = 1GB
min_wal_size = 2GB
max_wal_size = 4GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100


PostgreSQL в 1С:Предприятии и в облачной системе 1С:Fresh

•fsync По умолчанию включен – при COMMIT данные пишутся из кэша ОС на диск При использовании RAID-массивов можно отключить
•effective_cache_size
•Рекомендуемое значение – не менее 50% объема RAM
•Сервер
•4 - 512 Gb RAM
•2 - 256 CPU cores
•RAID 0-1 или SSD
•Отключить HyperThreading
•Отключить Energy Saving
•Запретить своппинг разделяемой памяти SYSV/posix
•shared_buffers = RAM / 4
•temp_buffers = 256MB
•work_mem = RAM / 32..64 или 32MB..128MB
•maintenance_work_mem = RAM /1 6..32
или work_mem * 4
или 256MB..4GB
•effective_cache_size = RAM - shared_buffers
•effective_io_concurrency = 2
•Для одиночного диска = 1, для RAID - 2 или больше
•autovacuum = on
•autovacuum_max_workers = NCores / 4..2 но не меньше 4
--------------------------------------------------------------------------------------------------------------
Если развернуть контейнер на другом hoste PostgreSQL не запускается.
# systemctl restart postgresql.service
# journalctl
май 15 08:00:09 xp962_1 postgresql@9.6-main[733]: Error: The cluster is owned by group id 115 which does not exist

# id -u postgres
108
# userdel postgres

# getent group postgres
postgres:x:114:

# groupmod -g 115 postgres



# getent group postgres
postgres:x:115:


 
adduser -UID 110 postgres
 
# chown -R postgres:postgres /var/lib/postgresql

Вообщем не помогает.
Поробуем так:
# service postgresql stop
# su - postgres
$ cd /var/lib/postgresql/9.6/
echo "`date +"%Y-%m-%d_%H-%M-%S"`

$ tar -cvzf main_backup-`date +%Y-%m-%d_%H-%M-%S`.tgz main
!!!$ tar -cvzf main_backup-`date +%s`.tgz main
$ rm -rf main
!!!$ mkdir main
!!!$ chmod go-rwx main

# apt-get purge postgresql-pro-1c-9.6 -y
# apt-get install postgresql-pro-1c-9.6 -y
# su - postgres
$ psql -l
$ psql
q
Далее наберем
\password
введем два раза новый пароль pass
и наберем команду
\q
для выхода.
$ exit
Обратите внимание, что данный пароль устанавливается для внутреннего пользователя базы данных, а не для одноименного пользователя операционной системы Ubuntu.
Проверим, корректно ли запущен и работает наш сервер PostgreSQL который нам нужен для дальнейшего развертывания базы данных. Выполним
# netstat -atn|grep 0.0.0.0:54
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
Мы должны получить строку с номером порта (обычно 5432)/
# ps ax | grep postgres
$ ps ax | grep postgres
 2142 ?        S      0:00 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf
 2144 ?        Ss     0:00 postgres: 9.6/main: checkpointer process
 2145 ?        Ss     0:00 postgres: 9.6/main: writer process
 2146 ?        Ss     0:00 postgres: 9.6/main: wal writer process
 2147 ?        Ss     0:00 postgres: 9.6/main: autovacuum launcher process
 2148 ?        Ss     0:00 postgres: 9.6/main: stats collector process
 2191 pts/4    S      0:00 su - postgres
 2222 pts/4    S+     0:00 grep postgres

# netstat -nlt
Все работает, теперь осталось восстановить кластер из архива:
# service postgresql stop
# su - postgres
$ cd /var/lib/postgresql/9.6/
$ tar -cvzf main_backup-`date +%s`.tgz main
$ rm -rf main
!!!$ mkdir main
$ tar xvzf main_backup-1494840424.tgz
!!!$ chmod go-rwx main
$ psql -l

# rm -R /home/usr1cv8/.1cv8
# service srv1cv83 restart
# netstat -atn|grep 0.0.0.0:15
# netstat -atn|grep 0.0.0.0:54
При подключении из 1с нужно заново создать
базу demo c теми же параметрами.
https://serveradmin.ru/bekap-i-vosstanovlenie-bazyi-1s-v-bd-postgresql/

.

Комментариев нет:

Отправить комментарий