Задать вопрос
Viji
@Viji
DevOps Engineer

Как устранить ошибку связанную с docker образом PostgreSQL?

Привет всем,

перенесли image базы данных нв другую машину. И там и там она создается из образа PostgreSQL12. По всей вероятности image:latest, т.к. никаких специальных tags в Docker не предусмотрено. К сожалению, база перестала открываться и выдает след ошибку в логах PostgreSQL контейнера docker:

The database cluster was initialized with CATALOG_VERSION_NO 201906161, but the server was compiled with CATALOG_VERSION_NO 201909212.

Как это можно исправить?

с уважением,
Вадим
  • Вопрос задан
  • 267 просмотров
Подписаться 1 Сложный 4 комментария
Решения вопроса 3
Тут пишут, что вы использовали/используете альфа версию БД. Если нет возможности сделать нормальный ps_dump и хочется работать здесь и сейчас, то посмотрите на той машине, где работает:
docker images | grep postgres
5dfc362925cbb317678239.png
Так вы можете узнать ID образа. И использовать его же для нового сервера.
Ответ написан
Комментировать
Viji
@Viji Автор вопроса
DevOps Engineer
Исправил, копированием образа PostgreSQL с др машины. Конечно, это извращение, но заработало.

docker save -o postres.tar postgres:12

на др машине
docker load -i postres.tar
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
Postgresql требует запуск сервера бинарниками скомпилированными ровно той же самой версии CATALOG_VERSION_NO что и был вызван initdb при инициализации datadir.
CATALOG_VERSION_NO активно изменяется в процессе разработки, никогда - после релиза major версии.

201909212 - заморожен для 12.0
201906161 - относится к 12beta2

Мы не гарантируем что beta версии будут бинарно совместимы с релизом. Если вы по глупости запустили в работу бета версию и теперь хотите оттуда достать данные - соберите и запустите кластер версии 12beta2. Затем pg_dumpall, поставить и инициализировать initdb релизной версии (12.1 сейчас), импортировать дамп туда.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы