[size="3"]Вопросы о PostgreSQL[/size]
30 июня мы провели онлайн-сессию «Вопросы к ведущим мировым экспертам PostgreSQL». В течение трёх часов любой желающий мог задать вопрос одному из приглашённых гостей и получить исчерпывающий ответ. В результате было получено более 40 вопросов, ни один из которых не остался без внимания.
Участники: Брюс Момджан (Bruce Momjian) (PGDG, EnterpriseDB), Максим Богук (Rambler, Мастерхост), Фёдор Сигаев (PGDG), Марко Креэн (Marko Kreen) (Skype).
Вот пара интересных вопросов и ответы на них:
Вопрос №3
kai: Одна из досадных штук в работе -- это отсутствие конструкции "INSERT OR UPDATE". В MySQL можно сделать так: "INSERT INTO users (username, email) VALUES ('Jo', 'jo@email.com') ON DUPLICATE KEY UPDATE email = 'jo@email.com'". Появится ли что-нибудь похожее в PostgreSQL?
Брюс Момджан, лидер сообщества PostgreSQL, эксперт компании EnterpriseDB: Стандартный (ANSI) способ для таких вещей -- это MERGE или UPSERT. Оба способа находятся у нас в TODO-листе и, насколько я знаю, кто-то работает над этой функциональностью для PostgreSQL 8.4, хотя лично я ещё не видел этого патча. Мы, вне всяких сомнений, нуждаемся в таком синтаксисе.
Вопрос №5
Alexander: Вопросы к разработчикам Skype: 1) Хочется оценить масштабы Skype, хотя бы приблизительно. Сколько пользователей сейчас зарегистрировано? Сколько пользователей находятся одновременно онлайн? Сколько транзакций в секунду выполняет Ваш PostgreSQL? Сколько у Вас серверов PostgreSQL? 2) Как правильно померить количество транзакций в секунду в PostgreSQL?
Марко Креэн, инженер компании Skype: 1) Общее количество пользователей у нас сейчас в районе 300 миллионов. Я точно не знаю насчёт активных пользователей, но мой Skype-клиент показывает, что сейчас онлайн находятся 10 миллионов пользователей, и это далеко не пиковая нагрузка. У меня нет точных цифр по количеству транзакций в секунду (TPS), но, кажется, наша нагрузка -- где-то в районе 10-20 тысяч TPS. Всего у нас более 100 серверов PostgreSQL, хотя и не все из них работают одновременно. 2) Используйте анализатор логов или pgBouncer, установленный перед базой данных, он даёт такую статистику.
[size="3"]Обновление PostgreSQL: 8.3.5, 8.2.11, 8.1.15 и 8.0.19[/size]
Объявлено о выходе новых версий СУБД PostgreSQL - 8.3.5, 8.2.11, 8.1.15, 8.0.19 и 7.4.23, в которых представлены исправления накопившихся ошибок. Среди исправлений:
* Устранена критическая ошибка, которая может привести к потере информации в GiST индексах. После обновления для GiST индексов рекомендуется выполнить REINDEX;
* Исправлена ошибка, приводящая к краху процесса при невозможности отобразить клиенту локализованное сообщение об ошибке из-за отсутствия эквивалентных символов в текущей локали пользователя.
* Устранено несколько утечек памяти;
* Проведена оптимизация выполнения запросов вида "expression IN (expression-list)";
* Исправлен код преобразования бинарных строк в XML (bytea-to-XML), который мог приводить к краху процесса;
* Устранена ошибка, которая теоретически могла привести к краху процесса при вызове из триггера функций с большим уровнем вложенности;
* При сравнении строк через ILIKE теперь регистр игнорируется и для экранированных символов;
http://www.opennet.r...shtml?num=18734 (http://www.opennet.ru/opennews/art.shtml?num=18734)
[size="3"]Обновления PostgreSQL: 8.3.6, 8.2.12, 8.1.16, 8.0.20 и 7.4.24[/size]
Вышли (http://postgresmen.ru/news/view/144) обновления для всех активных веток PostgreSQL: 8.3.6, 8.2.12, 8.1.16, 8.0.20 и 7.4.24. В данные версии вошли исправления найденных ошибок, включая две серьёзные: крах autovacuum-а в версии 8.1 и потери данных в GiST-индексах в версии 8.3. Таким образом, пользователям веток 8.1 и 8.3 рекомендуется незамедлительный переход на новые версии.
В новые версии также вошли исправления нескольких малоопасных проблем безопасности, а также 17 незначительных ошибок, найденных в различных версиях PostgreSQL. В частности, речь идёт о таких незначительных ошибках, как проблемы перехода на зимнее/летнее время во временных зонах Непала, Швейцарии и Кубы. Подробности можно найти в Release Notes (http://www.postgresql.org/docs/current/static/release.html).
Что касается двух серьёзных проблемах, исправленных в данных версиях PostgreSQL, первая из них затрагивает только тех пользователей, которые используют PostgreSQL 8.1 и autovacuum в нём. Проблема заключается в неработоспособности autovacuum-а при использовании процедуры восстановления счётчика транзакций (XID). Вторая проблема заключается в возможной потере данных во время работы команды CLUSTER при использовании GiST-индексов (например, индексов полнотекстового поиска) в версии 8.3. Обе проблемы полностью устранены в новых версиях СУБД.
Как и в случае других минорных обновлений, пользователи не обязаны осуществлять процедуру dump/restore для миграции на новую версию. Необходимо лишь остановить сервер PostgreSQL и обновить бинарные файлы. Пользователям, которые переходят на новые версии с пропуском нескольких минорных версий, необходимо перепроверить списки изменений всех пропущенных версий, т.к. в некоторых из них содержатся рекомендации по дополнительным действиям во время обновления (к примеру, при переходе на версию 8.3.5 была рекомендация по перестроению GiST-индексов).
Как упоминалось при выпуске предыдущих версий PostgreSQL, для ОС Windows официально выпускаются и поддерживаются только обновления для веток 8.3 и 8.2: в данный момент это версии 8.3.6 и 8.2.12.
http://www.opennet.r...shtml?num=20152 (http://www.opennet.ru/opennews/art.shtml?num=20152)
[size="3"]Новая система асинхронной репликации данных для Postgresql - Golconde[/size]
Представлен (http://comments.gmane.org/gmane.comp.db.postgresql.announce/1282) первый публичный релиз системы асинхронной репликации данных для PostgreSQL - Golconde 0.4 (http://code.google.com/p/golconde/), которая может обеспечивать синхронизацию данных на удаленный slave сервер. Golconde написана на языке Python и состоит из двух модулей - триггера для асинхронного помещения в очередь всех изменений в базе и процесса-диспетчера, осуществляющего передачу сообщений на удаленный сервер, на котором подобный процесс занимается приемом сообщений и обновлением базы.
Благодаря своей простоте, система надежна в работе и легко расширяемая. Так как очередь передается в асинхронном режиме, включение репликации почти не влияет на производительность, при этом нормально обрабатывается ситуация временного нарушения достижимости хоста, размещенного в другом дата-центре, - сообщения накапливаются в очереди. Для обеспечения надежной синхронизации предусмотрена схема с единым подтверждением внесения изменений на slave, через задействование двухфазовых коммитов. Кроме триггера, возможно вынести логику синхронизации на сторону клиентского приложения, для чего разработаны специальные PHP и Python модули.
По принципу работы Golconde сильно напоминает другую систему репликации - PyReplica.
http://www.opennet.r...shtml?num=20575 (http://www.opennet.ru/opennews/art.shtml?num=20575)
[size="3"]Обновление СУБД Postgresql: 8.3.7, 8.2.13, 8.1.17, 8.0.21 и 7.4.25[/size]
Анонсирован (http://www.postgresql.org/about/news.1065) выход обновлений для всех активных веток PostgreSQL: 8.3.7 (http://www.postgresql.org/docs/current/static/release-8-3-7.html), 8.2.13 (http://www.postgresql.org/docs/current/static/release-8-2-13.html), 8.1.17 (http://www.postgresql.org/docs/current/static/release-8-1-17.html), 8.0.21 (http://www.postgresql.org/docs/current/static/release-8-0-21.html) и 7.4.25 (http://http://www.postgresql.org/docs/current/static/release-7-4-25.html). В новых версиях устранено две уязвимости:
* Возможность получения доступа к скрытым записям, не имея прав доступа к схеме, из-за особенностей обработки представлений (VIEW);
* Ошибка, которую можно использовать для вызова отказа в обслуживании через рекурсивное зацикливание взаимно ссылающихся друг на друга функций конвертации кодировок (CREATE DEFAULT CONVERSION test1 FOR 'LATIN1' TO 'KOI8' FROM ascii_to_mic; CREATE DEFAULT CONVERSION test2 FOR 'KOI8' TO 'LATIN1' FROM mic_to_ascii; после этого к краху приведет выполнение set client_encoding to 'LATIN1').
Кроме того, в новых версиях отмечено исправление 12 незначительных ошибок, например:
* Налажена работа функций семейства xpath() в ветке 8.3.
* Устранен крах процесса, при вызове функции to_char() с некорректными параметрами преобразования;
* Исправлена проблема при выполнении операции поиска по маскам в многобайтовой кодировке при активной "С" локали;
* Устранены проблемы в планировщике запросов, возникающие при задании суб-SELECT в блоке вывода другого подзапроса;
http://www.opennet.r...shtml?num=20801 (http://www.opennet.ru/opennews/art.shtml?num=20801)
[size="3"]Выпущена первая бета Postgresql 8.4[/size]
После четырнадцати месяцев разработки выпущена первая бета-версия СУБД PostgreSQL 8.4. Версия 8.4 включает сотни изменений и десятки новых возможностей. Среди них:
* «Оконные» функции (Windowing Functions), позволяющие выполнить вычисления для определенного набора столбцов из общего объема выборки;
* Общие табличные выражения (Common Table Expression) и рекурсивные запросы;
* Функции с переменным числом аргументов (Variadic) и значения по умолчанию для параметров функций;
* Возможность восстановления дампа в несколько одновременных потоков;
* Привилегии на столбцы таблиц;
* Собственные параметры локали для каждой БД;
* Улучшенная производительность для запросов с EXISTS и NOT EXISTS;
* «Многоколоночные» GIN-индексы;
* Префиксный поиск с использованием GIN-индексов;
* Улучшенные hash-индексы;
* Более простой в использовании сервер «тёплого резерва» (Warm Standby). Реализацию "горячего резерва", с возможностью выполнения select запросов на запасном сервере, отложили до версии 8.5;
* Автоматическая настройка «карт свободного пространства» (Free Space Map);
* «Карты видимости» (Visibility Maps), улучшающие производительность вакуум-процессов;
* Терминал psql подстраивается под версию сервера, с которым работает;
* Поддержка SSL-сертификатов для аутентификации пользователей;
* Статистика по использованию функций в режиме реального времени;
* Упрощённое редактирование функций в терминале psql;
* Новые contrib-модули: pg_stat_statements, auto_explain, citext, btree_gin.
Разработчики PostgreSQL просят всех желающих установить бета-версию, оценить работу новых возможностей, попробовать полноценно использовать для рабочих приложений, проанализировать изменение производительности и отправить сообщение в случае обнаружения каких-либо проблем.
http://www.opennet.r...shtml?num=21279 (http://www.opennet.ru/opennews/art.shtml?num=21279)
[size="3"]Демонстрационный Live-CD с PostgreSQL 8.4-beta1. Web-интерфейс для проектирования БД[/size]
Вышел демонстрационный LiveCD с PostgreSQL 8.4-beta1 и набором инструментов для проведения экспериментов и тестирования программ на совместимость. В комплект входят pgAdmin III, Apache, PHP, GNOME, Pidgin, Firefox и т.д.
Кроме того, представлен проект SchemaBank, представляющий собой web-интерфейс, основанный на Ajax, для проектирования структуры PostgreSQL базы, включая поддержку визуального ERD моделирования.
http://www.opennet.r...shtml?num=21804 (http://www.opennet.ru/opennews/art.shtml?num=21804)
[size="3"]Вышел релиз СУБД Postgresql 8.4[/size]
После шестнадцати месяцев разработки выпущен релиз СУБД PostgreSQL 8.4 в котором было реализовано около 300 изменений.
Основные новшества:
* Режим восстановления дампа базы в несколько параллельных потоков. Например, загрузка дампа базы размером 300 Гб на 8-ядерном сервере занимала стандартным образом 12 часов, при распараллеливании процесса загрузки на 8 потоков, время загрузи сократилось до 3 часов;
* Возможность установки привилегий для отдельных столбцов;
* Возможность определения разных параметров локализации для разных баз данных, что бывает востребовано в многоязычных окружениях;
* В комплект включена утилита pg_migrator, позволяющая осуществить миграцию базы с версии СУБД 8.3 на 8.4 с минимальным временем простоя;
* Новые средства для мониторинга запросов, позволяющие более глубоко оценить активность, связанную с заданными запросам. Кроме того, доступны утилиты для оценки работы текущих запросов, создаваемой нагрузки и выявления взаимных блокировок, просмотра статистики по использованию функций в режиме реального времени;
* Существенно понижена нагрузка на систему при выполнении VACUUM операций, оптимизации через внедрение "карт видимости" (Visibility Maps). Реализована автоматическая настройка «карт свободного пространства» (Free Space Map);
* Реализовано несколько новых возможностей, определенных в стандарте ANSI SQL2003:
o «Оконные» функции (Windowing Functions), позволяющие выполнить вычисления для определенного набора столбцов из общего объема выборки;
o Общие табличные выражения (Common Table Expression)
o Рекурсивные запросы с операциями соединения.
* Более простой в использовании сервер «тёплого резерва» (Warm Standby). Реализацию "горячего резерва", с возможностью выполнения select запросов на запасном сервере, отложили до версии 8.5;
* Поддержка задания переменного числа аргументов (Variadic) и значения по умолчанию для хранимых процедур;
* Улучшенная производительность для запросов с EXISTS и NOT EXISTS. Несколько новых оптимизаций, напрмер, улучшенные hash-индексы, полусоединения (semi-joins) и антисоединения (anti-joins);
* «Многоколоночные» GIN-индексы. Префиксный поиск с использованием GIN-индексов;
* Терминал psql подстраивается под версию сервера, с которым работает. Упрощённое редактирование функций в терминале psql;
* Поддержка SSL-сертификатов для аутентификации пользователей;
* Новые contrib-модули: pg_stat_statements, auto_explain, citext, btree_gin.
http://www.opennet.r...shtml?num=22414 (http://www.opennet.ru/opennews/art.shtml?num=22414)
[size="3"]Вышел релиз интерфейса для управления СУБД Postgresql - Pgadmin III 1.10[/size]
После почти двух лет разработки вышел релиз pgAdmin 1.10.0, многоплатформенного графического интерфейса для управления СУБД PostgreSQL.
Новшества:
* Графический генератор запросов - GQB (Graphical Query Builder);
* В инструмент для выполнения запросов добавлен движок для написания скриптов pgScript;
* Улучшена поддержка продуктов Postgres Plus Advanced Server и Greeplum Database, основанных на кодовой базе PostgreSQL;
* Поддержка средств полнотекстового поиска;
* Добавление механизма для интеграции с внешними программами и утилитами;
* Поддержка навигации по FTS объектам;
* Возможность определения фонового цвета для элементов с разных серверов;
* Поддержка PostgreSQL 8.4.
На сайте проекта опубликован наглядный обзор основных улучшений.
http://www.opennet.r...shtml?num=22428 (http://www.opennet.ru/opennews/art.shtml?num=22428)
[size="3"]Вышел Live-CD для оценки возможностей PostgreSQL 8.4[/size]
Представлен релиз специализированного LiveCD на базе Fedora 11 c набором инструментов для проведения экспериментов c PostgreSQL 8.4 и тестирования программ на совместимость. В комплект входят pgAdmin III, Apache, PHP, GNOME, Pidgin, Firefox и т.д.
http://www.opennet.r...shtml?num=22602 (http://www.opennet.ru/opennews/art.shtml?num=22602)
[size="3"]Вышли новые версии СУБД PostgreSQL с исправлением уязвимости[/size]
Выпущены новые релизы во всех поддерживаемых версиях PostgreSQL: 8.4.1, 8.3.8, 8.2.14, 8.1.18, 8.0.22 и 7.4.26. Кроме накопившихся исправлений ошибок, в представленных выпусках исправлено три уязвимости, две неопасные и одна умеренной степени риска:
* Локальный пользователь СУБД может организовать выполнение действий с привилегиями администратора базы, используя возможность выполнения операций "RESET ROLE" и "RESET SESSION AUTHORIZATION" в пользовательских функциях, выполняемых с повышенными правами. Проблеме подвержены все поддерживаемые ветки;
* Локальный пользователь СУБД может совершить DoS атаку, вызвав завершение работы сервера, попытавшись повторно загрузить библиотеки, находящиеся в директории $libdir/plugins. Проблеме подвержены ветки 8.4, 8.3 и 8.2;
* При использовании LDAP аутентификации, в конфигурации допускающей анонимные подключения, возможен вход под заданным пользователем без пароля. Проблеме подвержены ветки 8.3 и 8.2;
Кроме исправления уязвимостей, исправлена давно мешающая Windows пользователям PostgreSQL ошибка, приводящая к сбою с выводом диагностического сообщения "could not reattach shared memory".
http://www.opennet.r...shtml?num=23352 (http://www.opennet.ru/opennews/art.shtml?num=23352)
[size="3"]Red Hat стал инвестором компании EnterpriseDB, развивающей PostgreSQL[/size]
Компания EnterpriseDB, выпускающая коммерческую версию PostgreSQL и финансирующая большое число разработчиков данной свободной СУБД, объявила о заключении партнерских отношений с мировым лидером в области Linux решений - Red Hat. Последняя намеревается инвестировать в EnterpriseDB значительные средства с целью еще глубже внедрить открытые технологии в IT инфраструктуру современных корпораций.
«Совершенно очевидно, что EnterpriseDB - это ведущий разработчик Postgres для крупных предприятий. Вот почему Red Hat решил сотрудничать с этой компанией» - заявил президент Red Hat Джим Вайтхерст (Jim Whitehurst). Помимо передовых позиций в области предоставления SQL решений, EnterpriseDB имеет сходную с Red Hat модель работы с клиентами, когда необходимые услуги предоставляются в соответствии с оформленной подпиской. Это также должно способствовать сближению взглядов двух крупнейших вендоров на совместную работу.
Основное направление деятельности EnterpriseDB - это помощь организациям, работающим в индустрии IT, в поиске и интеграции решений на базе свободной базы данных PostgreSQL. Выпускаемый компанией продукт - Postgres Plus, является сертифицированным дистрибутивом PostgreSQL, и включает в себя набор дополнительных компонентов вместе с профессиональной документацией. Помимо стоимостного преимущества opensource решений, EnterpriseDB подчеркивает легкую интеграцию своей базы данных с Red Hat Enterprise Linux и сервером приложений JBoss. Компании надеются, что их совместная работа ускорит продвижение открытых решений в качестве альтернативы проприетарным.
http://www.opennet.r...shtml?num=24004 (http://www.opennet.ru/opennews/art.shtml?num=24004)
[size="3"]Для PostgreSQL выпущен интерфейс репликаций Alerce и менеджер online-бэкапов pg_rman[/size]
Представлен первый стабильный релиз Alerce 1.0.0, разрабатываемого в рамках проекта pyreplica dbapi совместимого Python интерфейса для организации выполнения синхронной репликации данных. Используя Alerce, разработчики на языке Python могут реализовать прозрачную для приложений репликацию выполняемых запросов на несколько серверов БД.
Для задействования системы достаточно заменить стандартный dbapi модуль Python на модуль Alerce. При этом представленная система не просто дублирует запросы на несколько серверов, но и должным образом обрабатывает ситуации выхода из строя одного из них, поддерживает двухфазные коммиты, позволяет организовать балансировку нагрузки путем распределения запросов по slave-серверам.
Кроме того, можно отметить выход финального релиза проекта pg_rman, представляющего собой менеджер для автоматизации выполнения типовых действий при организации работы online-бэкапов. Цель проекта сделать создание и восстановление online-бэкапов не сложнее, чем использование утилиты pg_dump.
Резервное копирование организовано на основе сохранения журнала транзакций (Write-Ahead Logs), что обеспечивает сохранение в случае сбоя всех завершенных в СУБД транзакций, не влияя при этом на производительность СУБД. Утилита поддерживает инкрементальный режим резервного копирования, проверку целостности по контрольным суммам, автоматическое удаление неиспользуемых областей в WAL файлах с оставлением только актуальных данных.
http://www.opennet.r...shtml?num=24769 (http://www.opennet.ru/opennews/art.shtml?num=24769)
[size="3"]PostgreSQL не угрожают проблемы, обсуждаемые к контексте поглощения MySQL[/size]
В ответ на широко известные сетевые публикации Майкла Видениуса, в связи с событиями вокруг MySQL теперь выражающего опасения и по поводу будущего PostgreSQL, в блоге корпорации End Point появилась запись "Текущее состояние проекта Postgres" за авторством PostgreSQL-гуру Грега Сабино Мулане (Greg Sabino Mullane).
Анализируя аргументы, приводимые Видениусом, которые, по его мнению, могут привести к остановке развития или к краху проекта PostgreSQL, Мулане пошагово составляет логические опровержения возможному течению событий. В частности, задаётся вопрос: способен ли проект Postgres устоять против прямого нападения какой-либо компании "с глубокими карманами", если эта компания захочет перекупить "20 ведущих разработчиков" PostgreSQL (цифра Монти Видениуса, довольно точно, по расчётам Мулане, отражающая действительность).
Здесь возможно два варианта: Oracle покупает компанию целиком или же нанимает (фактически перекупает) отдельных людей. По мнению Мулане, ни один из этих вариантов не может сработать. Разработку PostgreSQL поддерживает не одна компания, а несколько независимых организаций, которые при этом являются частными закрытыми компаниями. Кроме того, нет способа, купив компанию, воспрепятствовать людям, там работающим, сменить место работы. Далее, купить некоторые компании просто невозможно, даже и для Oracle, поскольку в списке компаний, в которых работают наиболее значимые разработчики PostgreSQL, значатся Google, Red Hat, Skype, SRA, а также NTT, а это действительно очень крупная компания, крупнее, чем Oracle.
Прямая перекупка разработчиков. Конечно, не каждого человека можно купить в принципе, и конечно, некоторые разработчики могут согласиться уйти, если Oracle предложит им 20$ миллионов долларов, но - не все. И даже в случае их ухода нельзя недооценивать ресурсы сообщества PostgreSQL. По грубым подсчётам Мулане, "в мире есть пара сотен человек, которые в состоянии делать коммиты в исходный код PostgreSQL. Будут ли они работать также эффективно и быстро, как некоторые из теперешних разработчиков? Возможно и нет, но суть в том, что вычерпать этот колодец настолько быстро, чтобы нанести ощутимый урон, практически невозможно."
"Почтовые списки рассылки проекта активны как никогда, количество форумов и людей, активно в них участвующих, растёт очень быстро, и существует огромный спрос на специалистов с навыками работы в PostgreSQL. Количество проектов, в которых используется PostgreSQL в качестве основного или запасного варианта работы с базами данных, растёт постоянно. Сейчас нетрудно найти хостинг-провайдера, предлагающего на выбор также и PostgresSQL, а не только MySQL. И самое главное - проект продолжает регулярно выпускать новые стабильные версии. Версия 8.5 скорее всего выйдет в 2010 году."
http://www.opennet.r...shtml?num=24954 (http://www.opennet.ru/opennews/art.shtml?num=24954)
[size="3"]Сообщество СУБД PostgreSQL прояснило неточности в заявлении Еврокомиссии[/size]
Компания EnterpriseDB, занимающаяся коммерческой поддержкой СУБД PostgreSQL, опубликовала пресс-релиз, в котором отреагировала на одобрение Еврокомиссией сделки по покупке Sun Microsystems корпорацией Oracle.
Эд Бояджан (Ed Boyajian), президент компании EnterpriseDB, заявил: "Это решение просто подкрепляет факт того, что PostgreSQL является единственным решением для организаций, которым необходимо развернуть открытую СУБД, поддерживаемую действительно независимым сообществом. В течение последних нескольких месяцев мы наблюдаем стабильный поток пользователей MySQL, которые ищут инструменты для мигрирования на PostgreSQL, и мы ожидаем, что данная тенденция продолжится или даже получит развитие в связи с тем, что Европейский союз одобрил сделку".
Брюс Момджан (Bruce Momjian), один из основателей PostgreSQL, считает, что Еврокомиссия после месяцев разбирательств так и не поняла суть конкуренции между проектами. Брюс заявил: "PostgreSQL может быть использована для любой легковесной обработки данных, для которой была создана СУБД MySQL, но реально PostgreSQL является действительно полнофункциональной открытой СУБД для высоко масштабируемых и требующих скоростной обработки транзакций промышленных приложений.
Что касается проекта MySQL, то он изначально создан для быстрых и простых приложений на простых скриптовых языках, но реально не готов для разработчиков настоящих промышленных информационных систем. В противоположность ему, PostgreSQL был разработан для удовлетворения потребностей ИТ-приложений, требующих полнофункциональной СУБД."
http://www.opennet.r...shtml?num=25120 (http://www.opennet.ru/opennews/art.shtml?num=25120)
[size="3"]PostgreSQL: Новые корректирующие релизы [/size](http://www.postgresql.org/layout/images/hdr_left.png)
Выпущены (http://www.postgresql.org/about/news.1188) новые корректирующие релизы во всех поддерживаемых ветках PostgreSQL: 8.4.3 (http://www.postgresql.org/docs/8.4/static/release-8-4-3.html), 8.3.10 (http://www.postgresql.org/docs/8.3/static/release-8-3-10.html), 8.2.16 (http://www.postgresql.org/docs/8.2/static/release-8-2-16.html), 8.1.20 (http://www.postgresql.org/docs/8.1/static/release.html#RELEASE-8-1-20), 8.0.24 (http://www.postgresql.org/docs/8.0/static/release.html#RELEASE-8-0-24) и 7.4.28. В новых версиях исправлено 47 ошибок, накопившихся за последние три месяца. Из исправлений можно отметить:
- В SSL-подсистему PostgreSQL добавлен код для отключения возможности выполнения операций согласования установленного SSL-соединения (renegotiation) для серверов, подверженных атаке через подстановку данных в устанавливаемое между двумя точками защищенное соединение. Для управления частотой выполнения операций согласования соединения в файл конфигурации добавлена директива "ssl_renegotiation_limit";
- Устранена потенциальная возможность взаимной блокировки (deadlock) в процессе запуска СУБД;
- Устранено несколько ошибок, которые могли привести к краху;
- В GIN и GiST индексах устранены ошибки, которые могли привести к некритичной потере данных при откате операции из WAL-лога;
- Устранены две утечки памяти;
Кроме того, в анонсе разработчики напоминают, что поддержка веток PosgreSQL 7.4 и 8.0 будет прекращена в июне 2010 года.
opennet (http://www.opennet.ru/)
[size="3"]PostgreSQL 9.0 Beta 1 [/size](http://itrash.kz/idb/977/oPg_logo.png)
Вышла (http://www.postgresql.org/about/news.1198) первая бета-версия СУБД PostgreSQL 9.0 (http://developer.postgresql.org/pgdocs/postgres/release-9-0.html), ознаменовавшая переход от наращивания функциональности к выявлению и исправлению ошибок. PostgreSQL 9.0 является первым релизом со встроенной системой бинарной репликации данных в режиме реального времени, позволяющей организовать горячее резервное копирование и потоковую репликацию. Главные новшества PostgreSQL 9.0:
- Реализация режима "горячего резерва" (Hot Standby), при котором появилась возможность выполнения select запросов на запасном сервере, т.е. теперь можно штатными средствами организовать master-slave репликацию с практически нулевой дополнительной нагрузкой на сервер (с master сервера просто копируются WAL-логи, без каких-либо блокировок и дополнительного вызова триггеров). Ранее синхронизированный сервер был неактивен и мог только перехватить управление в случае сбоя основного сервера;
- Поддержка режима потоковой репликации (Streaming Replication (http://wiki.postgresql.org/wiki/Streaming_Replication)), суть которой в организации непрерывной передачи бинарных WAL-логов нескольким запасным серверам PostgreSQL;
- Поддержка 64-разрядной версии для платформы Windows;
- Замена pg_listener на новый работающий в памяти механизм Listen/Notify, ориентированный на высокопроизводительный обмен сообщениями и обслуживание очередей;
- Через оператор "DO" теперь можно выполнять код в SQL-выражении на процедурном языке в асинхронном режиме без создания отдельной функции;
- Возможность назначать триггеры для отдельных столбцов;
- По умолчанию теперь активируется встроенный язык PL/pgSQL. Переработан парсер PL/pgSQL. Разнообразные улучшения также добавлены в реализации PL/Perl и PL/Python, например, добавлена поддержка Python 3.
- Добавлены "контейнеры ограничений", представляющие собой обобщенный аналог UNIQUE и реализующие новые способы гарантии логической целостности данных в базе;
- Улучшена поддержка хранения в одном поле произвольного набора данных в формате ключ/значение;
- В оптимизаторе появились средства для автоматического удаления лишних JOIN-ов и оптимизиции для ORM-запросов (http://ru.wikipedia.org/wiki/ORM).
- Автоматический возврат числа строк, фигурирующих в выполненном SELECT-запросе. В psql данное значение не отображается, но может быть получено с использованием программного интерфейса, подобного libpq.
- Поддержка функций ROWS PRECEDING и ROWS FOLLOWING в WINDOW-блоке SELECT-запроса, позволяющих сформировать кадр из заданного числа строк, относительно текущей позиции.
- Использование агрегатных функций внутри блока ORDER BY одобрено в SQL стандарте, теперь не нужно прибегать к ухищрениям для получения упорядоченного набора записей на входе агрегатных функций;
- Добавлена возможность контроля доступа к большим объектам (large objects);
- В функции регулярных выражений добавлена поддержка независимых от регистра проверок и классификации символов, привязанной к текущей локализации, при использовании кодировки UTF8 на сервере;
- Для упрощения разграничения доступа реализованы конструкции "DEFAULT PRIVILEGES" и "GRANT ALL ON";
- Возможность задания флага DEFERRABLE для выражений с признаком UNIQUE;
- Возможность использования в функциях именованных параметров.
- Поддержка конструкции IF EXISTS в DROP COLUMN/CONSTRAINT;
- Возможность вывода результатов работы EXPLAIN в XML и JSON форматах;
- Новый шестнадцатиричный формат ввода и вывода для типа данных BYTEA
- Поддержка многопоточности в утилите pgbench, что позволяет задействовать все CPU в системе и сгенерировать более реалистичную тестовую нагрузку
# Источник (http://www.opennet.ru/opennews/art.shtml?num=26467)
[size="3"]phpPgAdmin 5.0: Релиз web-интерфейса для управления PostgreSQL [/size]Представлен (http://permalink.gmane.org/gmane.comp.db.postgresql.announce/1681) релиз phpPgAdmin 5.0 (http://phppgadmin.sourceforge.net/), написанного на языке PHP web-интерфейса для организации управления СУБД PostgreSQL.
Особенности новой версии:
- Обеспечена поддержка PostgreSQL 8.4 и 9.0;
- Реализована функция сравнения баз для PostgreSQL 8.4 и более новых версий;
- Поддержка экспорта на уровне схемы данных;
- Добавлена функция изменения владельца схемы данных, переименования ролей и пользователей, установки нового пароля;
- Возможность добавления комментариев для функций;
- Улучшен пользовательский интерфейс;
- Значительно улучшении возможности полнотекстового поиска;
- Добавлен график для оценки оптимизации приложений;
- Поддержка задания привилегий на уровне столбцов;
- Реализован интерфейс по администрированию отдельных таблиц;
- Переработан код автодополнения SQL-запросов;
- Добавлен режим просмотра внешних ключей.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=28834)
[size="3"]
Вышла третья альфа-версия PostgreSQL 9.1 [/size]
Вышла (http://permalink.gmane.org/gmane.comp.db.postgresql.announce/1704) третья альфа-версия СУБД PostgreSQL 9.1, релиз которой ожидается в середине 2011 года. Об улучшениях, добавленных в прошлых альфа-версиях, можно прочитать в тексте первого анонса (http://www.opennet.ru/opennews/art.shtml?num=27889).
Из добавленных в третьей альфа-версии улучшений (http://developer.postgresql.org/pgdocs/postgres/release-9-1-alpha.html) можно отметить:
- Реализация KNN GiST (http://www.sai.msu.su/%7Emegera/wiki/2009-11-25), добавляющая в GiST поддержку алгоритма (http://obartunov.livejournal.com/39196.html) оптимального поиска ближайших соседей, что может быть использовано для организации поиска географических объектов;
- Дополнительные возможности обслуживания и мониторинга, включая поддержку интроспекции контрольных точек (checkpoint introspection) и учет информации о последних изменениях WAL-лога (last-WAL-timestamp) в репликации;
- Несколько новых встроенных функций: format(), pg_describe_object(), pg_read_binary_file(), которые в будущем будут поддерживать технологию подключения дополнений;
- Новые функции в libpq: PQping(), PQlibVersion();
- Поддержка генерации crash-дампов на платформе Windows;
- Новый модуль auth_delay, позволяющий реализовать дополнительную задержку в случае некорректной аутентификации для защиты от атак по подбору паролей;
- Отслеживание создания объектов, необходимое для реализации поддержки технологии обеспечения безопасности SEPostgres.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=29172)
[size="3"]Обновление PostgreSQL 9.0.3, 8.4.7, 8.3.14, 8.2.20 с устранением уязвимости[/size] Доступны (http://www.postgresql.org/about/news.1289) новые релизы во всех поддерживаемых ветках PostgreSQL: 9.0.3 (http://www.postgresql.org/docs/9.0/static/release-9-0-3.html), 8.4.7 (http://www.postgresql.org/docs/8.4/static/release-8-4-7.html), 8.3.14 (http://www.postgresql.org/docs/8.3/static/release-8-3-14.html) и 8.2.20 (http://www.postgresql.org/docs/8.2/static/release-8-2-20.html). В новых версиях в сумме представлено 63 изменения, при этом в версии 9.0.3 устранено 33 ошибки, в 8.4.7 - 20, в 8.3.14 - 20, в 8.2.20 - 18 ошибок.
Одно из изменений, связано с устранением уязвимости (http://www.postgresql.org/support/security) в дополнительном модуле intarray, который не входит в базовую систему и поставляется в разделе "contrib". При использовании модуля intarray аутентифицированный в СУБД злоумышленник может инициировать переполнение буфера и организовать выполнение кода.
Среди не связанных с безопасностью исправлений отмечены:
- Исправление ошибки преобразования далеких дат в планировщике запросов,
- Устранение проблем с экранированием больших объектов в pg_restore,
- Решение проблемы с отображением CASE-выражений в EXPLAIN,
- Улучшение поддержки сборки для платформы Windows,
- Устранение ошибки негативно сказывающейся на производительности picksplit-алгоритма в GiST.
- Изменения, свойственные версии 9.0.3:
- Увеличена производительность программы передачи WAL-логов на резервный сервер (walreceiver). Перед завершением работы добавлена дополнительная проверка на сброс всех скопированных WAL-логов на диск (fsync);
- При выполнении ALTER TABLE при необходимости теперь производится перепроверка уникальности и исключения ограничителей;
- Исправлено поведение EvalPlanQual для UPDATE-запросов, касающихся связанных зависимостями непохожих таблиц.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=29449)
[size="3"]Pqc и pgwatch - новые инструменты для кэширования запросов и мониторинга PostgreSQL [/size]Представлены (http://www.postgresql.org/about/news.1296) два новых полезных приложения для PostgreSQL:
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=29761)
[size="3"]Вышла пятая альфа-версия PostgreSQL 9.1. Релиз DBD::PG 2.18.0[/size]Вышла (http://www.postgresql.org/about/news.1306) пятая альфа-версия СУБД PostgreSQL 9.1, релиз которой ожидается в середине 2011 года. В пятой альфа-версии PostgreSQL 9.1 отмечено только два заметных улучшения, в остальном реализованы только небольшие улучшения и исправления ошибок. А анонсе утверждается, что скорее всего alpha5 будет последней альфа-версией в процессе подготовки PostgreSQL 9.1.
Из добавленных в PostgreSQL 9.1 Alpha 5 улучшений (http://developer.postgresql.org/pgdocs/postgres/release-9-1.html) можно отметить:
- Поддержка указания COLLATION-свойств (http://developer.postgresql.org/pgdocs/postgres/collation.html) для отдельных столбцов, доменов, индексов и выражений, что позволяет задать для разных столбцов свои правила хранения, сортировки и сравнения с учетом указанной локали. Например: CREATE TABLE test1 ( a text COLLATE "de_DE", b text COLLATE "ru_RU"...). Ранее COLLATION могли быть указаны только на уровне БД в целом.
- Поддержка синхронной репликации (http://developer.postgresql.org/pgdocs/postgres/warm-standby.html#SYNCHRONOUS-REPLICATION), при которой запасной сервер (standby) будет содержать гарантированно совпадающие с основным сервером данные - до получения подтверждения записи синхронизированных данных транзакция не будет считаться завершенной. Ранее репликация на запасной сервер осуществлялась только в асинхронном режиме. Синхронную репликацию можно применять для отдельных транзакций, что позволяет комбинировать оба механизма, используя по умолчанию быстрый асинхронный механизм для обычных операций и надежный синхронный для наиболее критичных изменений;
- Произведена переработка оптимизаций для агрегатных функций min/max;
- Увеличены максимальные значения большинства настроек, связанных с установкой таймаутов;
- Устранено более ста ошибок, в том числе исправлена утечка памяти при работе с массивами в PL/Python, решена проблема с эффектом гонки (race condition) в pg_basebackup, налажена обработка неизвестных литералов в запросах UNION, устранены проблемы связанные с делением на ноль, приведены в непротиворечивый вид права доступа для COMMENT ON ROLE.
Об улучшениях, добавленных в прошлых альфа-версиях, можно прочитать в тексте первого анонса (http://www.opennet.ru/opennews/art.shtml?num=27889).
Дополнение: Вышел (http://permalink.gmane.org/gmane.comp.db.postgresql.announce/1763) релиз интерфейсного perl модуля для PostgreSQL - DBD::PG 2.18.0. В новой версии устранено несколько утечек памяти; добавлен новый метод cancel(); улучшена работа тестового инструментария.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=30078)
[size="3"]Корректирующие релизы PostgreSQL: 9.0.4, 8.4.8, 8.3.15 и 8.2.21[/size]Доступны (http://www.postgresql.org/about/news.1310) новые релизы всех поддерживаемых веток PostgreSQL: 9.0.4 (http://www.postgresql.org/docs/current/static/release-9-0-4.html), 8.4.8 (http://www.postgresql.org/docs/current/static/release-8-4-7.html), 8.3.15 (http://www.postgresql.org/docs/current/static/release-8-3-15.html) и 8.2.21 (http://www.postgresql.org/docs/current/static/release-8-2-21.html). Наиболее важным исправлением в представленных выпусках является устранение критической ошибки в приложении pg_upgrade, которая может привести к нарушению обработки данных в базе (проблема проявляется появлением ошибки "ERROR: could not access status of transaction"). Перед использованием утилиты pg_upgrade необходимо обязательно установить (http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix) специально подготовленный патч. Для тех, кто использовал pg_upgrade ранее, требуется запустить специальный скрипт, который поможет предотвратить нарушение работоспособности базы.
Из других изменений можно отметить:
- Устранены проблемы со сборкой на системах HP-UX и Itanium;
- Обновлены файлы с определением параметров перехода на зимнее/летнее время;
- Устранена ошибка, которая могла привести к зависанию bgwriter в режиме восстановления;
- Добавлена защита от выполнения рекурсивных операций в процессе создания составных типов;
- Введен запрет на удаление таблиц для которых имеются незавершенные триггеры;
- Снят запрет на использовании слова "replication" в качестве имени пользователя;
- Решена проблема с крахом в процессе планирования работы GEQO;
- Улучшен процесс планирования объединения таблиц в ситуации отсутствия накопленной статистики;
- Исправлена ошибка, мешающая использованию в подзапросах конструкции "SELECT FOR UPDATE";
- Устранена утечка памяти при работе с массивами в PL/python;
- Добавлена поддержка создания SSL-соединений для пользователей без домашней директории;
- Добавлена возможность сборки PostgreSQL 9.0 с использованием 64-разрядного инструментария MinGW.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=30291)
[size="3"]Вышла первая бета-версия СУБД PostgreSQL 9.1 [/size] После пяти альфа-выпусков подготовка релиза СУБД PostgreSQL 9.1 (http://www.postgresql.org/docs/9.1/static/release-9-1.html) перешла (http://www.postgresql.org/about/news.1313) на стадию бета-тестирования. Сообщается, что представленная бета-версия содержит все запланированные для версии PostgreSQL 9.1 улучшения. В рамках бета-тестирования новшества добавляться не будут - вся работа теперь сосредоточена на исправлении ошибок. Релиз PostgreSQL 9.1 ожидается в течение лета.
Ветка PostgreSQL 9.1 отличается большим объемом нововведений, вероятно одним из самых крупных в истории единичных релизов PostgreSQL. Некоторые из новшеств представляют собой инновации, впервые реализованные в PostgreSQL и еще не доступные в других СУБД. Из ключевых улучшений можно отметить:
- Поддержка синхронной репликации (http://developer.postgresql.org/pgdocs/postgres/warm-standby.html#SYNCHRONOUS-REPLICATION), при которой запасной сервер (standby) будет содержать гарантированно совпадающие с основным сервером данные - до получения подтверждения записи синхронизированных данных транзакция не будет считаться завершенной. Ранее репликация на запасной сервер осуществлялась только в асинхронном режиме. Синхронную репликацию можно применять для отдельных транзакций, что позволяет комбинировать оба механизма, используя по умолчанию быстрый асинхронный механизм для обычных операций и надежный синхронный для наиболее критичных изменений;
- Поддержка указания COLLATION-свойств (http://developer.postgresql.org/pgdocs/postgres/collation.html) для отдельных столбцов, доменов, индексов и выражений, что позволяет задать для разных столбцов свои правила хранения, сортировки и сравнения с учетом указанной локали. Например: CREATE TABLE test1 ( a text COLLATE "de_DE", b text COLLATE "ru_RU"...). Ранее COLLATION могли быть указаны только на уровне БД в целом.
- Возможность исключение отражения в WAL-логе активности по отдельным таблицам. Подобные таблицы отличаются повышенной производительностью, но могут привести к потере данных в случае краха СУБД. Для создания подобных таблиц при выполнении "CREATE TABLE" следуюет указать признак "UNLOGGED (http://www.postgresql.org/docs/9.1/static/sql-createtable.html#SQL-CREATETABLE-DESCRIPTION)";
- Реализация KNN GiST (http://www.sai.msu.su/%7Emegera/wiki/2009-11-25) индексов (K-Nearest-Neighbor), добавляющая в GiST поддержку алгоритма (http://obartunov.livejournal.com/39196.html) оптимального поиска ближайших соседей, что может быть использовано для организации поиска географических объектов;
- Добавлен уровень изоляции "настоящая сериализация", основанный на REPEATABLE READ (бывший SERIALIZABLE), но с перепроверкой условий запроса (predicate locking);
- Возможность использования выражения "WITH" с операциями INSERT, UPDATE, DELETE, что позволяет осуществить рекурсивное обновление столбцов или обновление по сложному критерию, ранее требовавшему написания встраиваемой процедуры;
- Интеграция (http://www.postgresql.org/docs/9.1/static/sepgsql.html) поддержки SELinux для управления доступом на уровне объектов БД. Для привязки SELinux-меток к объектам или изменения меток следует использовать выражение "SECURITY LABEL (http://www.postgresql.org/docs/9.1/static/sql-security-label.html)". Пример: "SECURITY LABEL FOR selinux ON TABLE mytable IS 'system_u:object_r:sepgsql_table_t:s0';";
- Поддержка расширений (http://www.postgresql.org/docs/9.1/static/extend-extensions.html#EXTENSION), позволяющих упростить формирование пакетов, расширяющих функциональность СУБД. Для создания расширения следует использовать новые команды "CREATE (http://www.postgresql.org/docs/9.1/static/sql-createextension.html)/ALTER (http://www.postgresql.org/docs/9.1/static/sql-alterextension.html)/DROP (http://www.postgresql.org/docs/9.1/static/sql-dropextension.html) EXTENSION". Выражения createlang и droplang, а также старые методы установки contrib-модулей, в связи с появлением расширений объявлены устаревшими;
- Поддержка прикрепленных таблиц SQL/MED (http://ru.wikipedia.org/wiki/SQL/MED) (Management of External Data), позволяющих через таблицу-враппер управлять при помощи SQL внешними данными, не хранимыми силами СУБД.
Со списком более мелких улучшений, добавленных в прошлых альфа-версиях, можно познакомиться в тексте прошлого анонса (http://www.opennet.ru/opennews/art.shtml?num=27889).
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=30429)
[size="3"]Книга "Работа с Postgresql: настройка, масштабирование", версия 2[/size] Вышла обновленная редакция книги "Работа с Postgresql: настройка, масштабирование". В книге иследуются вопросы по настройки производительности Postgresql, репликации и кластеризации. Изобилие реальных примеров позволит как начинающим, так и опытным разработчикам быстро разобратся с особенностями масштабирования Postgresql для своих приложений. Версия книги 2.0.0 beta. Пока что только сконвертирован pdf. Все правки и замечания автор просит указывать на этой странице - https://github.com/l...d/postgresql... (https://github.com/le0pard/postgresql_book/issues)
Книга доступна в электронном виде под лицензией CC-BY-NC.
>>> Страничка книги (http://postgresql.leopard.in.ua/)
# linux.org.ru (http://www.linux.org.ru/news/doc/6263555)
[size="3"]Вышла вторая бета-версия СУБД PostgreSQL 9.1[/size]Представлена (http://permalink.gmane.org/gmane.comp.db.postgresql.announce/1820) вторая бета-версия СУБД PostgreSQL 9.1 (http://www.postgresql.org/docs/9.1/static/release-9-1.html), в которой продолжена работа по выявлению и исправлению ошибок. Набор новшеств уже сформирован и до выпуска релиза меняться не будет. Релиз PostgreSQL 9.1 ожидается в течение лета.
Из ключевых улучшений PostgreSQL 9.1 можно отметить:
- Поддержка синхронной репликации (http://developer.postgresql.org/pgdocs/postgres/warm-standby.html#SYNCHRONOUS-REPLICATION), при которой запасной сервер (standby) будет содержать гарантированно совпадающие с основным сервером данные - до получения подтверждения записи синхронизированных данных транзакция не будет считаться завершенной. Ранее репликация на запасной сервер осуществлялась только в асинхронном режиме. Синхронную репликацию можно применять для отдельных транзакций, что позволяет комбинировать оба механизма, используя по умолчанию быстрый асинхронный механизм для обычных операций и надежный синхронный для наиболее критичных изменений;
- Поддержка указания COLLATION-свойств (http://developer.postgresql.org/pgdocs/postgres/collation.html) для отдельных столбцов, доменов, индексов и выражений, что позволяет задать для разных столбцов свои правила хранения, сортировки и сравнения с учетом указанной локали. Например: CREATE TABLE test1 ( a text COLLATE "de_DE", b text COLLATE "ru_RU"...). Ранее COLLATION могли быть указаны только на уровне БД в целом.
- Возможность исключения отражения в WAL-логе активности по отдельным таблицам. Подобные таблицы отличаются повышенной производительностью, но могут привести к потере данных в случае краха СУБД. Для создания подобных таблиц при выполнении "CREATE TABLE" следуюет указать признак "UNLOGGED (http://www.postgresql.org/docs/9.1/static/sql-createtable.html#SQL-CREATETABLE-DESCRIPTION)";
- Реализация KNN GiST (http://www.sai.msu.su/%7Emegera/wiki/2009-11-25) индексов (K-Nearest-Neighbor), добавляющая в GiST поддержку алгоритма (http://obartunov.livejournal.com/39196.html) оптимального поиска ближайших соседей, что может быть использовано для организации поиска географических объектов;
- Добавлен уровень изоляции "настоящая сериализация", основанный на REPEATABLE READ (бывший SERIALIZABLE), но с перепроверкой условий запроса (predicate locking);
- Возможность использования выражения "WITH" с операциями INSERT, UPDATE, DELETE, что позволяет осуществить рекурсивное обновление столбцов или обновление по сложному критерию, ранее требовавшему написания встраиваемой процедуры;
- Интеграция (http://www.postgresql.org/docs/9.1/static/sepgsql.html) поддержки SELinux для управления доступом на уровне объектов БД. Для привязки SELinux-меток к объектам или изменения меток следует использовать выражение "SECURITY LABEL (http://www.postgresql.org/docs/9.1/static/sql-security-label.html)". Пример: "SECURITY LABEL FOR selinux ON TABLE mytable IS 'system_u:object_r:sepgsql_table_t:s0';";
- Поддержка расширений (http://www.postgresql.org/docs/9.1/static/extend-extensions.html#EXTENSION), позволяющих упростить формирование пакетов, расширяющих функциональность СУБД. Для создания расширения следует использовать новые команды "CREATE (http://www.postgresql.org/docs/9.1/static/sql-createextension.html)/ALTER (http://www.postgresql.org/docs/9.1/static/sql-alterextension.html)/DROP (http://www.postgresql.org/docs/9.1/static/sql-dropextension.html) EXTENSION". Выражения createlang и droplang, а также старые методы установки contrib-модулей, в связи с появлением расширений объявлены устаревшими;
- Поддержка прикрепленных таблиц SQL/MED (http://ru.wikipedia.org/wiki/SQL/MED) (Management of External Data), позволяющих через таблицу-враппер управлять при помощи SQL внешними данными, не хранимыми силами СУБД.
Со списком более мелких улучшений, добавленных в прошлых альфа-версиях, можно познакомиться в тексте прошлого анонса (http://www.opennet.ru/opennews/art.shtml?num=27889).
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=30860)
[size="3"]Компания EnterpriseDB представила релиз Postgres Plus Advanced Server 9.0 [/size]Компания EnterpriseDB (http://www.enterprisedb.com/), осуществляющая коммерческую поддержку PostgreSQL и финансирующая большое число разработчиков данной свободной СУБД, анонсировала (http://www.enterprisedb.com/news-events/press-releases/enterprisedb-announces-general-availability-postgres-plus-advanced-server) выход коммерческой СУБД Postgres Plus Advanced Server 9.0. Релиз коммерческого варианта PostgreSQL вышел спустя девять месяцев после выпуска PostgreSQL 9 (http://www.opennet.ru/opennews/art.shtml?num=28010) и отличается лучшей совместимостью с продуктами Oracle, дополнительными оптимизациями производительности и средствами для использования в качестве промышленной СУБД. 32- и 64-разрядные сборки Postgres Plus Advanced Server 9.0 доступны (http://www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server/downloads) для Linux, Windows и HP-UX. Стоимость продукта начинается от 4 тысяч долларов (предоставляется 60-дневный бесплатный пробный период).
Из добавленных в Postgres Plus Advanced Server 9.0 улучшений можно отметить:
- Увеличение производительности подсистемы Parallel Data Loader, скорость параллельной загрузки дампов возросла до 800%;
- Дополнительная совместимость с продуктами Oracle, включая поддержку приложений Oracle Pro*C;
- Поддержка репликации из MS SQL Server в PostgreSQL (поддержка репликации из СУБД Oracle была реализована ранее);
- Улучшение работы механизма кэширования Postgres Plus Infinite Cache. В частности, появилась возможность бесшовного добавления новых кэширующих узлов без сброса общего кэша;
- Поддержка непрерывной потоковой репликации, режима "горячего резерва" (Hot Standby) и других функций, добавленных (http://www.opennet.ru/opennews/art.shtml?num=28010) в ветке PostgreSQL 9.0.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=31091)
[size="3"]Третья бета-версия СУБД PostgreSQL 9.1 [/size]Представлена (http://www.postgresql.org/about/news.1331) третья бета-версия СУБД PostgreSQL 9.1 (http://www.postgresql.org/docs/9.1/static/release-9-1.html), в которой продолжена работа по выявлению и исправлению ошибок. Набор новшеств уже сформирован и до выпуска релиза меняться не будет. Обзор добавленных в PostgreSQL 9.1 улучшений можно просмотреть в тексте анонса (http://linuxforum.kz/index.php?/topic/478-postgresql/page__view__findpost__p__19263) прошлой тестовой версии. Релиз PostgreSQL 9.1 ожидается в конце лета или начале осени.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=31175)
[size="3"]Первый релиз Postgres Enterprise Manager[/size]Компания EnterpriseDB, осуществляющая коммерческую поддержку PostgreSQL и финансирующая большое число разработчиков данной свободной СУБД, представила (http://www.enterprisedb.com/products-services-training/products/postgres-enterprise-manager) новый продукт - Postgres Enterprise Manager. Продукт разработан для компаний, использующих большое число инсталляций PostgreSQL, и предназначен для удалённого мониторинга и управление крупными внедрениями этой СУБД. Цель, преследуемая разработчиками - упрощение администрирования множества баз данных, вне зависимости от того, на реальных серверах они работают или в виртуальных машинах.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=31284)
[size="3"]PgFincore 1.0 - система низкоуровневого манипулирования кэшами PostgreSQL [/size] Представлен (http://permalink.gmane.org/gmane.comp.db.postgresql.announce/1849) первый стабильный релиз проекта PgFincore 1.0 (http://villemain.org/projects/pgfincore), в рамках которого подготовлен набор инструментов (https://github.com/klando/pgfincore#readme) для анализа использования и управления дисковыми кэшами в PostgreSQL.
Из полезных функций PgFincore можно отметить возможность сохранения состояния дисковых кэшей с их последующим восстановлением, например, для ускорения "прогрева" сервера после перезагрузки или при поднятии запасного сервера на другой машине. Сохранив прокэшированные в памяти дисковые блоки таблиц и индексов перед перезагрузкой сервера и восстановив их после, можно повысить производительность начального этапа работы СУБД за счет минимизации ввода/вывода при выполнении штатных задач.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=31342)
[size="3"]Компания Apple заменила MySQL на PostgreSQL в Mac OS X 10.7 Lion Server [/size]Компания Apple официально удалила (http://www.theregister.co.uk/2011/08/02/apple_dumps_mysql_from_mac_os_x_server/) СУБД MySQL из поставки Mac OS X 10.7 Lion Server и включила вместо него PostgreSQL. Причины такого хода не сообщаются, но судя по всему подобный шаг связан с тем, что Apple понемногу уходит от использования GPL-кода в Mac OS X - Кроме MySQL весной из Mac OS X был исключен (http://www.opennet.ru/opennews/art.shtml?num=30033) другой GPL-продукт - Samba.
По мнению вице-президента компании EnterpriseDB, курирующей разработку PostgreSQL, Apple всегда с опаской относилась к лицензии GPL. В случае с MySQL лицензионные вопросы усугубились еще и тем, что компания Oracle, которой принадлежит вся связанная с MySQL интеллектуальная собственность, инициировала судебную тяжбу против Google в связи с переработкой под другой лицензией технологий Java, свободно доступных под GPL. В случае Apple для управления MySQL используются дополнительные графические конфигураторы и надстройки, код которых не является открытым.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=31382)
[size="3"]Первый релиз клиента для PGXN, сети распространения дополнений к PostgreSQL [/size]Представлен (http://permalink.gmane.org/gmane.comp.db.postgresql.announce/1935) PGXN Client 1.0 (http://pgxnclient.projects.postgresql.org/), первый релиз клиентского приложения, предназначенного для автоматизации поиска, загрузки, сборки, установки и удаления дополнений для СУБД PostgreSQL, представленных в архиве PGXN (http://pgxn.org/) (PostgreSQL Extension Network). Например, для установки определённого дополнения на сервер достаточно выполнить "pgxn install дополнение", а для загрузки дополнения только для одной БД - "pgxn load -d БД дополнение".
В рамках проекта PGXN развивается напоминающий CPAN архив для распространения дополнений к СУБД PostgreSQL, включая реализацию инфраструктуры для загрузки и распространения дополнений, подготовку централизованного индекса и API для доступа к мета-данным, создание системы поиска дополнений и набора утилит для тестирования дополнений. В настоящий момент в архиве представлено 57 дополнений и 105 релизов.
Среди полезных дополнений:
- pg_log_userqueries (http://pgxn.org/dist/pg_log_userqueries/)/query_recorder (http://pgxn.org/dist/query_recorder/) (ведение лога SQL-запросов и активности пользователей)
- pair (http://pgxn.org/dist/pair/) (тип данных для эффективного хранения данных в формате ключ/значение)
- omnipit (http://pgxn.org/dist/omnipitr/) (система управления WAL-файлами)
- mysqlcompat (http://pgxn.org/dist/mysqlcompat/) (набор функций, специфичных для MySQL)
- plparrot (http://pgxn.org/dist/plparrot/) (написание встроенных процедур на Perl 6);
- citext (http://pgxn.org/dist/citext/) (текстовый тип без различия строчных и прописных букв);
- multicorn (http://pgxn.org/dist/multicorn/) (биндинг для написания Foreign Data Wrapper на языке Python). Готовые врапперы доступны для MySQL (http://pgxn.org/dist/mysql_fdw), Oracle (http://pgxn.org/dist/oracle_fdw), Redis (http://pgxn.org/dist/redis_fdw/), LDAP (http://pgxn.org/dist/ldap_fdw/), Twitter (http://pgxn.org/dist/twitter_fdw/) и CouchDB (http://pgxn.org/dist/couchdb_fdw/);
- pg-json (http://pgxn.org/dist/pg-json) (тип для хранения данных в формате JSON);
- pgmemcache (http://pgfoundry.org/projects/pgmemcache/) (API для обращения к memcached);
- PL/R (http://www.joeconway.com/plr/), PL/Proxy (http://pgfoundry.org/projects/plproxy/);
- Системы репликации Golconde (http://code.google.com/p/golconde/) и Slony-I (http://slony.info/).
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=32407)