Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: База данных SQL Azure
По мере развития приложения базы данных изменения неизбежно необходимо вносить в схему базы данных или эталонные данные. Задачи обслуживания базы данных также требуются периодически. Для управления приложением, использующим базу данных для каждого клиента, необходимо применить эти изменения или задачи обслуживания в нескольких базах данных клиента.
В этом руководстве рассматриваются два сценария: развертывание обновлений эталонных данных для всех элементов (арендаторов) и перестроение индекса таблицы, содержащей эталонные данные. Функция эластичных заданий используется для выполнения этих действий во всех базах данных клиента и в базе данных шаблона, используемой для создания новых баз данных клиента.
В этом руководстве описано, как:
- Создать агент поиска вакансий
- Причина выполнения заданий T-SQL во всех базах данных клиента
- Обновление ссылочных данных во всех базах данных клиента
- Создание индекса таблицы во всех базах данных клиента
Чтобы завершить работу с этим руководством, убедитесь, что выполнены следующие предварительные требования:
- Развернуто приложение Wingtip Tickets SaaS Database для каждого арендатора. Сведения о развертывании менее чем за пять минут см. в статье "Развертывание и изучение базы данных SaaS Wingtip Tickets на каждое приложение клиента"
- Azure PowerShell устанавливается. Дополнительные сведения см. в статье "Начало работы с Azure PowerShell"
- Установлена последняя версия SQL Server Management Studio (SSMS). Скачивание и установка SSMS
Общие сведения о шаблонах управления схемами SaaS
База данных для каждого клиента эффективно изолирует данные клиента, но увеличивает количество баз данных для управления и обслуживания. Эластичные задания упрощают администрирование и управление несколькими базами данных. Задания позволяют безопасно и надежно выполнять операции (скрипты T-SQL) на группе баз данных. Задания могут развертывать схемы и распространенные изменения ссылочных данных во всех базах данных клиента в приложении. Эластичные задания также можно использовать для поддержки шаблонной базы данных, которая используется для создания новых клиентов, с обеспечением наличия последних схем и эталонных данных.
Эластичные задания
В 2024 году эластичные задания были выпущены в качестве общедоступного продукта с новыми функциями. Интегрированная функция базы данных Azure SQL — это задания для эластичных баз данных.
Получите базу данных SaaS Wingtip Tickets по скриптам приложения арендатора.
Исходный код приложения и скрипты управления доступны в репозитории WingtipTicketsSaaS-DbPerTenant GitHub. Ознакомьтесь с общим руководством по скачиванию и разблокировкам скриптов SaaS Wingtip Tickets.
Создайте базу данных агента задания и нового агента задания
В этом руководстве требуется использовать PowerShell для создания агента задания и соответствующей базы данных агента задания. База данных агента заданий содержит определения заданий, статус задания и историю. После создания агента заданий и его базы данных, вы сможете сразу приступать к созданию и отслеживанию заданий.
- В PowerShell ISE откройте ...\Learning Modules\Schema Management\Demo-SchemaManagement.ps1.
- Нажмите клавишу F5 , чтобы запустить скрипт.
Скрипт Demo-SchemaManagement.ps1 вызывает скрипт Deploy-SchemaManagement.ps1 для создания базы данных с именем osagent на сервере каталога. Затем он создает агент задания, используя базу данных в качестве параметра.
Создать задание для развертывания новых эталонных данных для всех арендаторов.
В приложении Wingtip Tickets каждая база данных клиента включает набор поддерживаемых типов мест. Каждое место имеет определенный тип места проведения, который определяет тип событий, которые можно разместить, и определяет фоновый образ, используемый в приложении. Чтобы приложение поддерживало новые виды событий, эти эталонные данные должны быть обновлены и добавлены новые типы мест. В этом упражнении вы развернете обновление для всех баз данных клиента, чтобы добавить два дополнительных типа места проведения: Мотоцикл Гонки и бассейн клуба.
Сначала просмотрите типы мест, включенные в каждую базу данных клиента. Подключитесь к одной из баз данных клиента в SQL Server Management Studio (SSMS) и проверьте таблицу VenueTypes. Вы также можете запросить эту таблицу в редакторе запросов на портале Azure, доступ к ней с помощью страницы базы данных.
- Откройте SSMS и подключитесь к серверу арендодателя: tenants1-dpt-<user>.database.windows.net
- Чтобы убедиться, что мотоспорт и клуб плавания в настоящее время не внесены, обратитесь к базе данных contosoconcerthall на сервере > и выполните запрос таблицы VenueTypes.
Теперь создадим задание, чтобы обновить таблицу VenueTypes во всех базах данных клиента, чтобы добавить новые типы мест.
Чтобы создать новое задание, вы используете набор хранимых процедур системы заданий, созданных в базе данных jobagent при создании агента задания.
- В SSMS подключитесь к серверу каталога: catalog-dpt-<user>.database.windows.net
- В SSMS откройте файл ...\Learning Modules\Schema Management\DeployReferenceData.sql
- Измените инструкцию: SET @wtpUser = <пользователь и замените значение пользователя> , используемое при развертывании приложения SaaS Database Wingtip Tickets на клиент
- Убедитесь, что вы подключены к базе данных jobagent и нажмите клавишу F5 , чтобы запустить скрипт.
Просмотрите следующие элементы в скрипте DeployReferenceData.sql :
- sp_add_target_group создает имя целевой группы DemoServerGroup.
- sp_add_target_group_member используется для определения набора целевых баз данных. Сначала добавляется сервер tenants1-dpt-user<>. Добавление сервера в качестве целевого объекта приводит к тому, что базы данных на этом сервере во время выполнения задания будут включены в задание. Затем база данных basetenantdb и база данных adhocreporting (используемая в последующем руководстве) добавляются в качестве целевых объектов.
- sp_add_job создает задание с именем "Развертывание эталонных данных".
- sp_add_jobstep создает шаг задания, содержащий текст команды T-SQL, чтобы обновить эталонную таблицу VenueTypes.
- Остальные представления в скрипте отображают существование объектов и мониторинг выполнения задания. Используйте эти запросы для проверки значения состояния в столбце жизненного цикла , чтобы определить, когда задание завершится во всех целевых базах данных.
После завершения скрипта можно проверить, были ли обновлены справочные данные. В SSMS перейдите к базе данных contosoconcerthall на сервере клиентаs1-dpt-user<> и запросите таблицу VenueTypes. Убедитесь, что Мотогонки и Клуб плаванияприсутствуют сейчас.
Создание задания для управления индексом эталонной таблицы
В этом упражнении используется задание для перестроения индекса в первичном ключе справочной таблицы. Это обычная операция обслуживания базы данных, которая может выполняться после загрузки больших объемов данных.
Создайте задание с помощью тех же хранимых процедур системы заданий.
- Откройте SSMS и подключитесь к серверу catalog-dpt-<user>.database.windows.net
- Откройте файл ...\Learning Modules\Schema Management\OnlineReindex.sql
- Щелкните правой кнопкой мыши, выберите "Подключение" и подключитесь к серверу catalog-dpt-user.database.windows.net<>, если он еще не подключен.
- Убедитесь, что вы подключены к базе данных jobagent и нажмите клавишу F5 , чтобы запустить скрипт.
Просмотрите следующие элементы в скрипте OnlineReindex.sql :
- sp_add_job создает новое задание с именем "Online Reindex PK__VenueTyp__265E44FD7FD4C885"
- sp_add_jobstep создает шаг задания, содержащий текст команды T-SQL для обновления индекса.
- Остальные представления в скрипте отслеживают выполнение задания. Используйте эти запросы для проверки значения состояния в столбце жизненного цикла , чтобы определить, когда задание успешно завершено для всех членов целевой группы.
Дальнейшие шаги
В этом руководстве вы узнали, как:
- Создайте агента задач для выполнения заданий T-SQL во множестве баз данных.
- Обновление ссылочных данных во всех базах данных клиента
- Создание индекса таблицы во всех базах данных клиента
Затем попробуйте руководство по созданию временных отчетов, чтобы изучить выполнение распределенных запросов в базах данных арендаторов.