(перенаправлено с «0000100104»)
Вопросы:Перенос БД на ОС отличные от Linux Astra SE
Материал из Юпитер-8
!!!ВНИМАНИЕ!!!
В случае, когда для проверки запуска PostgreSQL, был использован наш скрипт, в дальнейшем команда start/stop/restart для smpo-server будет иметь вид:
service smpo-server start/stop/restart
!!!ВНИМАНИЕ!! Данный алгоритм так же используется при переносе БД между ОС Astra SE 1.6 и 1.7, так как механизмы мандатных меток в этих версиях обличаются.
В ПО КРОС уже встроен механизм резервного копирования. Однако иногда возникает необходимость переноса базы данных на ОС отличную от Linux Astra SE или между версиями ОС Astra Linux. В связи с тем, что данная ОС выставляет мандатные метки, восстановление базы данных на компьютерах с ОС их не поддерживающих, затруднительно. В этом случае необходимо воспользоваться утилитами postgresql из терминала.
На основном компьютере необходимо выполнить:
1. Необходимо выйти из АРМ и остановить smpo-server : sudo systemctl stop smpo-server, либо sudo service smpo-server stop 2. Проверяем: завершились ли процессы - ps -aux | grep java 3. Если процессы не завершились, делаем принудительное завершение: sudo kill -9 <номер процесса> 4. Перед созданием резервной копии рекомендуется сделать обслуживание БД. 5. Далее делаем копию базы с отключением мандатных меток: sudo pg_dump -U postgres -h localhost -Fp --disable-macs --no-security-labels jupiter > /home/elesta/jupiter.sql. Каталог назначения для бэкапа определяет пользователь. Необходимо будет ввести пароль пользователя СУБД postgres. 6. Копируем файл jupiter.sql из каталога /home/elesta на внешний носитель и переносим на новый компьютер. Каталог назначения для бэкапа определяет пользователь. 7. Запустить КРОС для дальнейшей работы, если необходимо: sudo service smpo-server start
Дейстия на целевом компьютере:
1. Необходимо выйти из АРМ и остановить smpo-server : sudo systemctl stop smpo-server, либо sudo service smpo-server stop 2. Проверяем: завершились ли процессы - ps -aux | grep java 3. Если процессы не завершились, делаем принудительное завершение: sudo kill -9 <номер процесса> 4. Удалить существующую БД: sudo -u postgres psql -c "DROP DATABASE jupiter;" 5. Создать чистую БД: sudo -u postgres psql -c "CREATE DATABASE jupiter;" 6. Восстановление базы возможно из утилиты pgAdmin или в командной строке: sudo psql -h localhost -U postgres -d jupiter < /home/elesta/jupiter.sql. Необходимо будет ввести пароль пользователя СУБД postgres. Ещё раз напоминаем, что при восстановлении БД база jupiter должна быть создана и пустой. 7. Для запуска ПО необходимо выполнить: sudo systemctl start smpo-server, либо sudo service smpo-server start