четверг, 19 сентября 2019 г.

Обновление PostgreSQL от 1С ubuntu 18.04

Обновление кластера PostgreSQL

Делаем dump баз, останавливаем 1с :
$ sudo nano /root/backup1.sh

#!/bin/sh -e
BACKUP_DIR="/backup/pg_dump"
#BACKUP_DIR="/backups/pg_dump"
cd $BACKUP_DIR
echo "====================================================================" > $BACKUP_DIR/backup.log
# останавливаем сервер 1С
echo "останавливаем сервер 1С"
sudo systemctl stop srv1cv8-ras.service
sudo systemctl stop  srv1cv83.service
echo "состояние сервера 1С"  >> $BACKUP_DIR/backup.log
sudo systemctl status  srv1cv83.service | grep 'Active:' >> $BACKUP_DIR/backup.log
echo "--------------------------------------------------------------------" >> $BACKUP_DIR/backup.log
# Устанавливаем дату
DATA=`date +"%Y-%m-%d_%H-%M-%S"`
DATA_NAME=`date +"%Y-%m-%d_%H-%M-%S"`
echo "$DATA Size database file: " >> $BACKUP_DIR/backup.log
sudo du -h -s /var/lib/postgresql/10/main/base  >> $BACKUP_DIR/backup.log
echo "--------------------------------------------------------------------" >> $BACKUP_DIR/backup.log
# делаем  backup
DB_BASE=`sudo /bin/su postgres -c "/usr/bin/psql -qAt -c 'SELECT * FROM pg_database;'" | \
     cut -d"|" -f1 | /bin/grep -v template | /bin/grep -v postgres`
#DB_BASE="demo test" #конкретные базы
#DB_BASE="" #пропустить
echo $DB_BASE
for DB_NAME in $DB_BASE
 do
     DATA=`date +"%Y-%m-%d_%H-%M-%S"`
     # Записываем информацию в лог с секундами
     echo "$DATA Начало backup базы ${DB_NAME}" >> $BACKUP_DIR/backup.log
     # Бэкапим базу данных demo и сразу сжимаем
     echo "$DATA Начало backup базы ${DB_NAME}"
     sudo /bin/su postgres -c "pg_dump -Fc ${DB_NAME}"  > $BACKUP_DIR/${DB_NAME}_$DATA_NAME.dump
     DATA=`date +"%Y-%m-%d_%H-%M-%S"`
     if [ $? -ne 0 ]
     then
         echo "$DATA Ошибка завершения backup для базы ${DB_NAME}"
         echo "$DATA Ошибка завершения backup для для базы ${DB_NAME}" >> $BACKUP_DIR/backup.log
         exit
     else
          echo "$DATA Успешное завершение backup для базы ${DB_NAME}"
          echo "$DATA Успешное завершение backup для базы ${DB_NAME}" >> $BACKUP_DIR/backup.log
     fi
     echo "--------------------------------------------------------------------" >> $BACKUP_DIR/backup.log
done
# запускаем сервер 1С
#echo "Запускаем сервер 1С"
#sudo systemctl start  srv1cv83.service
#sudo systemctl start srv1cv8-ras.service
echo "Состояние сервера 1С"  >> $BACKUP_DIR/backup.log
sudo systemctl status  srv1cv83.service | grep 'Active:' >> $BACKUP_DIR/backup.log
echo "--------------------------------------------------------------------" >> $BACKUP_DIR/backup.log
echo "Закончено"
cat $BACKUP_DIR/backup.log >> $BACKUP_DIR/backupall.log
cat $BACKUP_DIR/backup.log | mutt -s "backup" root

Сохранить.

$ sudo sh /root/backup1.sh

$ sudo systemctl status  srv1cv83.service


$ dpkg -l | grep postgresql-client-10
hi  postgresql-client-10                  10.8-18.1C                        amd64        front-end program                                    s for PostgreSQL 10

$ sudo systemctl stop postgresql.service
$ mkdir /home/user/test
В папку /test положить файлы:

 postgresql_10.9_5.1C_amd64_deb.tar.bz2

