Публичное пространство
SetMark ◾️ Перенос базы данных на другой сервер
Внимание
- Версия баз данных PostgreSQL на серверах должны полностью совпадать и быть 9.4.
- Версии ПО SetMark на новом и старом серверах должны быть идентичны.
- Сохранение и восстановление резервной копии необходимо производить только из командной строки через 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 выполните следующие команды:
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"
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, ООО «Кристалл Сервис Интеграция».
Все права защищены..