PostgreSQL для 1с. Как перенести каталог с базами на другой сервер?
Всех приветствую!
После сбоя на сервере Red OS перестала стартовать служба postgres для 1с.
На этом сервере важна одна база 1С на postgresSQL, так как я нормально выгрузить информационную базу не могу, я скопировал каталог папки base и global и перенёс на работающий сервер на Windows 2019 с такой же версией Postgres SQL для 1С.
PgAdmin не хочет заходить после замены каталога base и global и выдаёт "connection failed: :1), port 5432 failed: FATAL: invalid page in block 0 of relation global/1260".
Кто сталкивался с такой проблемой? Как правильно перенести?
переноса этих каталогов недостаточно, вы таким образом перенесли только часть базы. если переносите, то нужно делать это со всем каталогом целиком, со всеми файлами и подкаталогами, а не только подкаталоги base и global (в виде исключения можно не трогать каталог log). также возможно потребуется "подогнать" конфиг postgresql.conf под реалии новой машины.
FATAL: invalid page in block 0 of relation global/1260".
собственно битая база, как результат лишь частичного переноса. как писал выше, переносите целиком.
если переносите с Linux на другой Linux, архитектура процессора остаётся той же самой и версия библиотеки glibc не меняется, то всё должно заработать.
при переносе с x86-64 на x86 или наоборот работать не будет точно.
при переносе с Linux на Windows вроде бы говорят что работает, но я практически уверен, что перед запуском нужно сначала запустить сервер postgresql в single-mode и сделать reindex всех баз данных.
при переносе с Linux на Linux, но с разной версией glibc - аналогично предыдущему пункту, следует выполнить redinx всех баз данных в single-mode.
если уверены, что к СУБД никто после запуска сам не подключится и не начнёт с ней работать, можно и не в single-mode, а в обычном режиме.
в целом с Linux на Windows переносить не рекомендую, postgresql работает лучше под Linux.
а, ну и мажорная версия должна совпадать.
Вы не можете перенести базу данных, просто скопировав файлы сервера под управлением одной операционной системой на сервер с другой. Это можно сделать только через дамп. https://www.postgresql.org/docs/current/app-pgdump.html
И раз у вас исходная база не стартует, вариантов у вас не много:
1. Разбираться, почему не запускается и пытаться починить.
2. Восстанавливаться из бэкапа.
Когда есть свежие бэкапы, такие вопросы не возникают. Вот что в логах в Red OS.
2024-04-27 20:27:01.334 MSK [3477] ВАЖНО: система баз данных запускается
2024-04-27 20:27:01.337 MSK [912] СООБЩЕНИЕ: стартовый процесс (PID 1070) был завершён по сигналу 6: Аварийный останов
2024-04-27 20:27:01.338 MSK [3478] ВАЖНО: система баз данных запускается
2024-04-27 20:27:01.369 MSK [912] СООБЩЕНИЕ: прерывание запуска из-за ошибки в стартовом процессе
2024-04-27 20:27:01.602 MSK [912] СООБЩЕНИЕ: система БД выключена