Инженеры компании DBI участвовали в международной технической конференции PGConf.Russia 2023 по открытой СУБД PostgreSQL!
Здесь ежегодно собираются более 700 разработчиков, администраторов баз данных, IT-директоров и менеджеров из разных городов и стран. В течение 2-х дней участники слушали блиц-доклады, обменивались профессиональным опытом и обсуждали задачи, с которыми сталкиваются ежедневно в работе.
Главные темы — миграция с зарубежных систем на Postgres, выход новой версии PostgreSQL 16, а также эксплуатация СУБД. Спикеры конференции описали мониторинг и настройку СУБД, в ряде докладов рассказали об отказоустойчивых и масштабируемых системах, а разработчики поделились личным опытом.
В ней появится двунаправленная логическая репликация, которая позволит настроить аналог мультимастера, не используя вспомогательные программы. Параметр reserverd_connections для «обычных» пользователей поможет настроить стабильную работу мониторинговых процессов. В случае если пул соединений будет переполнен, это позволит не терять важные данные мониторинга, которые нужны для анализа подобных проблем. Для пользователей мониторинга будет добавлена встроенная роль MAINTAIN. Она позволит собирать метрики без прав SUPERUSER.
К новым функциям можно отнести также использование расширения pg_profile, которое позволяет:
В PostgreSQL 16 расширены подходы анализа проблемы при обновлении и восстановлении поврежденных данных.
Переход с Oracle на PostgreSQL можно осуществить с помощью Ora2Pg. Благодаря этому инструменту допускается перенести данные из Oracle в Postgres. Однако есть множество подводных камней, которые могут помешать это сделать. Всегда стоит учитывать особенности этих двух СУБД, такие как: типы данных и их отличия, разницу работы функций и их логики. Например, легко ошибиться в точности TIMESTAMP формата или запутаться в понятиях о типе NULL в Oracle и PostgreSQL. От этих особенностей надо отталкиваться при формировании миграционного плана, а делать миграцию лучше поэтапно.
Конечно, чтобы не допустить потери данных, лучше всегда делать backup. Однако если по какой-либо причине возникли повреждения, а бэкапов нет, то есть несколько инструментов, которые помогут частично восстановить повреждённые данные. Физические повреждения блоков можно найти, запустив функцию molotilka. Функция поочередно перечитает каждый блок объекта и выдаёт ошибку, если найдёт повреждённый блок.
Что делать потом? — Есть несколько решений, например, pg_filedump, pg_waldump. С их помощью можно попытаться найти в какое время повредились данные, какие блоки и какого именно объекта побились, вплоть до поиска строки в таблице. Затем блоки можно очистить, например, с помощью pg_surgery. pg_surgery. Это очень опасная функция, которая может сильно навредить всему кластеру. Однако в опытных руках она может так же и спасти БД от полной потери данных.
Небезызвестный pg_profile собирает в себе массу метрик, которые помогают проанализировать здоровье БД. Сейчас в публичной ветке на github появился профиль для графаны, что делает развертку минимального мониторинга еще проще, а источником данных — сам Postgres.
Для этого идеально подойдёт pg_index_watch — это расширение, которое помогает бороться с bloat в индексах на автоматической основе. Расширение постоянно собирает статистику по блоату в индексах. На основе полученных данных и настроек перестраивает индексы автоматически в режиме CONCURRENTLY. Важный момент, что утилита работает на основе первоначально полученных данных об объекте, из-за чего после установки расширения она перестраивает все индексы в БД, что может стать неприятным сюрпризом.
На основе полученной информации мы выделили критерии, которые могут повлиять на трудозатраты для выполнения миграции в наших будущих проектах:
В течение последних 6 лет DBI активно работает с PostgreSQL. Более двадцати компаний находятся на поддержке в формате 24/7, а PostgreSQL используют как стандарт при разработке новых решений. Мы реализовали три проекта по миграции с MSSQL и Oracle на PostgreSQL и готовы к новым IT-проектам.
Благодарим организаторов компании Postgres Professional за то, что собрали всех вместе, устроили такое интересное мероприятие и красиво завершили его лекцией об экстремальной астрономии!
Наш менеджер свяжется в течение 2х часов