Публичное пространство

Обновление сервера с версии PostgreSQL 8.4 до 9.4 для серверов ОС Linux

Инструкция не предназначена для обновления PostgreSQL 9.4 на более новые версии (9.5, 9.6...11)!

Используйте инструкцию только для обновления с версии 8.4 до 9.4!

Описание процесса

Данный процесс предусматривает перевод сервера PostgreSQL с версии 8.4 до версии 9.4.
Обращаем ваше внимание на то, что обновление сервера PostgreSQL должно осуществляться опытными ИТ-специалистами, обладающими базовыми навыками по администрированию Unix/Linux систем .

Данная инструкция применима только для сборок CentOS SetRetail10!

Этапы

Дистрибутивы

postgresql94-9.4.5-1загрузить
postgresql94-server-9.4.5-1загрузить
postgresql94-contrib-9.4.5-1загрузить
postgresql94-libs-9.4.5-1загрузить

Инструменты

Средство для бэкапирования БД
Средство для восстановления БД

Подключение к серверу для управления командной строкой

Для работы с командной строкой рекомендуется использоваться PuTTy, если подключение будет осуществляться из ОС Windows.

1. Установите тип кодировки UTF8.

2. Введите IP-адрес сервера и нажмите кнопку "Open",

3. Нажмите кнопку "Да".

4. Введите логин и пароль. Обратите внимание, во время ввода пароля, этот процесс не отображается.

5. Если Вам удобно использовать для работы с файловой системой менеджеры, тогда наберите команду mc

Откроется Midnight Commander для работы с файловой системой

Выход из Midnight Commander - клавиша F10.

Подготовка к обновлению

1. Перед загрузкой дистрибутивов и в целом для начала процесса установки убедитесь, что Вам действительно стоит переходить на версию PistgreSQL 9.4.
Проверьте, что у Вас установлен PostgreSQL версии 8.4

Наберите команду:

psql --version

Результатом вывода команды должна стать версия 8.4.ХХ

2. Перевод на новую версию PostgreSQL 9.4 осуществляется только для 64-х битных операционных систем.
Проверьте частоту процессора командой uname -m

Результатом вывода команды должна стать версия x86_64

3. Обязательно проверьте наличие свободного дискового пространства, оно должно быть достаточным, в зависимости от размеров вашей БД, так как в следующих шагах восстановление базы данных будет в новую версию сервера СУБД PostgreSQL 9.4, и при этом, версия PostgreSQL 8.4 будет установлена на момент развертывания архивов БД.

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

smartctl -l /dev/sda

Проверьте свободное место  место ваших разделов командой

df -h

4. Следуйте только шагам описанным в данной инструкции!

Загрузка дистрибутивов на сервер

Создайте папку для дистрибутивов:

mkdir /var/lib/jboss/pg9/

Загрузка напрямую из с сети интернет

Загрузить дистрибутивы можно сразу на сервер, если он имеет доступ к сети Интернет, используя команды

wget -P /var/lib/jboss/pg9/ http://setretail10.crystals.ru/postgresql/Linux/postgresql94-9.4.5-1PGDG.rhel7.x86_64.rpm
wget -P /var/lib/jboss/pg9/ http://setretail10.crystals.ru/postgresql/Linux/postgresql94-server-9.4.5-1PGDG.rhel7.x86_64.rpm
wget -P /var/lib/jboss/pg9/ http://setretail10.crystals.ru/postgresql/Linux/postgresql94-contrib-9.4.5-1PGDG.rhel7.x86_64.rpm
wget -P /var/lib/jboss/pg9/ http://setretail10.crystals.ru/postgresql/Linux/postgresql94-libs-9.4.5-1PGDG.rhel7.x86_64.rpm
wget -P /var/lib/jboss/pg9/ http://setretail10.crystals.ru/postgresql/Linux/RestoreImage.sh
wget -P /var/lib/jboss/pg9/ http://setretail10.crystals.ru/postgresql/Linux/SaveDBImage.sh


Загрузка с компьютера под управлением ОС Windows

1. Для копирования дистрибутивов воспользуйтесь инструментом WinSCP

2. Введите учетные данные, так как показано на изображении и нажмите кнопку "Login".

Нажмите кнопку "Yes".

Нажав, на клавишу F5 скопируйте дистрибутивы и инструменты на сервер

Обновление PostgreSQL для ОС Linux

1. Остановите службы SetRetail10:

Выполните команды:

service JBOSS_SVC stop
service SCM_SVC stop
service nginx stop

Отключите службы, выполнив следующие команды:

chkconfig JBOSS_SVC off
chkconfig SCM_SVC off
chkconfig nginx off

2. Установите настройки средства бэкапирования баз данных SetRetail10 для перевода БД, а затем сделайте резервные копии БД.

Откройте на редактирование средство бэкапирования SaveDMImage.sh.

По умолчанию папка для сохранения бэкапов БД /tmp, вы можете изменить её по своему желанию.
Также если у вас используется другой пароль к серверу СУБД PostgreSQL, установите его.

Запустите бэкапирование баз данных сервера

В зависимости от места расположения инструмента бэкапирования запустите SaveDBImage.sh

