По официальному графику поддержки PostgreSQL PostgreSQL 14 получает поддержку до 12 ноября 2026 года. Подходит: сначала измерьте фактическое место в каталоге данных, табличных пространствах и файловой системе WAL, затем рассчитайте потребность для выбранного режима pg_upgrade. Не подходит: применять универсальный множитель к логическому размеру базы или выбирать --link только потому, что свободного места мало. Если требуемое пространство недоступно, сначала проверьте восстановление резервной копии и оцените перенос в отдельную целевую среду.
Материал предназначен администраторам PostgreSQL 14, которым нужно проверить дисковые условия обновления до срока окончания поддержки.
Он также пригодится техническим руководителям, планирующим ресурсы базы данных, и инженерам, которым важно понять, как режим миграции влияет на возможность отката.
Последнее обновление — 4 ноября 2026 года; дата поддержки и поведение режимов сверены с официальной документацией PostgreSQL.
Сначала оцените фактическое место, а не размер базы в отчёте
Для pg_upgrade нет одного надёжного коэффициента, который можно умножить на размер базы и получить нужный объём диска. Логический размер базы из SQL-отчёта не всегда равен занятому месту на файловых системах: данные могут размещаться в нескольких табличных пространствах, WAL может находиться на отдельном томе, а часть файловой системы занимают журналы, временные данные и другие приложения.
Подготовьте карту размещения обоих кластеров. У старого кластера отметьте каталог данных, все табличные пространства и место хранения WAL. Для нового кластера укажите те же пути и выясните, находятся ли исходные и целевые каталоги на одних и тех же файловых системах. Отдельно запишите свободное место на каждой файловой системе: общий остаток на сервере не поможет, если нужный целевой каталог расположен на заполненном томе.
Документация PostgreSQL описывает состав каталога данных и отдельно объясняет, как устроены табличные пространства. Эти сведения нужны не для расчёта некоего стандартного резерва, а чтобы не пропустить данные, размещённые вне основного каталога.
Для первоначального обследования на Linux можно использовать df для свободного места в файловых системах и du для фактически занятого места:
df -h /путь/к/каталогу_данных /путь/к/табличному_пространству
du -sh /путь/к/каталогу_данных /путь/к/табличному_пространству
Подставьте реальные пути своего кластера. Если WAL вынесен отдельно, добавьте его путь в проверку. Когда каталоги расположены на разных файловых системах, проверяйте каждый том самостоятельно: du показывает занятое место в указанном пути, а df — состояние файловой системы, на которой этот путь находится. При наличии разреженных файлов полезно дополнительно сравнить обычный вывод du с оценкой логического размера файлов, чтобы понять, не расходятся ли эти показатели.
| Что измерить | Где искать | Зачем учитывать отдельно |
|---|---|---|
| Исходный каталог данных | Путь старого кластера | Показывает занятые блоки исходных файлов и расположение системных каталогов |
| Табличные пространства | Пути, заданные для кластера | Данные могут находиться вне основного каталога; свободное место нужно проверять на соответствующих файловых системах |
| WAL | Каталог pg_wal или его фактическое размещение |
WAL может быть вынесен на другой том; доступность места там не заменяет свободное место для целевого кластера |
| Новый каталог данных и пространства | Пути целевого кластера | В режиме копирования сюда должны поместиться новые файлы |
| Временные и резервные файлы | Каталоги, используемые выбранной процедурой | Их потребность зависит от конкретного пути миграции и ваших настроек |
Показывает ли pg_upgrade --check, хватит ли места на диске? Нет: предварительная проверка помогает выявить проблемы совместимости кластеров, но её не следует считать подтверждением достаточной ёмкости всех нужных файловых систем. Проверяйте совместимость и пространство как отдельные задачи; назначение проверок описано в документации pg_upgrade.
Сравните режимы до выбора дисковой схемы
Режим переноса определяет, будут ли файлы старого кластера копироваться или повторно использоваться новым. Поэтому оценивать место нужно вместе с условиями отката, а не только по тому, сколько данных займёт новый каталог.
| Режим | Как влияет на место | Что это означает для отката |
|---|---|---|
copy |
Создаются копии файлов для нового кластера; на время операции нужно учитывать исходные и целевые данные | Исходный кластер сохраняется как отдельный набор файлов, но откат всё равно требует проверить состояние приложения, исходных данных и резервной копии |
link |
Файлы повторно используются через жёсткие ссылки, поэтому отдельная полная копия данных не создаётся | После запуска нового кластера старый нельзя считать прежним независимым вариантом для возврата |
clone |
Использует возможности копирования при записи, если их поддерживают выбранные операционная система и файловая система | Возможность и ограничения зависят от среды; наличие команды само по себе не подтверждает, что конкретное хранилище поддерживает нужный режим |
Проверяйте условия по документации той версии PostgreSQL, на которую планируется переход. В руководстве для PostgreSQL 18 описаны --copy, --link, --clone и условия их использования; для перехода на PostgreSQL 17 сверяйтесь также с документацией соответствующей версии. Не переносите требования одного целевого выпуска на другой без проверки.
Если места мало: проверьте link, но не путайте экономию с безопасным откатом
Может ли pg_upgrade --link сэкономить место и что будет с откатом? Этот режим позволяет не создавать отдельную копию каждого файла: новый кластер получает ссылки на файлы старого. Экономия относится к повторному копированию данных, а не к резервной копии, WAL, свободному месту под работу системы или требованиям к другим путям миграции.
Для link важны файловые системы, на которых размещены каталоги и табличные пространства. Обычная жёсткая ссылка не пересекает границу файловой системы, поэтому недостаточно увидеть свободное место на сервере в целом: нужно проверить расположение конкретных исходных и целевых путей и ограничения целевой версии PostgreSQL. Если часть файлов находится на отдельном томе, не считайте её автоматически подходящей для того же способа переноса.
Критично и поведение после переключения. После запуска нового кластера в режиме link изменённые данные могут затронуть файлы, на которые ссылается старый кластер. Поэтому прежний кластер нельзя считать готовой независимой точкой отката. Перед выбором этого пути проверьте, что резервная копия находится вне затрагиваемого хранилища и её действительно удаётся восстановить. Общие принципы сохранения данных и восстановления изложены в официальном руководстве PostgreSQL по резервному копированию.
link — не замена резервной копии. Если возврат к старому кластеру является требованием, заранее определите независимый способ восстановления и проверьте его на изолированной среде.Если места достаточно: оцените copy и поддерживаемый clone
При copy исходные файлы остаются, а для нового кластера создаются отдельные копии. Поэтому планируйте не только объём уже занятого места, но и возможность разместить целевой набор данных на тех файловых системах, где будут находиться новые каталоги и табличные пространства. Дополнительно учитывайте временные файлы и WAL в соответствии с вашей схемой миграции. Здесь нельзя подменить измерение предположением, что свободного места на другом томе достаточно: важны пути, на которые фактически записываются файлы.
clone может оказаться подходящим вариантом, когда операционная система и файловая система поддерживают необходимые возможности копирования при записи. Но это условный вариант, а не гарантированно доступная «быстрая копия» для любой среды. Проверьте документацию целевого выпуска PostgreSQL, тип файловой системы и реальное размещение каталогов. До производственного переключения повторите план в тестовой среде, построенной с теми же путями и типом хранения.
Сохранение отдельного исходного кластера упрощает организацию возврата по сравнению с тем, чтобы полагаться на повторно используемые файлы, но само по себе не обеспечивает корректный откат. Команда должна знать, как вернуть приложение на прежний кластер, какие данные могли измениться после переключения и как восстановить согласованность. Для файловой резервной копии также важно следовать требованиям PostgreSQL к целостности кластера; см. описание резервного копирования на уровне файловой системы.
При переносе на отдельную целевую среду считайте две стороны
Если новый кластер будет находиться на другом сервере или отдельной целевой файловой системе, свободное место у источника не является свободным местом у получателя. Разведите смету на две стороны: что должно оставаться доступным на исходной машине и что понадобится целевой. Затем добавьте временные файлы, журналы и буфер для конкретного маршрута миграции.
| Сторона расчёта | Что включить | Что проверить перед запуском |
|---|---|---|
| Исходная среда | Старый каталог данных, табличные пространства, WAL, резервные данные, если они хранятся локально | Достаточно ли места для продолжающейся работы исходного кластера и выбранной процедуры |
| Целевая среда | Новый каталог данных, целевые табличные пространства и WAL | Есть ли свободное место именно на файловых системах, куда будут записываться эти данные |
| Временная потребность | Временные файлы или дополнительные копии, требуемые выбранным способом переноса | Где они будут создаваться, и не делят ли они том с целевыми данными |
| Независимое восстановление | Резервная копия вне исходного и целевого размещения | Удалось ли восстановить её в тестовой среде и проверить работоспособность кластера |
При альтернативном сценарии переноса, например с временной репликой или промежуточной копией, отдельно оцените её размещение и возникающие требования к журналам и синхронизации. Не складывайте все данные в одну оценку «размер базы»: у каждой копии и каждого журнала есть конкретный путь и конкретная файловая система.
Насколько больше места потребуется для pg_upgrade? Это определяется размещением файлов и выбранным режимом, а не фиксированным числом гигабайт или множителем. Для copy заранее проверьте, где смогут находиться оба набора файлов; для link — ограничения файловой системы и последствия для отката; для clone — поддержку средствами ОС и хранилища. Если расчёт нельзя уверенно подтвердить по существующей конфигурации, проведите повторение процедуры с данными и файловыми путями, характерными для вашей среды.
Проведите проверку до окна обслуживания
Используйте последовательность ниже как рабочую форму: каждый пункт должен завершаться конкретным результатом — перечнем путей, измерениями, решением о режиме или подтверждённым восстановлением.
- [ ] Составьте список размещения. Запишите каталог данных, каждый путь табличного пространства и фактическое расположение WAL для исходного кластера. Для целевого кластера укажите предполагаемые пути.
- [ ] Измерьте занятое и свободное место. Для каждого пути сопоставьте результат
duс состоянием файловой системы изdf. Если каталог расположен на отдельном томе, не подменяйте его свободное место общим остатком на сервере. - [ ] Выберите целевой выпуск и проверьте его руководство. Сверьте допустимые варианты
copy,linkиcloneс официальной документацией именно целевой версии PostgreSQL. - [ ] Проверьте совместимость отдельно от ёмкости. Запустите
pg_upgrade --checkв подготовленной среде и разберите его результат. Даже успешная проверка не отменяет самостоятельный расчёт места на каждом файловом томе. - [ ] Опишите, что именно будет означать откат. Зафиксируйте точку переключения приложения, состояние старого кластера и допустимость его повторного запуска для выбранного режима. Не предполагайте, что прежний каталог после
linkостаётся независимой рабочей копией. - [ ] Восстановите резервную копию в изолированной среде. Проверьте не только наличие файла или архива, но и возможность восстановить из него кластер и выполнить необходимые приложению проверки.
- [ ] Повторите путь миграции до производственного окна. Используйте изолированную среду с сопоставимыми путями и файловой системой. Запишите фактические потребности в месте, которые выявил именно ваш тест, вместо того чтобы переносить численные оценки из чужих инсталляций.
Резервная копия, сохранение старого кластера и целевые каталоги решают разные задачи. Наличие одного не доказывает наличие остальных. Копирование данных на том же сервере не защищает от потери этого сервера или общего хранилища; проверьте, что резервная копия находится вне отказавшей среды, а её восстановление регулярно проверяется.
Пересмотрите размещение, если расчёт не сходится
Если подходящий режим требует больше места, чем доступно на нужных файловых системах, сначала сравните риски изменения пути миграции с рисками увеличения целевого ресурса. Не выбирайте link автоматически и не удаляйте исходные файлы ради освобождения места до того, как подтверждены резервная копия, её восстановление и реальный сценарий возврата.
Для планирования собственной инфраструктуры полезно сопоставить карту каталогов с доступными дисками и способом их подключения. Страница конфигураций XFP Cloud может быть отправной точкой для проверки актуальных вариантов оборудования; фактические ёмкости и условия следует сверять непосредственно с доступной конфигурацией. Если аренда — один из вариантов, отдельно изучите порядок расчёта аренды, не выводя стоимость проекта из непроверенных тарифов.
Перенос на отдельную целевую машину имеет смысл, когда текущая среда не позволяет одновременно сохранить источник, создать цель и обеспечить независимый план восстановления. При этом новая машина не гарантирует сокращения времени миграции: результат зависит от данных, дисковой схемы, сетевого пути и выбранной процедуры. Перед изменением ресурсов повторите оценку для конкретного набора файлов и проверьте, что резервная копия размещена отдельно.
Если текущая база работает на общей виртуальной машине, ограничения могут быть связаны с конкуренцией за CPU и дисковую производительность, тарифными пределами хранилища или недостатком контроля над физическим размещением данных. Для длительной стабильной нагрузки аренда выделенного AMD-сервера у XFP Cloud может быть уместнее, если важны отдельные ресурсы и заранее проверяемая схема хранения. Но независимое оборудование не предотвращает ошибки миграции и не заменяет внешнюю резервную копию; если нагрузка временная или требует частого автоматического масштабирования, выделенная машина может оказаться избыточной.
Перед производственным переключением подготовьте перечень каталогов, фактические измерения, выбранный режим pg_upgrade и подтверждение восстановления копии. Сверьте требования с актуальной конфигурацией XFP Cloud и планируйте миграцию только после того, как условия хранения и возврата проверены на практике.
Подготовьте сервер к обновлению базы данных
В XFP Cloud вы получаете выделенную физическую машину в Токио с 32 ядрами и памятью ECC объёмом 128 или 256 ГБ.
От $455 / мес.