Столкнулись с ситуацией, когда нам нужно объединить несколько небольших экземпляров postgres в один побольше.
Не могу понять, как реплицировать новые данные «старой» базы данных в «новую» базу данных, когда происходит замена
Я попытаюсь упростить это:
старое имя экземпляра БД - X
новый экземпляр БД - Y
X имеет 10 ГБ данных, и его дамп и восстановление занимает 15 ~ минут.
тем временем X получает больше данных (1-2 МБ)
** КАК заставить X реплицировать данные в Y, чтобы эти данные не потерялись? **
У меня есть этот небольшой скрипт для дампа и восстановления
## удаленная БД на удаленную БД
PGPASSWORD=$source_pass pg_dump -h $source_host -d $source_db_name -U $source_user -p $source_port > test.sql
psql postgres://$dest_user:$dest_pass@$dest_host:$dest_port/postgres -c "СОЗДАТЬ БАЗУ ДАННЫХ ${source_db_name}" \
-c "СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ ${source_user} С ПАРОЛЕМ '${source_pass}'" \
-c "ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ "${source_user}" С CREATEDB" \
|| echo "база данных уже существует"
psql postgres://$dest_user:$dest_pass@$dest_host:$dest_port/$source_db_name < test.sql \
&& echo "Данные успешно загружены!" || эхо "Не удалось загрузить данные"