ВАЖНО! Процесс бэкапирования баз данных может занять продолжительное время от 10мин. до 2,5 часов в зависимости от размера данных.

Выполните команду:

sudo sh /var/lib/jboss/pg9/SaveDBImage.sh &

Наберите команду mc для перехода в папку, куда создаются архивы

Проверьте наличие файлов дампа БД.

Проверьте в лог-файлах бэкапирования, что оно отработало корректно

Убедитесь, что сохранение БД прошло без ошибок

3. Скопируйте файлы конфигурации сервера PostgreSQL pg_hba.conf и postgresql.conf в любую папку:

Сделайте бэкап основных компонентов сервера SetRetail10

4. Остановите и выключите службу PostgreSQL 8.4.

service postgresql-8.4 stop

chkconfig postgresql-8.4 off

4.1. Переименуйте папку с PostgreSQL 8.4.

mv /var/lib/pgsql /var/lib/pgsql_8.4

5. Установите СУБД PostgreSQL 9.4. используя дистрибутивы выше.

Установите пакеты в следующем порядке, используя команды:

1. postgresql94-libs-9.4.5-1

yum localinstall -y /var/lib/jboss/pg9/postgresql94-libs-9.4.5-1PGDG.rhel7.x86_64.rpm --nogpgcheck

2. postgresql94-9.4.5-1

yum localinstall -y /var/lib/jboss/pg9/postgresql94-9.4.5-1PGDG.rhel7.x86_64.rpm --nogpgcheck

3. postgresql94-contrib-9.4.5-1

yum localinstall -y /var/lib/jboss/pg9/postgresql94-contrib-9.4.5-1PGDG.rhel7.x86_64.rpm --nogpgcheck

4. postgresql94-server-9.4.5-1

yum localinstall -y /var/lib/jboss/pg9/postgresql94-server-9.4.5-1PGDG.rhel7.x86_64.rpm --nogpgcheck

5. Выполните следующие пост-инсталляционные команды
Выполните команду для инициализации сервера

/usr/pgsql-9.4/bin/postgresql94-setup initdb

Запустите сервере СУБД PostgreSQL 9.4. командой

service postgresql-9.4 start

Задайте пароль для доступа к серверу пользователя PostgreSQL

echo "alter user postgres password 'postgres';" | su - postgres -c "psql -U postgres"

6. Восстановите настройки сервера PostgreSQL.

Внимательно! Скопируйте файлы конфигурации PostgreSQL от версии 8.4.

Измените переменную среды на новую версию PostgreSQL 9.4.

Откройте Midnight Commander, набрав команду mc

Перейдите в папку /etc и откройте на редактирование файл environment, нажав клавишу F4 .

Измените наименование папки .../pgsql- 8.4 на pgsql- 9.4

Перезапустите службу postgresql-9.4 командой:

service postgresql-9.4 restart

Проверьте, что подключение к БД есть командой:

psql -U postgres

Для выхода из консоли наберите команду \q и нажмите клавишу Enter

Добавьте автоматический запуск службы postgresql-9.4 командой:

chkconfig postgresql-9.4 on

7. Восстановите данные БД, используя инструмент.

Откройте Midnight Commander командой mc и перейдите в папку /var/lib/jboss/pg9 для редактирования настроек инструмента восстановления БД

Укажите папку, где содержаться файлы архивов БД, а также пароль к серверу СУБД

Выполните команду для запуска процесса восстановления

sudo sh /var/lib/jboss/pg9/RestoreImage.sh &

Наберите команду mc для запуска Midnight Commander и посмотрите лог-файлы восстановления БД

В логе R_set.log будет отображено сообщение о том, что язык plpgsql уже существует, этот не несёт никакой критично для процесса восстановления данных так как, такой язык уже есть в PostgreSQL 9.4

Откройте остальные лог-файлы восстановления БД и убедитесь, что процесс не содержит ошибок.

8. Очистите от файлов временные папки сервера SetRetail10.

