The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз СУБД PostgreSQL 9.0

20.09.2010 16:31

После года разработки вышла версия 9.0 СУБД PostgreSQL в которой представлено более 200 улучшений. PostgreSQL 9.0 является первым релизом со встроенной системой бинарной репликации в режиме реального времени, позволяющей организовать горячее резервное копирование и потоковую репликацию.

Ключевые улучшения:

  • Реализация режима "горячего резерва" (Hot Standby), при котором появилась возможность выполнения select запросов на запасном сервере, т.е. теперь можно штатными средствами организовать master-slave репликацию с практически нулевой дополнительной нагрузкой на сервер (с master сервера просто копируются WAL-логи (write-ahead logging), без каких-либо блокировок и дополнительного вызова триггеров). Ранее синхронизированный сервер не мог выполнять запросы, и находился в неактивном режиме, при котором он мог только перехватить управление в случае сбоя основного сервера;
  • Поддержка режима потоковой репликации (Streaming Replication), суть которой в организации непрерывной передачи бинарных WAL-логов нескольким запасным серверам PostgreSQL;
  • Поддержка 64-разрядной версии для платформы Windows;
  • Замена pg_listener на новый работающий в памяти механизм Listen/Notify, ориентированный на высокопроизводительный обмен сообщениями и обслуживание очередей. Listen/Notify реализован в виде очереди событий в оперативной памяти, вместо таблицы;
  • Для автоматизации обновления базы при переходе на более новую ветку PostgreSQL (с 8.3 или 8.4 до 9.0) добавлена утилита pg_upgrade;
  • Через оператор "[[ https://www.postgresql.org/docs/devel/sql-do.html DO]]" теперь можно выполнять код в SQL-выражении на процедурном языке без создания отдельной функции. Директива "DO" теперь поддерживает ad-hoc и "anonymous" блоки;
  • Возможность назначать триггеры для отдельных столбцов и выполнять триггеры по условиям;
  • По умолчанию теперь активируется встроенный язык PL/pgSQL. Переработан парсер PL/pgSQL. Разнообразные улучшения также добавлены в реализации PL/Perl и PL/Python, например, добавлена поддержка Python 3;
  • Добавлены "исключающие ограничения", представляющие собой обобщенный аналог UNIQUE и реализующие новые способы гарантии логической целостности данных в базе. Возможность задания флага [[https://www.postgresql.org/docs/devel/sql-createtable.html#SQL-CREATETABLE-COMPATIBILITY%20DEFERRABLE]] для выражений с признаком UNIQUE (отложенная UNIQUE-проверки);
  • Улучшена поддержка хранения в одном поле произвольного набора данных в формате ключ/значение;
  • В оптимизаторе появились средства для автоматического удаления лишних JOIN-ов и оптимизации для ORM-запросов (object relational mapper).

  • Автоматический возврат числа строк, фигурирующих в выполненном SELECT-запросе. В psql данное значение не отображается, но может быть получено с использованием программного интерфейса, подобного libpq.
  • Поддержка функций ROWS PRECEDING и ROWS FOLLOWING в WINDOW-блоке SELECT-запроса, позволяющих сформировать кадр из заданного числа строк, относительно текущей позиции.
  • Использование блока ORDER BY внутри агрегатных функций (например: array_agg(a ORDER BY b)), теперь не нужно прибегать к ухищрениям для получения упорядоченного набора записей на входе агрегатных функций;
  • Добавлена возможность контроля доступа к большим объектам (large objects);
  • В функции регулярных выражений добавлена поддержка независимых от регистра проверок и классификации символов, привязанной к текущей локализации, при использовании кодировки UTF8 на сервере;
  • Для упрощения разграничения доступа для множества объектов реализованы конструкции "[[ https://www.postgresql.org/docs/devel/sql-grant.html GRANT ALL ON]]" и "[[ https://www.postgresql.org/docs/devel/sql-alterdefaultprivileges.html ALTER DEFAULT PRIVILEGES]]". Добавлена поддержка установки прав для BLOB-ов (больших бинарных объектов);
  • Возможность использования именованных параметров в функциях;
  • Поддержка отложенных проверок уникальных ключей;
  • Поддержка конструкции IF EXISTS в DROP COLUMN/CONSTRAINT;
  • Возможность вывода результатов работы EXPLAIN в YAML, XML и JSON форматах;
  • Новый шестнадцатеричный формат ввода и вывода для типа данных BYTEA;
  • Новые возможности безопасности - аутентификация через RADIUS, улучшения в LDAP, модуль проверки стойкости паролей "[[ https://www.postgresql.org/docs/devel/passwordcheck.html passwordcheck]]";
  • Улучшения в "[[ https://www.postgresql.org/docs/devel/hstore.html hstore]]", включая новые функции и поддержка данных большого размера;
  • Новая реализация VACUUM FULL, полностью перезаписывающая таблицы и индексы, что быстрее и эффективнее в большинстве случаев, чем перемещение отдельных строк для повышения компактности хранилища;
  • Поддержка многопоточности в утилите pgbench, что позволяет задействовать все CPU в системе и сгенерировать более реалистичную тестовую нагрузку.

Дополнение: Доступен перевод на русский язык официального пресс-релиза о выходе PostgreSQL 9.0. Практические примеры по использованию новых конструкций PostgreSQL 9.0 можно посмотреть в wiki-документе "What's new in PostgreSQL 9.0"

  1. Главная ссылка к новости (http://www.postgresql.org/abou...)
  2. OpenNews: Вышла первая альфа-версия PostgreSQL 9.1
  3. OpenNews: NASA планирует использовать Nagios и PostgreSQL для мониторинга компьютеров МКС
  4. OpenNews: Корпорация EMC займется продвижением решений на базе PostgreSQL
  5. OpenNews: Уведомление о скором прекращении поддержки PostgreSQL 7.4 и 8.0
  6. OpenNews: PostgreSQL 9.0 перешел на этап бета-тестирования
Автор новости: Sylvia
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/28010-postgresql
Ключевые слова: postgresql, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (20) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Devider (ok), 16:59, 20/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ну круто, можно будет с триггерами на столбцах поиграться.
     
  • 1.2, RedRat (ok), 17:04, 20/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Осталось дождаться порта на Фряхе, и буду пробовать. Давно назрела необходимость в родной мастер-слейв репликации.
     
     
  • 2.4, vadiml (ok), 18:09, 20/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот только думаю багов с репликацией ещё кучу выловят -- слишком это новое для pg
     
  • 2.7, iZEN (ok), 19:13, 20/09/2010 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Внезапно: http://www.freshports.org/databases/postgresql90-server/
     
     
  • 3.13, FSA (ok), 00:20, 22/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Только вот когда он появился там лежал 8.4.3. Но чуть позже обновили. За одно и клиент появился. Ставил новую установку. Вроде всё собралось.
     

  • 1.3, zuborg (?), 17:50, 20/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Интересно, а баг шедулера который вместо однократного вычисления значения STABLE функции и использования индекс-скана, но использовался seq-scan для каждой строчки и каждый раз вычислялось значение STABLE функции, починили, или оставили как "фичу":

    http://postgresql.1045698.n5.nabble.com/BUG-5611-SQL-Function-STABLE-promotin

     
  • 1.5, старый пгпульщик (?), 18:16, 20/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ну все!!! Надеюсь теперь можно будет распрощаться с pgpool. :)
     
     
  • 2.6, zuborg (?), 18:21, 20/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Чтобы опять на каждую sql-сессию форкать postgres ?
     
  • 2.9, Pilat (ok), 20:53, 20/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Ну все!!! Надеюсь теперь можно будет распрощаться с pgpool. :)

    C чего бы это? Репликация встроенная - это ещё не всё что надо для хорошей жизни.
    кстати. pgpool II использует свойства репликации в 9-ке.

     

  • 1.8, The (?), 19:58, 20/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тройное ура! Всей командой в нетерпением ждали релиза девятки. Наконец и постгряйщики, как белые люди, смогут пользоваться анонимный процедурами и другими, не менее полезными плюшками.
     
  • 1.10, Аноним (-), 04:32, 21/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В notify-кациях вроде сейчас можно параметр передавать?
     
  • 1.11, Xaionaro (ok), 09:09, 21/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Сколько всяких вкусностей! Пожалуй серьёзно задумаюсь о переходе с MySQL, а pgsql как стандартного СУБД.
     
     
  • 2.14, Аноним (-), 07:14, 23/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    если ты пользуешься mysql, стоит задуматься о переходе на sqlite, а не pgsql
     
     
  • 3.15, Xaionaro (ok), 08:34, 23/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >если ты пользуешься mysql, стоит задуматься о переходе на sqlite, а не
    >pgsql

    Спасибо за совет. Никогда им не пользовался. А можно узнать почему именно он?

     
     
  • 4.16, Pilat (ok), 13:35, 23/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>если ты пользуешься mysql, стоит задуматься о переходе на sqlite, а не
    >>pgsql
    >
    >Спасибо за совет. Никогда им не пользовался. А можно узнать почему именно
    >он?

    Так анониму что mysql, что sqlite - одно и то же, он ни того ни другого не знает, значит они одинаковые.

     
     
  • 5.17, Xaionaro (ok), 17:39, 23/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>>если ты пользуешься mysql, стоит задуматься о переходе на sqlite, а не
    >>>pgsql
    >>
    >>Спасибо за совет. Никогда им не пользовался. А можно узнать почему именно
    >>он?
    >
    >Так анониму что mysql, что sqlite - одно и то же, он
    >ни того ни другого не знает, значит они одинаковые.

    Мдя, решил почитать описание sqlite и тоже не понял, как это может являться альтернативой mysql :)

     
     
  • 6.18, z (??), 21:24, 23/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    You have been trolled.
     

  • 1.19, Аноним (-), 11:55, 01/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Где можно почитать про будущие нововведения?
     
     
  • 2.20, anonymous (??), 17:26, 11/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    TODO list на странице PostgreSQL
     

  • 1.21, Аноним (-), 16:29, 17/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как у новой версии с асинхронной мульти-мастер репликацией?
    решена ли проблемы с ошибками обновлений,уникальности и удаления?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру