2. Перенос (клонирование) сервера приложений



Резервное копирование (англ. backup copy) — процесс создания копии данных на носителе (жёстком диске, дискете и т. д.), предназначенном для восстановления данных в оригинальном или новом месте их расположения в случае их повреждения или разрушения.

Касса

Подготовка кассы

1. Подключитесь к кассе по SSH (tc/324012).

2. Запускаем Midinight Commander
mc

3. Удаляем лишние данные c полной очисткой следующих папок:
- Патчи для обновления: crystal-cash\updates
- Бэкапы, которые делались при обновлениях: crystal-cash\backup
- Логи кассы: crystal-cash\logs

Создание резервной копии

Несколько вариантов:
1. Автоматический (Недостаток: сравнительно большой размер файлов, так как архивы делаются без сжатия)
- Выполните команду: 
cash backup

- Автоматически будут остановлены все службы, сделаны 2 архива БД и кассового модуля:
/storage/crystal-cash.tar
/storage/postgres-db.tar

- Иногда кассовый модуль не загружается после того как вы сделали бэкап. 
В этом случае выполните команды: 
cash reboot

При необходимости бэкапы с кассы можно сохранить подключившись \\IP_кассы\storage через win-компьютер или по WinSCP.

2. Ручной (Недостаток: требуется больше действий, но архив получается меньше)
Выполнить команду, для полной остановки процессов кассового модуля:
killall java 

Выполнить команду:
sudo tar -czf /mnt/sda1/tce/storage/ccash-10X.tgz /mnt/sda1/tce/storage/crystal-cash /mnt/sda1/pgsql
Дождитесь выполнения архивации. Архив получается в 3-4 раза легче чем при автоматическом архивировании, но архивация в разы дольше.

Для того что бы касса продолжила работать необходимо выполнить команду: 
cash reboot

Восстановление данных на кассу

1. Установите чистую кассу с флешки, желательно той же версии что и была касса с которой снимали резервную копию. Настройте сеть.

2. Скопируйте архив(ы) на кассу. Подключиться можно по \\IP_кассы\storage через win-компьютер.

3. Удалите данные старой кассы, для этого откройте Midnight Commander командой 
sudo mc

4. Удалите все файлы папках:
/mnt/sda1/pgsql/data
/mnt/sda1/tce/storage/crystal-cash

5. В случае если архив выполнялся автоматически, то выполните команду 
cash restore

Если архив выполнялся в ручном режиме, то открыть его можно открыть в Midnight Commander, как обычную папку и скопировать необходимые файлы в папки:
/mnt/sda1/pgsql/data
/mnt/sda1/tce/storage/crystal-cash

6. Далее выполнить команду на перезагрузку кассы, чтобы она полностью перезагрузилась в рабочий режим:
cash reboot


Сервер

При резервном копировании сервера, необходимо учесть, что все данные и настройки хранятся в БД, и файлы спасать по большому счету смысла нет. Быстрее будет установить дистрибутив с «нуля», обновить патчем до нужной версии. После чего развернуть базу данных.

Резервное копирование сервера

1. Очистите очереди на сервере, так как файлы сохранять нет необходимости, то эти очереди никогда сами не разойдутся. Можно почистить их после восстановления. Очистить таблицы в БД set:
trs_file_packets_for_send - очередь настроек, кассиров на кассы.
cards_file_for_cashes - очередь карт с магазина на кассы.
cards_file_for_shops - очередь карт с центрума на магазины.
discounts_file_for_cashes - очередь акций с магазина на кассы.
discounts_file_for_shops - очередь акций с центрума на магазины.
un_cg_product_file_for_cashes - очередь товаров на кассы.
un_cg_product_file_for_shops - очередь товаров с центрума на магазины.
un_cg_rejected_product - отклоненные товары.

2. Остановите следующие службы сервера:
nginx
Set: Retail10 Server Configuration Manager
Setv10 Application Server
Postgresql-8.4 – PostgreSQL Server 8.4 - только если планируется копировать базу на файловом уровне.

3. Для резервного копирования файлов необходимо cохранить каталог с данными PostgreSQL^
- в ОС Windows: ..\PostgreSQL\8.4\data 
- в ОС Линукс /var/lib/pgsql/data

4. Для резервного копирования с помощью средств postgres. Подключитесь к БД сервера с помощью PgAdmin:

5. Правой кнопкой кликните по БД Set -> Резервная копия. Задайте путь сохранить файл дампа. В случае успеха процесс должен вернуть «код выхода 0».


Тоже самое проделайте с базами set_loyal и set_operday.

7. Если что-то настраивалось в файлах конфигурации, то можно сохранить или же придется их вновь настроить. 99% клиентов работает на стандартных настройках, поэтому делать бэкапы нет необходимости. Файлы, в которых могли быть произведены настройки находятся в: D:\SetRetail10\standalone\configuration\modules

Так же рекомендуется сохранить файл SetRetail10\bin\run.bat в нем указаны параметры памяти для запуска службы JBOSS. Во многих файлах прописан IP-адрес, поэтому, как правило настроить их заново проще.

8. На этом процесс резервного копирования сервера можно считать завершенным.

Восстановление данных сервера

1. Устанавливаем сервер той же версии что и сохраненная БД. При необходимости установите патчи до нужной версии.

2. Останавите службы:
nginx
Set: Retail10 Server Configuration Manager
Setv10 Application Server
Postgresql-8.4 - PostgreSQL Server 8.4 - Только если планируется восстанавливать базу на файловом уровне.

3. При восстановлении базы на файловом уровне замените папку data 
- в ОС Windows ..\PostgreSQL\8.4\data 
- в ОС Линукс /var/lib/pgsql/data

Файлы не должны пересекаться, поэтому сначала очистите папку data, а потом скопируйте данные из резервной копии.

4. При восстановлении базы с помощью средств postgres. Подключитесь к БД с помощью PgAdmin.

5. Переименуйте базы установленного сервера например set->set_old: для этого правой кнопкой мыши на базу -> Свойства, укажите имя  нажмите «ОК»:

6. Создайте новую базу set. Правой кнопкой, кликнув на «Базы», добавьте новую. Укажите имя “set”, остальные поля оставьте без изменений:

7. Правой кнопкой кликните на новую созданную базу, выберите "Восстановить" и укажите путь к вашей резервной копии. Нажмите «OK». Если все хорошо, будет возвращен "код выхода 0".

8. Проделайте аналогичные действия с базами set_operday и set_loyal.

9. Скопируйте файлы настроек, очистите очереди(если есть). Запустите службы сервера.

10. На этом восстановление сервера зваершено.


Также рекомендуем прочитать статью "Управление базами данных PostgreSQL с помощью pgAdmin"


Comments