[personal profile] klink0v

Раз уж подял всю эту тему про PostgreSQL.

... Оказывается, я слоупок (никогда такого не было, и вот опять). Один хороший человек давным-давно написал утилиту под названием "pgcopydb". Пакет с ней есть в репозиториях PGDG. Эта утилита выполняет пресловутый "pg_dump | pg_restore", но в несколько потоков и без необходимости писать в промежуточные файлы. Плюс умеет ещё в разную магию наподобие декодирования WAL-ов и "досылки" изменений.

... Не я первый, не я последний столкнулся с проблемой копирования этих самых BLOB-ов. Некий индус тоже не выдержал и написал свой скрипт на питоне, который копирует BLOBы. Утверждает, что ему удается сократить время копирования в сто раз за счёт многопоточности. Хотя мне пока что непонятно как потом эти OID-ы приводить в соответствие между "старыми" и "новыми" таблицами.

... И на самом деле все эти пресловутые "Large Objects" есть ни что иное как... та-да-а-а-ам... bytea-поля в отдельной таблице под названием "pg_largeobject". Просто Postgres "из коробки" предоставляет для них набор готовых wrapper-функций. Блин, а разговоров-то... И чего я раньше эту статью не нашёл. Так что вопрос переделки софта с LO OIDS на bytea-поля обретает внезапную актуальность.

... В природе существует готовое расширение "dblink", которое позволяет нативно выполнять запросы к другой базе данных. То есть технически возможно скопировать сперва только реляции, а BLOB-ы затаскивать в новую базу по мере обращения к ним. Если ничего лучше не придумаю, то попрошу программиста вставить небольшой кусок кода в приложение, который будет эксплуатировать этот dblink. Тоже вариант.

А так, попробую сперва вариант с pgcopydb + SSD. Может и прокатит.

Profile

Sergeich

March 2026

S M T W T F S
12345 6 7
8 91011 121314
15 16 17 18 1920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 23rd, 2026 10:53 am
Powered by Dreamwidth Studios