Как я распилил 1,1 ТБ default-партиции и не уронил прод
Мы забыли вовремя создать партиции, и все новые данные полетели в events_default_partition . Default дорос до ~1.1 ТБ, а простое «ATTACH PARTITION» требовало часов сканирования и долгой блокировки. В статье — почему «быстрые» рецепты оказываются медленными, как я перенёс данные в нужные диапазоны, и как мы уложили критическую блокировку в 44 с . Default-партиция — это не озеро Байкал. Если туда всё сливать, экосистема потом мстит. 44 секунды блокировки: план операции
https://habr.com/ru/articles/977528/
#партиционирование_PostgreSQL #ATTACH_PARTITION #plpgsql #автоматизация_обслуживания_БД #explain_analyze #downtime #advisory_lock #CHECK_constraint #partitioning #database_migrations
Перейти на PostgreSQL и повысить качество системы
В интернете есть много статей на тему «как перевести старую систему с Oracle на PostgreSQL». Как мигрировать схему данных, сами данные и логику. Не буду повторять это, просто сравню две СУБД на небольшом вымышленном учебном примере. Я расскажу про то, как организовать процесс написания и проверки кода системы для PostgreSQL, чтобы на выходе получился продукт даже более качественный, чем он мог быть без смены СУБД. Чтобы было интереснее, я решил объединить два жанра и сделать техническую статью в виде фантастического рассказа. Тут будет и мультивселенная, и путешествия во времени. Вся фантастика оформлена в виде цитат, чтобы те, кто хочет просто факты, могли не терять время.
https://habr.com/ru/companies/bercut/articles/969660/
#разработка #plsql #plpgsql #отладка #модульный_тест #линтер #беркут #bercut
Вы все еще изобретаете велосипеды при миграции данных из Oracle в Postgres? Мы тоже
В статье я расскажу о практических кейсах и сложностях, возникающих (и возникавших) в процессе миграции данных между СУБД (Oracle -> Postgres), а также о собственном инструменте миграции данных, который вы также можете попробовать.
Today I discovered "lnav"or the Log Navigator cli utility. It is a truly awesome log follower and navigator for the terminal which works beautifully with PostgreSQL log files.
#postgres #postgresql #debugging #sql #plpgsql #lnav #logs #logging #rdbms #system #administration
Опыт разработки на доработанном pgTap
В этой статье я поделюсь своим опытом разработки юнит-тестов внутри базы данных под управлением PostgreSQL. А также расскажу, зачем мне потребовалось доработать расширение pgTap. pgTap – это расширение PostgreSQL для разработки юнит-тестов. Сами тесты, как, собственно, и pgTap, пишутся на plpgSQL, что означает низкий порог вхождения для разработчиков PG. Уверен, что читатель, по крайней мере, знаком с техникой разработки через тесты. Поэтому не буду пускаться в описание теории юнит-тестирования. Благо литературы на эту тему более чем достаточно. Тем не менее, чтобы быть понятым, приведу некоторые детали ниже.
https://habr.com/ru/companies/gnivc/articles/877314/
#unittesting #plpgsql #sql #pgtap #бд #базы_данных #postgresql
Диаграммы классов UML из PostgreSQL. Окончание
Это вторая часть статьи, в которой обсуждаются вспомогательные функции, использующиеся функциями предназначенными для непосредственного формирования PlantUML-скриптов. Основные процедур и функции обсуждались в первой части статьи . Здесь же присутствует контрольный пример с таблицами, которые использовались для демонстрации функций.
Диаграммы классов UML из PostgreSQL. Часть первая
Статья продолжает знакомить с функциями для документирования баз данных PostgreSQL . Но на этот раз речь пойдет о специальных функциях, подготавливающих описания диаграмм классов на языке PlantUML. В качестве основного средства документирования выбрана система управления проектами TRAC с подключенным плагином plantuml.