Масштабирование ресурсов эластичного пула в Базе данных SQL Azure

Применимо к:База данных SQL Azure

В этой статье описано масштабирование вычислительных ресурсов и ресурсов хранилища для эластичных пулов и баз данных в пулах в Базе данных SQL Azure.

Изменение ресурсов вычислений (виртуальных ядер или DTU)

После первоначального выбора количества виртуальных ядер или eDTU можно масштабировать эластичные пулы вверх или вниз динамически на основе фактического опыта с помощью любого из следующих методов:

Влияние изменения уровня служб или повторного масштабирования размера вычислений

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

  1. Создание нового вычислительного экземпляра для эластичного пула

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

  2. Переключение маршрутизации подключений на новый вычислительный экземпляр.

    Существующие подключения к базе данных в исходном вычислительном экземпляре удаляются. Все новые подключения устанавливаются для базы данных в новом вычислительном экземпляре. При некоторых сочетаниях изменений уровня служб и объема вычислительных ресурсов файлы базы данных отсоединяются и повторно присоединяются во время переключения. Независимо от этого коммутатор может привести к кратковременному прерыванию работы службы, когда базы данных недоступны в течение 30 секунд и часто в течение нескольких секунд. Если при удалении подключений активные длительные транзакции, длительность этого шага может занять больше времени, чтобы восстановить прерванные транзакции. Ускоренное восстановление баз данных может уменьшить последствия прерывания длительных транзакций.

Важно!

На любом этапе рабочего процесса данные не теряются.

Задержка изменения уровня службы или увеличения размера вычислений

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

Задержка масштабирования эластичного пула Для базового, стандартного эластичного пула общего назначения До уровня "Премиум" критически важный для бизнеса эластичного пула Гипермасштабирование эластичного пула
Из базового, стандартного, эластичного пула общего назначения Пропорциональна количеству баз данных • Задержка пропорциональна пространству базы данных, используемому из-за копирования данных.
• Как правило, менее 1 минуты в секунду на используемое пространство.
N/A — базы данных необходимо добавить отдельно в эластичные пулы гипермасштабирования. Задержка масштабирования на базу данных, задокументированная в ресурсах одной базы данных масштабирования.
Из premium критически важный для бизнеса эластичного пула • Задержка пропорциональна пространству базы данных, используемому из-за копирования данных.
• Как правило, менее 1 минуты в секунду на используемое пространство.
• Задержка пропорциональна пространству базы данных, используемому из-за копирования данных.
• Как правило, менее 1 минуты в секунду на используемое пространство.
N/A — базы данных необходимо добавить отдельно в эластичные пулы гипермасштабирования. Задержка масштабирования на базу данных, задокументированная в ресурсах одной базы данных масштабирования.
Из эластичного пула гипермасштабирования Неприменимо Неприменимо • Задержка постоянного времени независимо от используемого пространства.
• Как правило, менее 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 Standard, то дополнительная стоимость хранилища применяется, так как целевой пул поддерживает максимальный размер данных размером 100 ГБ, а его включенный объем хранилища составляет всего 50 ГБ. Поэтому дополнительный объем хранилища равен 100 – 50 = 50 ГБ. Чтобы узнать о ценах на дополнительное хранилище, ознакомьтесь с ценами на Базу данных SQL. Если фактический объем используемого пространства меньше, чем включенная сумма хранилища, это может быть избежать, уменьшая максимальный размер данных до указанного объема.

Выставление счетов при масштабировании

Плата взимается за каждый час существования базы данных с учетом самого высокого уровня служб и объема вычислительных ресурсов, которые использовались в течение этого часа, даже если база данных использовалась или была активна менее часа. Например, если вы создадите отдельную базу данных и через 5 минут удалите ее, вам будет выставлен счет за 1 час использования базы данных.

изменение размера хранилища эластичного пула

Размер хранилища (максимальный размер данных) для эластичного пула можно указать с помощью портал Azure, PowerShell, Azure CLI или REST API. При увеличении максимального размера данных эластичного пула указанное значение не может превышать максимальное ограничение размера данных цели службы пула. При уменьшении максимального размера данных новое значение должно быть равно или больше суммирования пространства, выделенного для всех баз данных в пуле.

Важно!

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

Модель приобретения на основе виртуальных ядер

  • Размер хранилища (максимальный размер данных) для эластичных пулов в уровнях общего назначения или критически важный для бизнеса можно указать до максимальных ограничений размера данных, указанных в ограничениях ресурсов для эластичных пулов с помощью модели приобретения виртуальных ядер. Максимальный размер данных для эластичного пула можно увеличить или уменьшить в нескольких 1 ГБ.
  • Цена хранилища для эластичного пула — это максимальный размер данных, умноженный на цену единицы хранения уровня служб. Дополнительные сведения о ценах на хранилище см. в База данных SQL ценах.

Важно!

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

Модель приобретения на основе единиц DTU

  • Цена DTU для эластичного пула включает в себя определенный объем хранилища, не требующий дополнительной платы. Дополнительное хранилище данных за пределами включенного объема можно подготовить для дополнительной стоимости до максимального ограничения размера данных, соответствующего подготовленному EDTU. Сведения о включенных объемах хранилища и ограничениях максимального размера данных см. в разделе "Ограничения ресурсов для эластичных пулов" с помощью модели приобретения DTU.
  • Стоимость дополнительного хранилища для эластичного пула равна объему хранилища, умноженному на цену единицы хранения этого хранилища для уровня служб. Сведения о цене на дополнительное хранилище см. на странице цен на Базу данных SQL.
  • Допустимые значения максимального размера данных для эластичного пула уровня "Стандартный" или "Премиум" могут быть одним из следующих значений: 50 ГБ, 100 ГБ, 150 ГБ, 200 ГБ, 250 ГБ, 300 ГБ, 400 ГБ, 500 ГБ, 750 ГБ, 800 ГБ, 1024 ГБ, 1200 ГБ, 1280 ГБ, 1536 ГБ, 1600 ГБ, 1792 ГБ, 2000 ГБ, 2048 ГБ, 2304 ГБ, 2500 ГБ, 2560 ГБ, 2816 ГБ, 3000 ГБ, 3072 ГБ, 3328 ГБ, 3584 ГБ, 3840 ГБ, 4096 ГБ. Максимальный размер данных, указанный, не может превышать максимальный предел размера данных, указанный для подготовленных eDTU.

Важно!

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

Мониторинг или отмена изменений масштабирования

Изменение уровня служб или операция перемасштабирования вычислительных ресурсов можно отслеживать и отменять.

На странице обзора эластичного пула SQL перейдите к уведомлениям и выберите плитку, указывающую на текущую операцию:

Screenshot from the Azure portal of an ongoing deployment in progress.

На странице выполнения результирующего развертывания нажмите кнопку "Отмена".

Разрешения

Для масштабирования эластичного пула с помощью портал Azure, PowerShell, Azure CLI или REST API необходимы разрешения Azure RBAC, в частности участника, роли участника базы данных SQL или роли участника SQL Server Azure RBAC. Дополнительные сведения см. в статье Встроенные роли Azure RBAC.

Сведения об общих ограничениях ресурсов см. в статьях Ограничения ресурсов базы данных SQL в модели приобретения на основе виртуальных ядер — эластичные пулы и Ограничения ресурсов базы данных SQL в модели приобретения на основе единиц DTU — эластичные пулы.