270.02K

Повышение управляемости и доступности объектов баз данных

1.

Повышение управляемости и доступности объектов баз
данных.
Повышение управляемости и доступности объектов баз данных достигается за счёт
комплексного подхода, включающего:
технические методы оптимизации,
практики администрирования и мониторинга.

2.

технические методы оптимизации
Секционирование
(от
англ.
partitioning,
часто
называют партиционированием) – это разделение
хранимых объектов баз данных (таких как таблиц,
индексов,
материализованных
отдельные
части
с
представлений)
раздельными
на
параметрами
физического хранения. Используется в целях повышения
управляемости, производительности и доступности для
больших
баз
данных.
Секционированием
данных
называется разбиение одной большой логической таблицы
на
несколько
небольших
физических
секций
=
вертикальный шардинг (от англ. sharding (shard) –
сервер), основывается на разделении одной большой
таблицы на множество маленьких на том же сервере.

3.

Применение секционирования к таблице БД больших данных
mus_service log
Секционирование:
кардинально увеличивает быстродействие, особенно когда большой процент часто
запрашиваемых строк таблицы относится к одному или небольшому числу секций;
может сыграть роль ведущих столбцов в индексах, что позволит уменьшить размер индекса и
увеличит вероятность нахождения наиболее востребованных частей индексов в памяти.
Когда в выборке или изменении данных задействована большая часть одной секции,
последовательное сканирование этой секции может выполняться гораздо быстрее, чем
случайный доступ по индексу к данным, разбросанным по всей таблице

4.

следующие технические методы оптимизации
Шардирование. Распределение данных по разным серверам или узлам,
что позволяет достичь горизонтального масштабирования системы,
увеличить её производительность и доступность.
Нормализация и денормализация. Нормализация помогает устранить
избыточность данных и улучшить эффективность запросов, а
денормализация может быть полезна для ускорения доступа к данным за
счёт сокращения количества соединений таблиц.
Индексирование. Создание индексов на столбцах, которые часто
используются в запросах, ускоряет выполнение запросов.
Оптимизация структуры запросов. Избегание лишних JOIN-операций,
использование INNER JOIN уменьшает объём обрабатываемых данных.

5.

Методы повышения доступности
Репликация
Репликация – одна из техник масштабирования БД. Она состоит в том, что данные с одного
сервера базы данных постоянно копируются (реплицируются) на один или несколько других
(называемые репликами). Для приложения появляется возможность использовать не один
сервер для обработки всех запросов, распределяя нагрузку с одного сервера на несколько.
Самая распространенная схема репликации данных – это master-slave. Master – это основной
сервер БД, куда поступают все данные. Все изменения в данных (добавление, обновление,
удаление) должны происходить на этом сервере. Slave – это вспомогательный сервер БД,
который копирует все данные с мастера. С этого сервера следует читать данные. Таких
серверов может быть несколько.Например, На мастере 8003 ведётся запись, обновление и
удаление данных, постоянное логирование в таблицу log. На слейве 7003 мы читаем данные
из таблицы log данные и они попадают в аналитическую часть ИС. Основной плюс - это
отличное средство для обеспечения отказоустойчивости.
Чаще всего репликация
используется совместно с шардингом именно из соображений надежности.
Для критичных систем могут применяться синхронные реплики, которые
минимизируют простои при проблемах с основным сервером

6.

Кластеризация серверов — это набор методов и решений, позволяющих
нескольким серверам работать совместно как единая логическая система
для обеспечения высокой отказоустойчивости и масштабируемости.
Виртуализация — практический фундамент большинства корпоративных кластеров:
абстрагирует вычисления, память, сеть и хранилище, превращая «железо» в пулы ресурсов.
Два уровня в виртуализации серверов.
Первый — виртуализация на одиночном сервере, когда на одном хосте запускаются несколько
ВМ: доступность ограничена надежностью одного сервера.
Второй — виртуальный кластер серверов: несколько хостов (узлов) объединены в общий
ресурсный пул с общим хранилищем и программно-определенной сетью Механизмы
высокой доступности: автоматический перезапуск ВМ при отказе узла, миграции без
простоя и балансировки нагрузки, дает масштабирование «горизонтально». Эта
технология объединяет ресурсы физических серверов и виртуальных узлов, чтобы
пользовательский опыт оставался стабильным при пиковых нагрузках и при
обновлениях программного обеспечения.
В бизнес-контексте это означает обеспечение непрерывного обслуживания веб-сайта,
базы данных и прикладных сервисов — без длительного времени простоя и с
возможностью плавного повышения производительности при росте нагрузки.

