Управление несколькими базами данных в Базе данных SQL Azure и их масштабирование с помощью эластичных пулов
Применимо к: База данных SQL Azure
Эластичные пулы базы данных Azure SQL — это простое и экономичное решение для управления и масштабирования нескольких баз данных с различными и непредсказуемыми требованиями к использованию. Базы данных в составе эластичного пула размещены на одном сервере и совместно используют определенный набор ресурсов по фиксированной цене. Эластичные пулы в База данных SQL позволяют разработчикам программного обеспечения как услуга (SaaS) оптимизировать ценовую производительность для группы баз данных в рамках определенного бюджета, обеспечивая эластичность производительности для каждой базы данных.
Что такое пулы эластичных баз данных SQL?
Разработчики SaaS создают приложения на основе масштабируемых уровней данных с несколькими базами данных. Типичным шаблоном приложения является подготовка отдельной базы данных для каждого клиента. Однако разные клиенты часто имеют различные и непредсказуемые шаблоны использования, и трудно предсказать требования к ресурсам каждого пользователя базы данных. Обычно имеется два варианта:
- Переподготовьте ресурсы в соответствии с пиковой нагрузкой и переплатите.
- Недостаточное предоставление ресурсов для экономии затрат в ущерб производительности и удовлетворенности клиентов во время пиков.
Эластичные пулы решают эту проблему, гарантируя, что базы данных получают необходимые ресурсы производительности, когда им нужны. Они предоставляют простой механизм распределения ресурсов в рамках прогнозируемого бюджета. Дополнительные сведения о шаблонах проектирования для приложений SaaS с использованием эластичных пулов см. в шаблонах многотенантности баз данных SaaS.
Внимание
Плата за эластичный пул не зависит от количества баз данных. Вы платите за каждый час существования пула с максимальным количеством единиц eDTU или виртуальных ядер, вне зависимости от использования или того, что пул был активен менее часа.
Эластичные пулы позволяют приобретать ресурсы для пула, который используется совместно несколькими базами данных, чтобы справляться с непредсказуемыми периодами использования отдельными базами данных. Вы можете настроить ресурсы для пула с использованием модели покупки на основе единиц DTU или модели покупки на основе виртуальных ядер. Агрегированное использование баз данных определяет требование к ресурсу для пула.
Количество ресурсов, доступных для пула, определяется бюджетом. Вам нужно сделать следующее:
- Добавьте базы данных в пул.
- При необходимости задайте минимальные и максимальные ресурсы для баз данных в модели приобретения DTU или vCore.
- Задайте ресурсы пула с учетом бюджета.
Вы можете использовать пулы, чтобы плавно расширять ваш сервис от бережливого стартапа до зрелого бизнеса на постоянно увеличивающемся масштабе.
Отдельным базам данных в пуле предоставляется возможность гибкого использования ресурсов в рамках заданных параметров. В условиях интенсивной нагрузки база данных может использовать дополнительные ресурсы для удовлетворения потребности. При небольших нагрузках базы данных используют меньше ресурсов, а при отсутствии нагрузок не используют их вовсе. Подготовка ресурсов для всего пула, а не для отдельных баз данных упрощает задачи управления. Кроме того, у вас есть предсказуемый бюджет для бассейна.
В существующий пул можно добавить дополнительные ресурсы с минимальным простоем. Если дополнительные ресурсы больше не нужны, их можно удалить из существующего пула в любое время. Также можно добавлять базы данных в пул или удалять их из него. Если у базы данных прогнозируемо низкие показатели использования ресурсов, ее можно удалить.
Примечание.
При перемещении баз данных в или из эластичного пула простоя не происходит, за исключением краткого периода (на уровне секунд), когда в конце операции разрываются подключения к базе данных.
Когда следует рассмотреть использование эластичного пула в базе данных SQL?
Пулы хорошо подходят для большого числа баз данных с конкретными закономерностями использования. Этот шаблон характеризуется низкой средней загрузкой с редкими пиками использования для данной базы данных. И наоборот, несколько баз данных с постоянным средним уровнем использования не следует размещать в одном эластичном пуле.
Чем больше баз данных можно добавить в пул, тем больше экономии. Но в зависимости от закономерности использования приложения можно сэкономить средства при наличии всего двух баз данных уровня S3.
Следующие разделы помогут вам понять, как оценить преимущества, связанные с использованием пула с определенным набором баз данных. В примерах используются стандартные пулы, но те же принципы применяются к эластичным пулам в других уровнях служб.
Оценка закономерностей использования баз данных
На следующем рисунке показан пример базы данных, которая большую часть времени простаивает, но периодически проявляет всплески активности. Такая модель использования хорошо подходит для пула.
На диаграмме показано использование DTU в течение 1 часа (с 12:00 до 1:00) с детализацией до 1 минуты для каждой точки данных. В 12:10 DB1 достигает пика до 90 единиц DTU, но его среднее общее использование составляет менее пяти единиц DTU. Размер вычислительных ресурсов S3 необходим для выполнения этой рабочей нагрузки в одной базе данных, но этот размер оставляет большинство ресурсов неиспользуемых в периоды низкой активности.
Пул позволяет совместно использовать эти неиспользуемые DTU в нескольких базах данных. Пул сокращает количество необходимых единиц DTU и общие затраты.
На основе предыдущего примера предположим, что другие базы данных имеют аналогичные шаблоны использования, как DB1. На следующих двух рисунках использование 4 и 20 баз данных представлено на одном графике, чтобы проиллюстрировать их неперекрывающийся характер использования с течением времени, с применением модели покупки на основе DTU.
Черная линия на предыдущей диаграмме иллюстрирует агрегированное использование DTU во всех 20 базах данных. В этой строке показано, что совокупное использование DTU никогда не превышает 100 единиц DTU и указывает, что 20 баз данных могут совместно использовать 100 единиц EDTU в течение этого периода. Результатом является 20-разовое сокращение единиц DTU и 13-разовое снижение цен по сравнению с размещением каждой базы данных в размерах вычислений S3 для отдельных баз данных.
Этот пример подходит идеально по следующим причинам:
- Существует большая разница между пиковым использованием и средним использованием для каждой базы данных.
- Пиковое использование для каждой базы данных возникает в разное время.
- eDTU используются совместно многими базами данных.
В модели приобретения DTU цена пула — функция, зависящая от eDTU пула. Хотя цена единиц eDTU для пула составляет 1,5 раза больше, чем цена единиц DTU для одной базы данных, eDTU пула может быть использован совместно многими базами данных, и требуется меньше общего количества eDTU. Эти различия в цене и совместное использование единиц eDTU является основой возможности экономии, которую может предоставить пул.
В модели приобретения виртуальных ядер цена за ядро для эластичных пулов совпадает с ценой за ядро для отдельных баз данных.
Как выбрать подходящий размер пула?
Наилучший размер пула зависит от совокупного количества ресурсов, необходимых для всех баз данных в пуле. Вам нужно определить следующее:
- Максимальный объем вычислительных ресурсов, используемых всеми базами данных в пуле. Вычислительные ресурсы индексируются по eDTU или виртуальным ядрам в зависимости от выбранной модели приобретения.
- Максимальное число байтов памяти, используемых всеми базами данных в пуле.
Сведения об уровнях служб и ограничениях ресурсов для каждой модели приобретения см. в модели приобретения на основе DTU или vCore-модели приобретения.
Следующие шаги помогут оценить, экономичнее ли использовать пул вместо отдельных баз данных.
Оцените количество единиц eDTU или виртуальных ядер для пула:
- Для модели приобретения на основе единиц DTU:
- Максимальное значение (<Общее количество баз данных × Среднее использование единиц DTU на базу данных>, <Количество баз данных с одновременной пиковой нагрузкой × Пиковое использование единиц DTU на базу данных>)
- Для модели приобретения на основе vCore:
- Максимальное значение (<Общее количество баз данных × Среднее использование виртуальных ядер на базу данных>, <Количество баз данных с одновременной пиковой нагрузкой × Пиковое использование виртуальных ядер на базу данных>)
- Для модели приобретения на основе единиц DTU:
Оцените общее пространство хранилища, необходимое для пула, сложив размеры данных, необходимых для всех баз данных в пуле. Для модели приобретения на основе единиц DTU определите размер пула eDTU, который предоставляет этот объем хранилища.
Для модели приобретения на основе единиц DTU выберите максимальную из оценок количества единиц eDTU, полученных на шаге 1 и шаге 2.
- Для модели приобретения на основе виртуальных ядер возьмите оценку виртуальных ядер, полученную на шаге 1.
Смотрите страницу цен на базу данных SQL.
- Найдите наименьший размер пула, превышающий оценку на шаге 3.
Сравните цену пула с шага 4 с использованием соответствующих размеров вычислений для каждого отдельного экземпляра базы данных.
Внимание
Если количество баз данных в пуле приближается к максимально поддерживаемому, обязательно рассмотрите возможность управления ресурсами в эластичных пулах с высокой плотностью.
Свойства базы данных
При необходимости задайте свойства для каждой базы данных, чтобы изменить шаблоны потребления ресурсов в эластичных пулах. См. документацию об ограничениях ресурсов для эластичных пулов DTU и vCore для получения дополнительной информации.
Использование других функций Базы данных SQL с эластичными пулами
Вы можете использовать другие функции Базы данных SQL с эластичными пулами.
Эластичные задания и эластичные пулы
Для пула задачи управления упрощаются за счет выполнения сценариев в эластичных заданиях. Эластичное задание устраняет большую часть скучных и рутинных операций, связанных с управлением большим количеством баз данных.
Дополнительные сведения о других средствах базы данных для работы с несколькими базами данных см. в статье Горизонтальное масштабирование с помощью базы данных SQL Azure.
Гипермасштабные пулы эластичных ресурсов
общие сведения о эластичных пулах с гипермасштабированием в базе данных SQL Azure общедоступны.
Экземпляры масштабируемые только для операций чтения
Вы не можете использовать масштабируемые только для чтения экземпляры базы данных Azure SQL с эластичным запросом.
Возможности обеспечения непрерывности бизнес-процессов для баз данных в эластичных пулах
Базы данных в пуле поддерживают те же возможности по обеспечению непрерывности бизнес-процессов, что и отдельные базы данных:
- Восстановление до точки во времени. При восстановлении до точки во времени используются создаваемые автоматически резервные копии баз данных, чтобы восстановить базу данных в пуле на определенный момент времени. Ознакомьтесь с разделом Восстановление до точки во времени.
- Геовосстановление. Геовосстановление используется по умолчанию, когда база данных недоступна из-за происшествия в регионе, где она размещена. См. раздел "Геовосстановление".
- Активная георепликация: Для приложений, имеющих более агрессивные требования к восстановлению, чем предлагает геовосстановление, можно настроить активную георепликацию или группу аварийного переключения.
Дополнительные сведения о приведенных выше стратегиях см. в руководстве по аварийному восстановлению.
Создание нового эластичного пула Базы данных SQL с помощью портала Azure
На портале Azure эластичный пул можно создать двумя способами:
- создать эластичный пул и выбрать имеющийся или новый сервер;
- создать эластичный пул на основе имеющегося сервера.
Чтобы создать эластичные пулы и выбрать существующий или новый сервер, выполните приведенные ниже действия.
Перейдите на портал Azure, чтобы создать эластичный пул. Найдите и выберите Azure SQL.
Щелкните Создать, чтобы открыть страницу Выбор варианта развертывания SQL. Чтобы просмотреть дополнительные сведения об эластичных пулах, на плитке Базы данных выберите Показать подробности.
На плитке "Базы данных" в раскрывающемся списке "Тип ресурса" выберите эластичные пулы. Затем выберите Создать.
Затем управляйте эластичным пулом с помощью портал Azure, PowerShell, Azure CLI, REST API или T-SQL.
Создание эластичного пула с существующего сервера:
Перейдите на имеющийся сервер и выберите Создать пул, чтобы создать пул непосредственно на этом сервере.
Примечание.
На сервере можно создать несколько пулов, но в один пул нельзя добавлять базы данных с разных серверов.
Уровень обслуживания пула определяет функции, доступные для эластиков в пуле, и максимальное количество ресурсов, доступных для каждой базы данных. Дополнительные сведения об ограничениях ресурсов для эластичных пулов см. в разделе о модели на основе DTU. Сведения об ограничениях ресурсов в модели на основе виртуальных ядер для эластичных пулов см. в разделе Ограничения ресурсов для эластичных пулов при использовании модели на основе виртуальных ядер.
Чтобы настроить ресурсы и цены на пул, выберите Настроить пул. Выберите уровень служб, добавьте базы данных в пул и настройте ограничения ресурсов для пула и его баз данных.
После настройки пула нажмите кнопку "Применить", назовите пул и нажмите кнопку "ОК ", чтобы создать пул.
Затем управляйте эластичным пулом с помощью портал Azure, PowerShell, Azure CLI, REST API или T-SQL.
Мониторинг эластичного пула и его баз данных
На портале Azure можно отслеживать использование эластичного пула и баз данных в этом пуле. Можно также внести ряд изменений в эластичный пул и отправить все изменения одновременно. К таким изменениям относятся добавление или удаление баз данных, изменение параметров эластичного пула и изменение параметров базы данных.
Вы можете использовать встроенные средства мониторинга производительности и оповещений в сочетании с рейтингами производительности. База данных SQL может также выдавать значения метрик и журналы ресурсов для упрощения мониторинга.
Примеры использования от клиентов
- SnelStart — компания SnelStart с помощью эластичных пулов Базы данных SQL быстро расширила свои бизнес-службы (1000 новых баз данных SQL Azure в месяц).
- Umbraco — Umbraco использует эластичные пулы Базы данных SQL, чтобы быстро подготавливать и масштабировать службы для тысяч арендаторов в облаке.
Связанный контент
- Сведения о ценах см. на странице Цены на эластичные пулы.
- Чтобы масштабировать эластичные пулы, см. разделы Масштабирование эластичных пулов и Масштабирование эластичного пула — пример кода.
- Узнайте, как управлять эластичными пулами в База данных SQL Azure.
- Дополнительные сведения о шаблонах разработки для приложений SaaS, использующих эластичные пулы, см. в статье Шаблоны разработки для мультитенантных приложений SaaS и Базы данных SQL Azure.
- Для получения информации о руководстве по SaaS с использованием эластичных пулов см. раздел Введение в приложение SaaS Wingtip.
- Сведения об управлении ресурсами в эластичных пулах с множеством баз данных см. в статье Управление ресурсами в эластичных пулах с высокой плотностью.
- Дополнительные сведения о эластичных пулах с гипермасштабированием.