Масштабирование ресурсов эластичного пула в Базе данных SQL Azure
Применимо к: База данных SQL Azure
В этой статье описано, как масштабировать вычислительные и хранилищные ресурсы для эластичных пулов и пуловых баз данных в SQL-базе данных Azure.
Изменение вычислительных ресурсов (виртуальные ядра или DTU)
После первоначального выбора количества виртуальных ядер или eDTU можно масштабировать эластичные пулы вверх или вниз динамически на основе фактического опыта с помощью любого из следующих методов:
Влияние изменения уровня служб или повторного масштабирования размера вычислений
Изменение уровня служб или размера вычислений эластичного пула соответствует аналогичному шаблону для отдельных баз данных и в основном включает службу, выполняющую следующие действия:
Создание нового вычислительного экземпляра для эластичного пула
Новый вычислительный экземпляр для эластичного пула создается с требуемым уровнем служб и размером вычислений. Для некоторых сочетаний изменений уровня служб и размера вычислительных ресурсов необходимо создать реплику каждой базы данных в новом вычислительном экземпляре, которая включает копирование данных и может сильно повлиять на общую задержку. Тем не менее на этом шаге база данных остается подключенной к сети, а подключения по-прежнему направляются в базу данных в исходном вычислительном экземпляре.
Переключение маршрутизации подключений на новый вычислительный экземпляр.
Существующие подключения к базе данных в исходном вычислительном экземпляре удаляются. Все новые подключения к базам данных выполняются в новом вычислительном экземпляре. При некоторых сочетаниях изменений уровня служб и объема вычислительных ресурсов файлы базы данных отсоединяются и повторно присоединяются во время переключения. Независимо от этого, переключение может привести к кратковременному прерыванию работы службы, когда базы данных недоступны обычно менее чем на 30 секунд и часто всего лишь на несколько секунд. Если при разрыве подключений есть активные длительно исполняющиеся транзакции, длительность этого шага может требовать больше времени для восстановления прерванных транзакций. ускорение восстановления базы данных может снизить влияние прерывания длительных транзакций.
Внимание
На любом этапе рабочего процесса данные не теряются.
Задержка изменения уровня службы или увеличения размера вычислений
Расчетная задержка при изменении уровня служб, масштабировании объема вычислительных ресурсов отдельной базы данных или эластичного пула, перемещении базы данных в эластичный пул или из него и при перемещении базы данных между эластичными пулами характеризуется следующими параметрами.
Задержка масштабирования эластичного пула | Для базового, стандартного эластичного пула общего назначения | Уровень "Премиум" и "Критически важный для бизнеса" для эластичного пула | К гипермасштабируемому эластичному пулу |
---|---|---|---|
Из базового, стандартного, эластичного пула общего назначения | Пропорциональна количеству баз данных | • Задержка пропорциональна пространству базы данных, используемому из-за копирования данных. • Как правило, менее 1 минуты в секунду на используемое пространство. |
N/A — базы данных необходимо добавлять отдельно в гипермасштабируемые эластичные пулы. Задержка масштабирования для каждой базы данных задокументирована в разделе Масштабирование ресурсов одной базы данных. |
Из эластичного пула Premium, критически важного для бизнеса | • Задержка пропорциональна пространству базы данных, используемому из-за копирования данных. • Как правило, менее 1 минуты в секунду на используемое пространство. |
• Задержка пропорциональна пространству базы данных, используемому из-за копирования данных. • Как правило, менее 1 минуты в секунду на используемое пространство. |
N/A — базы данных необходимо добавлять по отдельности в гипермасштабируемые эластичные пулы. Задержка масштабирования для каждой базы данных задокументирована в разделе Scale single database resources. |
Из эластичного пула гипермасштабирования | Неприменимо | Неприменимо | • Задержка постоянного времени независимо от используемого пространства. • Как правило, менее 2 минут. |
Примечание.
- При изменении уровня служб или масштабирования вычислений для любого эластичного пула, отличного от гипермасштабирования, необходимо использовать суммирование пространства, используемого во всех базах данных в пуле, для вычисления оценки. Задержка масштабирования для эластичных пулов гипермасштабирования не зависит от используемого пространства.
- Для пулов эластичных БД уровня "Стандартный" и общего назначения задержка перемещения базы данных в пул эластичных БД или между пулами эластичных пулов будет пропорционально размеру базы данных, если пул эластичных БД использует хранилище привилегированного файлового ресурса (PFS). Чтобы определить, использует ли пул хранилище PFS, выполните следующий запрос в контексте любой базы данных в пуле. Если значение в столбце AccountType равно
PremiumFileStorage
илиPremiumFileStorage-ZRS
, то пул использует хранилище PFS.
SELECT s.file_id,
s.type_desc,
s.name,
FILEPROPERTYEX(s.name, 'AccountType') AS AccountType
FROM sys.database_files AS s
WHERE s.type_desc IN ('ROWS', 'LOG');
Примечание.
- Избыточное по зонам свойство по умолчанию останется неизменным при масштабировании эластичного пула с уровня критически важного для бизнеса на уровень общего назначения.
- Задержка для операции масштабирования при изменении избыточности зоны для эластичного пула общего назначения пропорциональна размеру базы данных.
- Изменение существующего эластичного пула, отличного от гипермасштабирования, на выпуск Hyperscale не поддерживается. Дополнительные сведения см. в разделе «Эластичные пулы гипермасштабирования» . Вместо этого базы данных необходимо добавлять отдельно в гипермасштабируемые эластичные пулы.
- Изменение редакции эластичного пула гипермасштабирования на редакцию, отличную от гипермасштабной, не поддерживается. Дополнительные сведения см. в разделе «Эластичные пулы гипермасштабирования» .
Совет
Чтобы отслеживать выполняемые операции, см. статью "Управление операциями с помощью REST API SQL", управление операциями с помощью ИНТЕРФЕЙСА командной строки, мониторинг операций с помощью T-SQL и две команды PowerShell: Get-AzSqlElasticPoolActivity и Stop-AzSqlElasticPoolActivity.
Дополнительные рекомендации при изменении уровня служб или масштабировании размера вычислений
- При сокращении виртуальных ядер или eDTU для эластичного пула используемое пространство должно быть меньше максимального лимита данных для уровня целевой службы и вычислительных ресурсов пула.
- При увеличении eDTU для эластичного пула может взиматься дополнительная стоимость хранения, если:
- Максимальный размер данных пула поддерживается целевым пулом и
- Максимальный размер данных пула превышает включенный объем хранилища целевого пула.
- Например, если пул уровня "Стандартный" 100 eDTU с максимальным размером данных 100 ГБ будет понижен до пула уровня "Стандартный" 50 eDTU, то будет взиматься дополнительная плата за хранилище, так как целевой пул поддерживает максимальный размер данных 100 ГБ, а предоставляемый объем хранилища составляет всего 50 ГБ. Поэтому дополнительный объем хранилища равен 100 – 50 = 50 ГБ. Чтобы узнать о ценах на дополнительное хранилище, ознакомьтесь с ценами на Базу данных SQL. Если фактический объем используемого пространства меньше, чем включенная сумма хранилища, это может быть избежать, уменьшая максимальный размер данных до указанного объема.
Выставление счетов при масштабировании
Плата взимается за каждый час существования базы данных с учетом самого высокого уровня служб и объема вычислительных ресурсов, которые использовались в течение этого часа, даже если база данных использовалась или была активна менее часа. Например, если вы создадите отдельную базу данных и через 5 минут удалите ее, вам будет выставлен счет за 1 час использования базы данных.
Изменение размера хранилища эластичного пула
Размер хранилища (максимальный размер данных) для эластичного пула можно указать с помощью портал Azure, PowerShell, Azure CLI или REST API. При увеличении максимального размера данных эластичного пула указанное значение не может превышать максимальное ограничение размера данных целевой цели службы пула. При уменьшении максимального размера данных новое значение должно быть равно или больше суммирования пространства, выделенного для всех баз данных в пуле.
Внимание
В некоторых случаях может потребоваться уменьшить базу данных, чтобы освободить неиспользуемое пространство. Дополнительные сведения см. в статье Управление пространством файлов для баз данных в базе данных SQL Azure.
Модель приобретения по модели vCore
- Размер хранилища (максимальный размер данных) для эластичных пулов в уровнях Общего назначения или Бизнес-критический может быть указан до максимальных размеров данных, определённых в ограничениях ресурсов для эластичных пулов с использованием модели покупки виртуальных ядер. Максимальный размер данных для эластичного пула можно увеличить или уменьшить кратно 1 ГБ.
- Цена хранилища для эластичного пула — это максимальный размер данных, умноженный на цену единицы хранения уровня служб. Дополнительные сведения о ценах на хранилище см. в разделе База данных SQL.
Внимание
В некоторых случаях может потребоваться уменьшить базу данных, чтобы освободить неиспользуемое пространство. Дополнительные сведения см. в статье Управление пространством файлов для баз данных в базе данных SQL Azure.
Модель приобретения на основе единиц DTU
- Цена eDTU для эластичного пула включает определенный объем хранилища без дополнительных затрат. Дополнительную емкость хранилища, превышающую включенный объем, можно предоставить за дополнительную плату, до максимального ограничения размера данных, соответствующего подготовленным eDTUs. Сведения о включенных объемах хранилища и ограничениях на максимальный размер данных см. раздел Ограничения ресурсов для эластичных пулов в модели приобретения DTU.
- Стоимость дополнительного хранилища для эластичного пула равна объему хранилища, умноженному на цену единицы хранения этого хранилища для уровня служб. Сведения о цене на дополнительное хранилище см. на странице цен на Базу данных SQL.
- Допустимые значения максимального размера данных для эластичного пула уровня "Стандартный" или "Премиум" могут быть одним из этих значений: 50 ГБ, 100 ГБ, 150 ГБ, 200 ГБ, 250 ГБ, 300 ГБ, 400 ГБ, 500 ГБ, 750 ГБ, 800 ГБ, 1,024 ГБ, 1,200 ГБ, 1,280 ГБ, 1,536 ГБ, 1,600 ГБ, 1,792 ГБ, 2,000 ГБ, 2,048 ГБ, 2,304 ГБ, 2,500 ГБ, 2,560 ГБ, 2,816 ГБ, 3,000 ГБ, 3,072 ГБ, 3,328 ГБ, 3,584 ГБ, 3,840 ГБ, 4,096 ГБ. Максимальный размер данных, указанный, не может превышать максимальный размер данных, указанный для подготовленного eDTU.
Внимание
В некоторых случаях может потребоваться уменьшить базу данных, чтобы освободить неиспользуемое пространство. Дополнительные сведения см. в статье Управление пространством файлов для баз данных в базе данных SQL Azure.
Мониторинг или отмена изменений масштабирования
Изменение уровня служб или операция перемасштабирования вычислительных ресурсов можно отслеживать и отменять.
На странице обзора эластичного пула SQL перейдите к уведомлениям и выберите плитку, указывающую на текущую операцию:
На странице Развертывание выполняется выберите Отмена.
Разрешения
Для масштабирования эластичного пула через портал Azure, PowerShell, Azure CLI или REST API, вам потребуются разрешения Azure RBAC, а именно роли «Участник», «Участник базы данных SQL» или «Участник сервера SQL». Дополнительные сведения см. в статье о встроенных ролях Azure RBAC.