7.

Основные типы кластерных архитектур
Кластеры высокой доступности предназначены для минимизации времени простоя и
обеспечения бесперебойной работы приложений. Основная идея — создать резервные узлы и
механизмы автоматического переключения (фейловера), чтобы при сбое одного узла другой
немедленно взял на себя его обязанности.Такая архитектура снижает риск потери данных
Кластеры с балансировкой нагрузки распределяют запросы клиентов между несколькими
серверами, чтобы ускорить работу приложений и повысить общую производительность.
Балансировщики нагрузки принимают входящий трафик и распределяют запросы по узлам в
соответствии с выбранной стратегией: по очереди, наименьшей загрузке или географическому
признаку. Такой подход повышает гибкость и масштабируемость системы.
Вычислительные кластеры серверов ориентированы на задачи высокой производительности
— анализ больших данных, научные расчёты, машинное обучение и рендеринг. Особенности:
параллельная обработка вычислительных задач;обмен данными между узлами;
специализированное программное обеспечение для распределения процессов.
Гиперконвергентные кластеры (HCI) — это современный тип архитектуры, объединяющий
вычислительные ресурсы, хранение и сеть в единую программно-управляемую систему.В 2025
году стали стандартом для построения облачных платформ
Кластеризацию серверов как инструмент оптимизации применяют во многих сферах:
банковские
и
платёжные
системы;
интернет-магазины
с
высоким
трафиком;корпоративные порталы и CRM.

8.

Ключевые компоненты кластера
Узлы (ноды) — физические или виртуальные серверы.выполняют разные роли:
вычислительных узлов;.
узлов хранения данных;
контроллеров и балансировщиков. Определяется, какие узлы будут резервными, чтобы при выходе из
строя одного из них другие могли быстро взять на себя его функции.
Системы хранения данных — SAN или NAS дают нескольким узлам доступ к одним и тем же данным,
обеспечивая:
репликацию и дублирование данных;
быстрое подключение резервных узлов;
минимальные риски потери информации при сбоях приложений.
Сетевые технологии — обеспечивают быстрое взаимодействие между узлами.Часто используются
выделенные каналы:
для хранения данных;
для клиентских запросов;
для служебных сообщений между узлами. Применяются VLAN, приоритизация трафика и системы
мониторинга сети.
Программное обеспечение — управляет мониторингом, синхронизацией и обработкой сбоев

9.

методы повышения доступности
Группы доступности является альтернативой зеркальному отображению баз данных на уровне предприятия.
Если БД не справляется с потоком запросов или есть опасения, что при сбое на сервере пропадут ценные
данные. Как правило, узлы распологаются в геоудалённых дата-центрах. Один - в кластере является мастером,
осуществляет операции записи и чтения, остальные- работают в режиме слушателей и позволяют считывать
данные при запросах обращения.
При отказе основой реплики, кластер проголосует за новую основную реплику и Always On переведёт одну из
вторичных реплик в статус основной.
Отказоустойчивые кластеры.
Резервное копирование и восстановление.
Мониторинг.
Управление доступом.
Шифрование данных.
Аудит и мониторинг подозрительной активности. Внедрение комплексного протоколирования действий в
базе данных, настройка мониторинга подозрительной активности (массовые выборки данных, доступ в
нерабочее время и т. д.).
Регулярное обновление аппаратной и программной инфраструктуры.
Выбор конкретных методов зависит от требований к системе.
English     Русский Rules