Публичное пространство
Обновление сервера с версии 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, ООО «Кристалл Сервис Интеграция».
Все права защищены..