Как быстро обновить кластер PostgreSQL, содержащий сотни тысяч таблиц
Всем известно, что самый быстрый способ сделать обновление кластера PostrgeSQL на новую версию — это воспользоваться либо логической репликацией, если база данных у вас небольшая, либо использовать утилиту pg_upgrade. Однако, у обоих есть недостатки: первый способ требует первоначальную переливку данных, что сильно влияет на работающий публикатор, второй способ почти никак не подходит, если у вас база данных содержит больше десяти тысяч таблиц. Нужен какой-то комбинированный способ. С 17 версии PostrgeSQL появился такой способ — это использовать pg_createsubscriber. Но как быть, если у вас версия PostrgeSQL младше 17 версии. О таком подходе я и расскажу в докладе, также покажу, как мы сделали большое обновление с десяток серверов с суммарным количеством таблиц больше 10 миллионов.