www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Мониторинг  

Какая задача мониторинга отнимает больше всего времени?

Многие системные администраторы тратят до 30% рабочего времени на рутину мониторинга. Но

 Читать далее...

Рынок труда  

Какие навыки вы хотите развивать в 2026 году?

Рынок труда меняется быстро. Еще вчера его называли рынком соискателей, а сегодня

 Читать далее...

Книжная полка  

От сисадмина до архитектора: книги, которые прокачают ваш стек в этом году

Новинки от издательства «БХВ» отличаются тем, что в них часто делается упор

 Читать далее...

Автоматизация  

Автоматизируем рутину: что реально работает?

Многие сисадмины автоматизировали что-то за последний год. Но далеко не все остались

 Читать далее...

Защита ИТ-системы  

Практическая защита: что вы внедрили и что мешает?

Какие меры безопасности реально внедрить в реальных условиях – и что не

 Читать далее...

Вопрос-ответ  

Обеспечиваем безопасную эксплуатацию базы данных

Что для вас чаще всего является причиной инцидентов с БД? Как вы

 Читать далее...

Книжная полка  

От «безопасного» Linux до Контролируемого взлома

Издательство «БХВ» продолжает радовать читателей интересными новинками и в наступившем году. Вы можете

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 13281
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 13394
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 10851
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 5803
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 6648
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 6521
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 9381
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 5973
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 6201
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 10350
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 13790
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 15260
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 17583
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 12449
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 10446
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 8662
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 7262
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 6074
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 5708
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 6020
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Обеспечиваем безопасную эксплуатацию базы данных

Архив номеров / 2026 / Выпуск №1-2 (278-279) / Обеспечиваем безопасную эксплуатацию базы данных

Рубрика: Безопасность /  Вопрос-ответ

 

Обеспечиваем
безопасную эксплуатацию базы данных

Что для вас чаще всего является причиной инцидентов с БД? Как вы мониторите БД? Как у вас организованы бэкапы? Как вы проводите изменения схемы и миграции? Приходилось ли вам настраивать шардирование/партицирование, и что было самым сложным?

 


На вопросы отвечает Георгий Кашинцев,
руководитель отдела SRE, Rambler&Co

«В реальных системах производительность БД определяется не только аппаратными ресурсами, но и качеством схемы, запросов и ключей распределения данных»

В практике эксплуатации высоконагруженных PostgreSQL-кластеров большинство инцидентов связано не с отказами аппаратных ресурсов, а с деградацией запросов по мере роста объёма данных. Типичный сценарий - запрос, который годами работал быстро, внезапно начинает перегружать дисковую подсистему после того, как таблицы перестают помещаться в памяти.

Например, это может быть связано с некорректно выбранным фильтром запроса или неправильно построенным индексом. В этом случае планировщик выбирает последовательное сканирование вместо использования индекса, что существенно снижает производительность.

Чтобы не реагировать на такие ситуации постфактум, мы уделяем большое внимание мониторингу. Метрики БД собираются через postgres_exporter и alligator (alligatormon) в Prometheus.

Для нас критичны утилизация соединений, лаг репликации, среднее время выполнения запросов, количество операций в секунду (insert, update, select, delete), а также объём прочитанных и записанных кортежей и число последовательных сканирований (sequential scan).

Такой набор позволяет заранее предсказать рост I/O-нагрузки в ближайшей и среднесрочной перспективе, а не дожидаться инцидента, связанного с деградацией производительности базы данных.

Резервное копирование построено по классической промышленной схеме: ежедневные полные бэкапы в сочетании с непрерывной архивацией WAL, что позволяет делать point-in-time recovery. Реплика используется в первую очередь для обеспечения отказоустойчивости, каждая реплика в момент падения primary-узла готова его заменить. Также реплика используется для масштабирования операций чтения. При этом реплика не должна рассматриваться как замена резервному копированию, хотя и повышает уровень доступности данных в любой момент времени.

Изменения схемы и миграции выполняются через CI-пайплайны с обязательной обратной совместимостью. Между релизами приложений эта совместимость сохраняется: новые поля добавляются заранее, а удаление устаревших колонок происходит спустя несколько релизов.

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

В распределённых системах нам приходилось реализовывать шардирование. Ключевой вопрос здесь - выбор ключа шардирования и способ его генерации. Lookup-ключ, хранящийся в отдельной БД, упрощает миграцию и балансировку, но создаёт единую точку отказа. Хеш-ключ устраняет эту зависимость, однако усложняет расширение кластера без перераспределения данных. На практике именно ошибочный выбор ключа шардирования чаще всего приводит к необходимости радикально перестраивать архитектуру системы.

В реальных системах производительность БД определяется не только аппаратными ресурсами, но и качеством схемы, запросов и ключей распределения данных. Например, данные можно сконцентрировать на одном шарде под конкретный тип запросов, получая доступ за константное время, либо равномерно распределить их по кластеру для балансировки нагрузки.

 

Ключевые слова: базы данных, бэкап, изменения схемы и миграции, производительность БД, шардирование


Подпишитесь на журнал

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru