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

SetMark ◾️ Перенос базы данных на другой сервер

Внимание

  1. Версия баз данных PostgreSQL на серверах должны полностью совпадать и быть 9.4.
  2. Версии ПО SetMark на новом и старом серверах должны быть идентичны.
  3. Сохранение и восстановление резервной копии необходимо производить только из командной строки через pg_dump.

Переносить базу данных можно кроссплатформенно: сделать резервную копию на сервере под управлением ОС Windows и развернуть под ОС Linux и наоборот.

Windows

1. Установите и настройте SetMark на новом сервере.

2. Остановите службу SetMark.

3. Откройте командную строку от прав Администратора.

4. Перейдите в папку, где расположен сервер СУБД PostrgreSQL.

cd "C:\Program Files\PostgreSQL\9.4\bin"

5. Выполните команды для создания резервной копии.  Начнется процесс бэкапирования. Дождитесь его окончания.

set PGPASSWORD=postgres

pg_dump.exe --host localhost --port 5432 --username postgres --format custom --blobs --verbose --file set_mark.backup "set_mark" > set_mark_backup.log 2>&1

6. В результате бэкапирования создадутся два файла:

  • set_mark.backup - файл резервной копии SetMark
  • set_mark_backup.log - лог-файл бэкапирования

7. Откройте файл set_mark_backup.log и проверьте, что он не содержит ошибок, только в этом случае бэкап базы данных можно переносить на новый сервер.

8. На новом сервере остановите службу SetMark.

9. Запустите командную строку от прав Администратора.

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

11. Выполните команды по восстановлению баз данных на новом сервере.

set PGPASSWORD=postgres
psql.exe --host localhost --port 5432 --username postgres --dbname set_mark -t -c "drop schema public cascade"
psql.exe --host localhost --port 5432 --username postgres --dbname set_mark -t -c "create schema public"

psql.exe --host localhost --port 5432 --username postgres --dbname set_mark -t -c "GRANT ALL ON SCHEMA public TO postgres"
psql.exe --host localhost --port 5432 --username postgres --dbname set_mark -t -c "GRANT ALL ON SCHEMA public TO public"

12. Скопируйте файл бэкапа в папку с СУБД PostgreSQL на новый сервер.

13. Выполните команду на восстановление бэкапа из архива с резервной копии.

set PGPASSWORD=postgres
pg_restore.exe --host localhost --port 5432 --username postgres --dbname "set_mark" --jobs 4 --verbose "set_mark.backup" >restore_setmark.log 2>&1

14. Откройте файл restore_setmark.log в папке сервера СУБД PostgreSQL.

Проверьте, что лог-файл не содержит ошибок.

15. Проверьте, что таблицы есть в базе данных.

16. Запустите службу SetMark.

17. Проверьте лог-файл службы  SetMark и что в нём отсутствуют ошибки.

Linux

1. Установите и настройте SetMark на новом сервере.

2. Остановите службу SetMark на старом сервере.

systemctl stop setmark.service

3. Выполните команды для создания резервной копии. Начнется процесс бэкапирования. Дождитесь его окончания.

PGPASSWORD=postgres
export PGPASSWORD
pg_dump --host localhost --port 5432 --username postgres --format custom --blobs --verbose --file set_mark.backup "set_mark" > set_mark_backup.log 2>&1

4. В результате бэкапирования создадутся два файла:

  • set_mark.backup - файл резервной копии SetMark
  • set_mark_backup.log - лог-файл бэкапирования

5. Откройте файл set_mark_backup.log и проверьте, что он не содержит ошибок, только в этом случае бэкап базы данных можно переносить на новый сервер.

6. Скопируйте файл бэкапа в папку с СУБД PostgreSQL на новый сервер.

7. Выполните команды по восстановлению базы данных на новом сервере.

psql --host localhost --port 5432 --username postgres --dbname set_mark -t -c "drop schema public cascade"
psql --host localhost --port 5432 --username postgres --dbname set_mark -t -c "create schema public"
psql --host localhost --port 5432 --username postgres --dbname set_mark -t -c "GRANT ALL ON SCHEMA public TO postgres"
psql --host localhost --port 5432 --username postgres --dbname set_mark -t -c "GRANT ALL ON SCHEMA public TO public"
pg_restore --host localhost --port 5432 --username postgres --dbname "set_mark" --jobs 4 --verbose /root/set_mark.backup >restore_setmark.log 2>&1

8. Откройте файл restore_setmark.log в папке сервера СУБД PostgreSQL.

Проверьте, что лог-файл не содержит ошибок.

9. Проверьте лог-файл службы SetMark и, что в нём отсутствуют ошибки.

Ошибки при восстановлении базы данных

В некоторых случаях при восстановлении базы данных set_mark может возникнуть ошибка при назначении прав для пользователя setmark на новом сервере.

Данная ошибка на новом сервере означает, что при установке SetMark не был создан пользователь СУБД setmark. В данном случае ошибка не является критической, но, чтобы её избежать можно выполнить команды по созданию данного пользователя.

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

Windows
set PGPASSWORD=postgres
psql.exe --host localhost --port 5432 --username postgres --dbname set_mark -t -c "create user setmark with encrypted password 'postgres'"
psql.exe --host localhost --port 5432 --username postgres --dbname set_mark -t -c "grant all privileges on database set_mark to setmark"
Linux
PGPASSWORD=postgres
export PGPASSWORD
psql --host localhost --port 5432 --username postgres --dbname set_mark -t -c "create user setmark with encrypted password 'postgres'"
psql --host localhost --port 5432 --username postgres --dbname set_mark -t -c "grant all privileges on database set_mark to setmark"

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

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