$ mkdir -p /tmp/post
$ cp /home/user/test/postgresql_10.9_5.1C_amd64_deb.tar.bz2 /tmp/post/
$ cd /tmp/post
$ tar -xvf postgresql_10.9_5.1C_amd64_deb.tar.bz2
$ ls 
$ cd postgresql-10.9-5.1C_amd64_deb
$ ls
# список файлов:
#libpq5_10.9-5.1C_amd64.deb  postgresql-10_10.9-5.1C_amd64.deb  postgresql-client-10_10.9-5.1C_amd64.deb

$ sudo dpkg -i *.deb
$ dpkg -l | grep 10.9-5.1C | awk -F' ' '{print $2}' | sudo xargs apt-mark hold
#libpq5 помечен как зафиксированный.
#postgresql-10 помечен как зафиксированный.
#postgresql-client-10 помечен как зафиксированный.

$ sudo systemctl start postgresql.service
$ sudo systemctl status postgresql.service
$ sudo -u postgres reindexdb --all
$ sudo -u postgres vacuumdb --all --analyze --full

$ sudo systemctl start  srv1cv83.service
$ sudo systemctl status  srv1cv83.service
$ sudo systemctl start srv1cv8-ras.service
$ sudo systemctl status srv1cv8-ras.service





# обновление 1с
$ sudo systemctl stop srv1cv83.service
$ sudo systemctl stop srv1cv8-ras.service 
$ mkdir -p /tmp/1ctmp
$ cd /tmp/1ctmp
$ ls /home/user/test/
$ cp /home/user/test/deb64_8_3_15_1656.tar.gz /tmp/1ctmp
$ tar xvzf deb64_8_3_15_1656.tar.gz
$ sudo dpkg -i 1c-enterprise83-common_8.3.15-1656_amd64.deb
$ sudo dpkg -i 1c-enterprise83-server_8.3.15-1656_amd64.deb
#$ sudo dpkg -i 1c-enterprise83-ws_8.3.15-1656_amd64.deb
#$ sudo dpkg -i 1c-enterprise83-crs_8.3.15-1656_amd64.deb
$ sudo systemctl start  srv1cv83.service
$ sudo systemctl status  srv1cv83.service
$ sudo systemctl start srv1cv8-ras.service
$ sudo systemctl status srv1cv8-ras.service


Для 8.3.15 делается один раз

Запуск службы сервера администрирования RAS

$ sudo nano /etc/systemd/system/srv1cv8-ras.service

Вставить:

[Unit]
Description=1C:Enterprise Remote Administration Service
After=network.target remote-fs.target nss-lookup.target
Requires=srv1cv83.service

[Service]
Type=simple
#Если нужно несколько серверов, нужно задать адрес агента сервиса
#ExecStart=/opt/1C/v8.3/x86_64/ras cluster --port=1545 localhost:1540
ExecStart=/opt/1C/v8.3/x86_64/ras cluster --port=1545
KillSignal=SIGINT
PrivateTmp=true
Restart=on-failure
RestartSec=5
User=usr1cv8
Group=grp1cv8

[Install]
WantedBy=multi-user.target

Сохранить.


#$ sudo systemctl daemon-reload
$ sudo systemctl enable srv1cv8-ras.service
$ sudo systemctl start srv1cv8-ras.service
$ sudo systemctl status srv1cv8-ras.service


Удаление кластера 1с

$ sudo systemctl stop srv1cv83.service
$ sudo systemctl stop srv1cv8-ras.service
$ sudo rm -R /home/usr1cv8/.1cv8/1C/1cv8
$ sudo systemctl start  srv1cv83.service
$ sudo systemctl status  srv1cv83.service
$ sudo systemctl start srv1cv8-ras.service
$ sudo systemctl status srv1cv8-ras.service

Удаление баз PostgreSQL

$ sudo su postgres -c "psql -c 'DROP DATABASE demo;'"
$ sudo su postgres -c "psql -c 'DROP DATABASE demo1;'"   


 


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

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