Как переместить БД Postgres из одного кластера Kubernetes в другой - PullRequest
1 голос
/ 15 июня 2019

У меня есть большая (300 ГБ) база данных Postgres, работающая на кластере GKE (Stateful Set, SSD Volume). Мне нужно переместить эту БД в другой кластер GKE.

Какой самый простой способ сделать это?

Я пытался сделать это с помощью трубопровода pg_dump / pg_restore, но это занимает вечно, и по некоторым причинам не все ограничения / триггеры были воссозданы.

Есть ли какой-нибудь правильный способ корректно "отключить" сервер Postgres, работающий в Kubernetes, и скопировать папку /pgdata напрямую (с одного тома на другой)?

Другие идеи? Тпй

1 Ответ

0 голосов
/ 19 июня 2019

У меня есть несколько идей (перечисленных от наиболее вероятных к наименьшим) о том, как вы можете подойти к этому:

  1. Не забудьте использовать правильный формат при использовании pg_dump.Простой формат по умолчанию может не работать должным образом с pg_restore.Попробуйте указать другой формат с помощью pg_dump или используйте psql -f xxx.tar вместо pg_restore.Помните, что это может занять некоторое время.

  2. Вы можете использовать инструмент, чтобы помочь вам в этом.Например pghoard .

  3. Вы можете сделать тарированную резервную копию своей БД и попытаться скопировать как объект через Google Cloud Storage.

  4. Вы можете попытаться создатьPVC вручную, прикрепите к ним pods и скопируйте ваш набор данных на эти pod.

  5. Наконец, вы можете попытаться создать контейнер Init и использовать его позже для вашего нового кластера.

Я предлагаю начать с пункта 1, так как считаю его наиболее вероятным решением.Если этого будет недостаточно, попробуйте позже пункты из списка.

Пожалуйста, дайте мне знать, если это помогло.

...