rm -rf /var/lib/jboss/standalone/data/*
rm -rf /var/lib/jboss/standalone/tmp/auth/*
rm -rf /var/lib/jboss/standalone/tmp/vfs/*
rm -rf /var/lib/jboss/standalone/tmp/work/*
rm -rf /var/lib/jboss/standalone/log/*.*
rm -rf /var/lib/jboss/standalone/deployments/Set10.ear.*

9. Включите службы SetRetail10.

chkconfig JBOSS_SVC on
chkconfig SCM_SVC on
chkconfig nginx on

Перезагрузите сервер полноcтью командой 

sudo reboot

10. Проверьте, что сервер запускается корректно.

Наличие файла Set10.ear.deployed свидетельствует о корректном запуске сервера

Также проверьте, что log-файл сервера выглядит корректно.

Проверьте, запускается ли визуализация сервера:

Обязательно проверьте, что у Вас работает весь функционал бизнес-процессов вашего магазина такой как:
- Транспорт данных в ERP.
- Транспорт данных от сервера на кассы и обратно.
- Работы бонусной и купонной систем.

11. Удаление PostgreSQL 8.4.

ВНИМАНИЕ! Данный шаг можно выполнять, только после того, как вы полностью убедились, что все бизнес-процессы магазина функционируют также, как и до обновления на PostgreSQL 9.4. Если вы, в этом не уверены, тогда не выполняйте данный шаг и обратитесь в нашу службу поддержки и передайте нам информацию по вашему серверу с помощью инструмента.

Шаги по удалению выполняются строго по порядку!

11.1 Остановите службы SetRetail10 и PostgreSQL 9.4

service JBOSS_SVC stop
service SCM_SVC stop
service nginx stop
service postgresql-9.4 stop

11.2. Переименуте текущей рабочей каталог PostgreSQL 9.4 другим именем

mv /var/lib/pgsql /var/lib/pgsql_9.4

11.3. Переименуйте папку с PostgreSQL 8.4 обратно в рабочее имя

mv /var/lib/ pgsql_8.4 /var/lib/pgsql

11.4. Удалите PostgreSQL 8.4

Выполните команду:

rpm -e $(rpm -qa | grep postgresql84) --nodeps

Дождитесь окончания процесса удаления PostrgeSQL 8.4.

Удалите папку всю папку pgsql

rm -rf /var/lib/pgsql

11.5. Переименуйте обратно папку с PostgreSQL 9.4 в его рабочую:

mv /var/lib/pgsql_9.4 /var/lib/pgsql

11.6 Запустите службы SetRetail10 и службу PostgreSQL 9.4

service postgresql-9.4 start
service SCM_SVC start
service nginx start
service JBOSS_SVC start

Дополнительные средства диагностики

Проверить статусы служб

systemctl status postgresql-9.4

systemctl status nginx

systemctl status JBOSS_SVC

systemctl status SCM_SVC

Проверить наличие процесса JAVA в памяти

ps u -C java

Служба JBOSS_SVC не запускается

1. Выполните команду sh /var/lib/jboss/bin/standalone.sh для того, чтобы увидеть процесс запуска службы на экране и отображения возможных ошибок

2. П роверьте, что в конфигурационных файлах нет сторонних символов в топологии магазина и его IP-адресе

Если такая ситуация присутствует, тогда восстановите сохраненные копии файлов и папок bin и stanadalone

3. Если при запуске сервера идет сообщение о том, что нет доступа на чтение к какой-либо из папок, то дайте пользователю jboss соответствующие права, например

chown jboss /var/lib/jboss/tmp/vfs

4. Если, в ыполнив команду sh /var/lib/jboss/bin/standalone.sh появится ошибка вида Address already in use, тогда выполните повторно перезагрузку сервера командой sudo reboot

Обращение в службу поддержки

Если у вас случился инцидент и он не попадает не под один из выше перечисленных способов.

1. Воспользуйтесь специальным и нструментом для сбора информации по серверу
2. Обратитесь службу поддержки СSI

Откат обновления обратно на PostgreSQL 8.4.

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

1. Остановите все службы SetRetail10 и PostgreSQL 9.4.

Выполните команды:

service JBOSS_SVC stop
service SCM_SVC stop
service nginx stop

2. Остановите и отключите службу PostgreSQL 9.4

service postgresql-9.4 stop

chkconfig postgresql-9.4 off

3. Измените переменную среды на версию PostgreSQL 8.4.

Откройте Midnight Commander, набрав команду mc

Перейдите в папку /etc и откройте на редактирование файл environment, нажав клавишу F4 .


Измените наименование папки .../pgsql-9.4 на pgsql-8.4

4. Удалите временные файлы сервера магазина

rm -rf /var/lib/jboss/standalone/data/*
rm -rf /var/lib/jboss/standalone/tmp/auth/*
rm -rf /var/lib/jboss/standalone/tmp/vfs/*
rm -rf /var/lib/jboss/standalone/tmp/work/*
rm -rf /var/lib/jboss/standalone/log/*.*
rm -rf /var/lib/jboss/standalone/deployments/Set10.ear.*

5. Переименуйте папку PostgreSQL 9.4 любым другим именем

mv /var/lib/pgsql /var/lib/pgsql_9.4

6. Верните папке c PostgreSQL 8.4. стандартное имя для работы СУБД сервера

mv /var/lib/pgsql_8.4 /var/lib/pgsql

7. Включите и запустите службу PostgreSQL 8.4

chkconfig postgresql-8.4 on
service postgresql-8.4 start

8. Перезагрузите сервер SetRetail10

sudo reboot

9. Наличие файла Set10.ear.deployed свидетельствует о корректном запуске сервера

Также проверьте, что log-файл сервера выглядит корректно.

Проверьте, запускается ли визуализация сервера:

Обязательно проверьте, что у Вас работает весь функционал бизнес-процессов вашего магазина такой как:
- Транспорт данных в ERP.
- Транспорт данных от сервера на кассы и обратно.
- Работы бонусной и купонной систем.

10. Воспользуйтесь инструментом для сбора информации по серверу и отправьте в нашу службу поддержки

© 1994-2023, ООО «Кристалл Сервис Интеграция».
Все права защищены..

Политика обработки персональных данных