[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Безопасность chroot



Hello!

On Sunday 30 August 2009 21:55:39 Victor Wagner wrote:
> Э, это что в postgres за последние 10 лет сломали? 

Что-то я ночью мало что вспомнил :-) А вопрос еще и в том,
а что за последние 10 лет сделали? Посмотрим на примерах.

Итак, давняя проблема - выгруженный дамп не восстанавливается.
Есть несколько проблем, в т.ч. принципиальная - создавать языки
может только суперпользователь, и если дамп грузится от обычного
пользователя, языке не создаются, и функции, разумеется, тоже.

Еще при дампе/ресторе пути поиска сбиваются, при использовании 
нескольких схем, так что дамп опять же сбивается, приходится дамп 
патчить, что-то вроде:
sed -i "s/SET search_path = offline, pg_catalog;/SET search_path = offline, public, pg_catalog;/" restore.sql

Ну, что функциональные индексы не восстанавливаются, т.к. нужные
им функции инициализируются позже, уже, вероятно, и говорить не 
стоит.

Далее, индексы при активном обновлении таблиц "пухнут", так что по
крону приходится выполнять что-то вроде
VACUUM FULL;REINDEX DATABASE dbname;CLUSTER;ANALYZE;

Про то, как CLUSTER работает, умолчим, хотя неясно, какого черта он
не кластеризует при модификации данных автоматически. 

Партишионирование требует создания триггерных функций, которые
будут выполнять разделение данных по табличкам. Тот еще велосипед,
ничем не удобнее attach в эскулайте, который хотя бы работает очень 
быстро.

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

Ну, про странные ошибки при загрузке сишных функций и упоминать 
не будем.

Это вспомнилось по тем скриптам, которые в кроне вызываются - вакуум, 
патчи для регулярных дампов и т.п. Некоторым из скриптов лет по 5 
уже... Видимо, никогда не поправят вышеупомянутые и неупомянутые 
грабли, зато еще какой-нибудь блэкджек интегрируют.

Да, касаемо кода - я вот думаю, что код постгреса абсолютно 
неподдерживаемый, именно потому столько давно висящих багов и 
несовместимостей. Обратной совместимости нет и в помине - многие 
модули из контрибов давно уж не работают (если не ошибаюсь, 
некоторые и в 7.4 не работали). Когда-то пробовал сам разобраться
с частью багов, в итоге ушел на другую СУБД, в которой я могу 
поправить или дописать, что мне нужно.

Best regards, Alexey Pechnikov.
http://pechnikov.tel/

Reply to: