1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Pg-Partman

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 20 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 21:50 171ec7b

5.1.0

===== Новые функции

— Поддержка секционирования LIST для целых чисел с одним значением. (Проблема № 236) — Добавление явного упорядочивания обслуживания набора секций. (Проблема №497) — В таблицу part_config добавлен новый столбец maintenance_order. Если он установлен, наборы секций будут выполняться в порядке возрастания числовых значений. — По умолчанию имеет значение NULL и не требуется. — Значения NULL всегда идут после числовых наборов без гарантированного порядка. — Добавлен новый столбец part_config.maintenance_last_run для отслеживания последнего времени выполнения обслуживания для этого набора секций. Отметка времени обновляется только в случае успешного завершения обслуживания этого набора секций, поэтому её можно использовать в качестве показателя мониторинга. — REPLICA IDENTITY теперь автоматически наследуется от родительской таблицы всем дочерним таблицам (№ 502). — Обратите внимание, что это будет применяться только к вновь созданным дочерним таблицам для существующих наборов секций. Существующие дочерние таблицы необходимо обновить вручную. — ЭКСПЕРИМЕНТАЛЬНО — Поддержка числового секционирования (проблема № 265). — Обратите внимание: хотя столбец раздела теперь может иметь числовой тип, интервал секционирования по-прежнему должен быть целым числом. — Пожалуйста, тщательно оцените эту функцию перед использованием в рабочей среде и не стесняйтесь открывать проблемы или обсуждения на репозитории Github как для положительных, так и для отрицательных отзывов. Положительные отзывы ускорят вывод этой функции из экспериментальной.

Исправления ошибок

— Удаление дочерних таблиц из публикации во время хранения, которое сохраняет таблицы (проблема Github № 523). — Разрешение вызова обслуживания разделов на репликах без ошибки. Вызов обслуживания на реплике ничего не сделает и завершится корректно. Позволяет настроить согласованные задания cron между системами аварийного переключения. (проблема Github № 569). — Правильное наследование табличных пространств (проблема Github № 609). — Это была регрессия в версии 5.0, которая ошибочно перестала работать. Наследование табличного пространства по-прежнему работает должным образом в версии 4.x. — Разрешить работу флага infinite_time_partitions, даже если набор секций не содержит данных. Это может произойти в наборах секций с сохранением и низкой записью данных (проблема Github № 585). — Исправлен крайний случай, когда наборы секций с нулевыми данными всё равно создавали бы новые разделы. Срабатывает при обслуживании partman нескольких наборов секций, и обслуживание выполняется сначала для одного с данными, а затем для другого без данных. — Исправлено выбрасывание функций partition_data ошибки, если исходная таблица находилась не в той же схеме, что и родительская таблица. (проблема Github № 639).

4.8.0

===== Исправление ошибок

— Добавлен параметр pg_analyze в функцию partition_gap_fill, чтобы разрешить пропуск анализа набора секций, если заполнение промежутков фактически создаёт новые секции. Обратите внимание, что эта опция недоступна в версии 5.x, поскольку шаг анализа был переработан и больше не запускается автоматически во время вызова функции заполнения промежутков. — Обратите внимание, что нет возможности напрямую установить версию 4.8.0. Сначала необходимо установить более раннюю версию, а затем обновить её до версии 4.8.0. Рекомендуется перейти на последнюю основную версию для продолжения поддержки pg_partman.

5.0.0 и 5.0.1

============= Примечания к обновлению

— Обновление до версии 5.x пришлось разделить на две части, чтобы можно было выполнить определённые условия ограничения транзакций. См. pg_partman_5.0.1_upgrade.md, если вы столкнётесь с какими-либо ошибками, касающимися триггеров при попытке обновления. Отдельной версии 5.0.0 для pg_partman больше нет, и все пользователи должны обновиться до версии 5.0.1. — Если вы уже успешно обновились до версии 5.0.0, обновление до версии 5.0.1 не внесёт никаких изменений. Новая минорная версия предназначена для поэтапного обновления. — Рекомендуется сделать резервную копию таблиц part_config и part_config_sub перед обновлением, просто чтобы убедиться, что их можно восстановить в случае возникновения каких-либо проблем. Эти таблицы воссоздаются в процессе обновления. — Если во время попытки обновления вы видите какие-либо ошибки о существовании следующих таблиц, пожалуйста, просмотрите их содержимое и убедитесь, что вам не нужны никакие данные конфигурации, содержащиеся в них. Удалите их, если они не нужны, и Попробуйте обновление снова: part_config_pre_500_data, part_config_sub_pre_500_data.

Большое спасибо всем, кто помогал с тестированием и проверкой кода во время разработки версии 5.x. В частности:

  • Ли Даунс и команде Crunchy Data за обширное тестирование;
  • vitaly-burovoy на Github за удивительные оптимизации и проверку кода;
  • andyatkinson на Github за проверку документации и указание на моё устаревшее использование термина «native», теперь, когда поддерживается только один метод разделения;
  • hyde1 на Github за обнаружение проблемы обновления и более простого метода обновления для версии 5.0.1;
  • И как всегда pgTAP за то, что сделали тестирование намного проще.

Изменения:

  • Убрана поддержка разделения на основе триггеров. Теперь всё разделение выполняется с использованием встроенного декларативного разделения. Тип разделения в pg_partman теперь будет относиться к типам поддерживаемого декларативного разделения. По состоянию на версию 5.0.1 поддерживается только диапазон, но другие находятся в разработке (проблема Github №490).
    • См. migrate_to_declarative.md для получения помощи по переходу от разделения на основе триггера.
  • Многие функции изменили свои параметры, были переименованы, переставлены или удалены. Сейчас они должны быть более согласованными в кодовой базе. Пожалуйста, проверьте ВСЕ вызовы функций pg_partman, чтобы убедиться, что имена и значения ваших параметров были обновлены в соответствии с изменениями.
    • Из таблиц part_config и part_config_sub были удалены некоторые столбцы и переставлены так, чтобы содержать только поддерживаемые функции.
  • Из-за того, что большинство объектов расширения удаляются и воссоздаются, привилегии для объектов расширения НЕ сохраняются, как это было сделано при прошлых обновлениях расширения. Перед обновлением pg_partman убедитесь, что существующие привилегии записаны, и предоставьте/отмените их после завершения обновления. Проверьте следующие системные каталоги для получения информации о привилегиях для объектов pg_partman: information_schema.routine_privileges и information_schema.table_privileges.
  • Некоторые специализированные интервалы времени были объявлены устаревшими. См. pg_partman_5.0.1_upgrade.md для дополнительных указаний по переносу неподдерживаемых методов разделения на поддерживаемые.
    • Все значения интервалов времени теперь должны быть допустимыми значениями для типа данных интервала. Предыдущие значения интервала еженедельно, ежечасно, ежедневно и т. д. больше не поддерживаются.
    • Удалено специализированное квартальное разделение (см. документ миграции 5.0.1).
    • Удалено специализированное еженедельное разделение с номерами недель в стиле ISO (см. документ миграции 5.0.1).
    • Часовое разделение теперь имеет секунды в суффиксе дочернего раздела. Миграция для этого не требуется, но просто имейте в виду, что любые новые наборы разделов, созданные с этим интервалом, могут выглядеть иначе, чем существующие из предыдущих версий pg_partman.
  • Минимальная требуемая версия PostgreSQL теперь 14.
    • Требуется для вызова процедур через фонового рабочего (Github PR №242).
  • Отброшено автоматическое обновление публикации набора разделов, который был частью логической репликации подписки. Начиная с PostgreSQL 14, больше невозможно вызывать ALTER SUBSCRIPTION...REFRESH PUBLICATION внутри блока транзакций, что означает, что его больше нельзя вызвать через функции обслуживания. На данный момент для стороны подписки наборов разделов, которые являются частью логической репликации, потребуется независимый вызов этого оператора обновления (проблема Github №572).
  • Столбец управления разделом, являющийся NOT NULL, теперь полностью применяется при создании новых наборов разделов.

Новые функции:

  • Заменено всё использование термина «родной» на «декларативный», чтобы лучше соответствовать терминологии PostgreSQL для встроенного разделения.
  • Все временные интервалы упрощены до YYYYMMDD для интервалов больше или равных 1 дню и YYYYMMDD_HH24MISS для интервалов меньше 1 дня. Удалены лишние подчёркивания, чтобы можно было использовать более длинные базовые имена разделов. Существующие суффиксы разделов оставлены без изменений. Поддержка по-прежнему будет осуществляться, но вновь созданные наборы разделов по умолчанию будут использовать новые шаблоны именования. Рекомендуется выполнить миграцию на новые суффиксы, когда это возможно, чтобы обеспечить будущую поддержку возможных изменений в pg_partman. Документацию (doc/pg_partman_5.0.1_upgrade.md) по переносу старых специализированных еженедельных/ежеквартальных наборов разделов, которые будут поддерживаться в версии 5.0.1, можно использовать в качестве руководства для переноса других дочерних имён таблиц.

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

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

Добавлена опция, позволяющая сделать таблицу по умолчанию необязательной во время создания раздела (p_default_table) (проблема Github № 489).

Начиная с PostgreSQL 13, вновь созданные дочерние таблицы в наборе разделов, который является частью логической репликации PUBLICATION, автоматически добавляются к этой PUBLICATION. Поэтому конфигурация массива «publications» в таблицах конфигурации pg_partman была удалена. Просто убедитесь, что родительская таблица является частью необходимых публикаций, и теперь она будет автоматически обрабатываться ядром PostgreSQL (проблема Github № 520).

Обратите внимание, что подписка не обновляется автоматически для учёта новых таблиц, добавленных в опубликованный набор разделов. См. примечание выше в РАЗРЫВНЫХ ИЗМЕНЕНИЯХ относительно обновлений на стороне подписки.

Добавлена поддержка удаления индексов для разделов, перемещённых в другую схему в рамках хранения (запрос на включение Github PR № 449).

Создание шаблонной таблицы теперь необязательно при вызове create_parent(). Установите p_template_table в false, чтобы пропустить создание шаблонной таблицы. Обратите внимание, что это не логическое значение, поскольку этот параметр также предназначен для получения имени шаблонной таблицы, поэтому необходимо установить явное строковое значение false (проблема Github № 505).

Множество оптимизаций серверной части и упрощение кода.

Разрешить переопределение переменной среды PG_CONFIG при запуске make (запрос на включение Github PR № 589).

ИСПРАВЛЕНИЯ ОШИБОК

Исправлен крайний случай с infinite_time_partitions. Если установлено значение true и были вставлены данные далеко впереди от «сейчас», новые дочерние таблицы не создавались бы на основе предварительного просмотра.

Сделайте ошибки из show_partition_info() более понятными (проблема Github № 542).

Убедитесь, что значение bgw_type правильно установлено в структурах фоновых рабочих процессов (проблема Github № 573).

Для CHANGELOG до версии 5.0.0 см. файл CHANGELOG-pre-5.0.0.txt.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-Pg-Partman.git
git@api.gitlife.ru:oschina-mirror/mirrors-Pg-Partman.git
oschina-mirror
mirrors-Pg-Partman
mirrors-Pg-Partman
master