Zarządzanie schematem w aplikacji SaaS przy użyciu wzorca bazy danych na dzierżawę w usłudze Azure SQL Database

Dotyczy:Azure SQL Database

W miarę rozwoju aplikacji bazy danych zmiany muszą zostać nieuchronnie wprowadzone w schemacie bazy danych lub danych referencyjnych. Zadania konserwacji bazy danych są również okresowo potrzebne. Zarządzanie aplikacją korzystającą ze wzorca bazy danych na dzierżawę wymaga zastosowania tych zmian lub zadań konserwacji w ramach floty baz danych dzierżawy.

W tym samouczku przedstawiono dwa scenariusze — wdrażanie aktualizacji danych referencyjnych dla wszystkich dzierżaw i ponowne kompilowanie indeksu w tabeli zawierającej dane referencyjne. Funkcja Zadań elastycznych służy do wykonywania tych akcji we wszystkich bazach danych dzierżawy oraz w bazie danych szablonów używanych do tworzenia nowych baz danych dzierżaw.

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Tworzenie agenta zadania
  • Przyczyna uruchamiania zadań T-SQL we wszystkich bazach danych dzierżawy
  • Aktualizowanie danych referencyjnych we wszystkich bazach danych dzierżawy
  • Tworzenie indeksu tabeli we wszystkich bazach danych dzierżaw

Do wykonania zadań opisanych w tym samouczku niezbędne jest spełnienie następujących wymagań wstępnych:

Wprowadzenie do wzorców zarządzania schematami SaaS

Wzorzec bazy danych na dzierżawę efektywnie izoluje dane dzierżawy, ale zwiększa liczbę baz danych do zarządzania i konserwacji. Zadania elastyczne ułatwiają administrowanie wieloma bazami danych i zarządzanie nimi. Zadania umożliwiają bezpieczne i niezawodne uruchamianie zadań (skryptów T-SQL) względem grupy baz danych. Zadania mogą wdrażać schemat i typowe zmiany danych referencyjnych we wszystkich bazach danych dzierżawy w aplikacji. Zadania elastyczne mogą również służyć do obsługi bazy danych szablonów używanej do tworzenia nowych dzierżaw, zapewniając, że zawsze ma on najnowszy schemat i dane referencyjne.

screen

Zadania elastyczne

W 2024 r. zadania elastyczne zostały wydane jako ogólnie dostępny produkt z nowymi funkcjami. Zintegrowana funkcja usługi Azure SQL Database zawiera temat Zadania elastycznej bazy danych.

Pobieranie bazy danych SaaS biletów Wingtip na skrypty aplikacji dzierżawy

Skrypty kodu źródłowego aplikacji i zarządzania są dostępne w repozytorium GitHub WingtipTicketsSaaS-DbPerTenant . Zapoznaj się z ogólnymi wskazówkami dotyczącymi kroków pobierania i odblokowywania skryptów SaaS Wingtip Tickets.

Tworzenie bazy danych agenta zadań i nowego agenta zadań

Ten samouczek wymaga użycia programu PowerShell do utworzenia agenta zadania i bazy danych agenta zadania zapasowego. Baza danych agenta zadań zawiera definicje zadań, stan zadania i historię. Po utworzeniu agenta zadania i jego bazy danych można natychmiast tworzyć i monitorować zadania.

  1. W programie PowerShell ISE otwórz plik ...\Edukacja Modules\Schema Management\Demo-SchemaManagement.ps1.
  2. Naciśnij klawisz F5, aby uruchomić skrypt.

Skrypt Demo-SchemaManagement.ps1 wywołuje skrypt Deploy-SchemaManagement.ps1 w celu utworzenia bazy danych o nazwie osagent na serwerze wykazu. Następnie tworzy agenta zadania przy użyciu bazy danych jako parametru.

Tworzenie zadania służącego do wdrożenia nowych danych referencyjnych we wszystkich dzierżawach

W aplikacji Wingtip Tickets każda baza danych dzierżawy zawiera zestaw obsługiwanych typów miejsc. Każde miejsce ma określony typ miejsca, który definiuje rodzaj wydarzeń, które mogą być hostowane, i określa obraz tła używany w aplikacji. Aby aplikacja obsługiwała nowe rodzaje zdarzeń, należy zaktualizować te dane referencyjne i dodać nowe typy miejsc. W tym ćwiczeniu wdrożysz i uaktualnisz wszystkie bazy danych dzierżaw w celu dodania dwóch dodatkowych typów miejsc: Motorcycle Racing i Swimming Club.

Najpierw przejrzyj typy miejsc uwzględnionych w każdej bazie danych dzierżawy. Połączenie do jednej z baz danych dzierżawy w programie SQL Server Management Studio (SSMS) i sprawdź tabelę VenueTypes. Tę tabelę można również wykonać w edytorze zapytań w witrynie Azure Portal, do której można uzyskać dostęp ze strony bazy danych.

  1. Otwórz program SSMS i połącz się z serwerem dzierżawy: tenants1-dpt-user.database.windows.net<>
  2. Aby potwierdzić, że usługi Motorcycle Racing i Swimming Clubnie są obecnie uwzględnione, przejdź do bazy danych contosoconcerthall na serwerze tenants1-dpt-user<> i wykonaj zapytanie dotyczące tabeli VenueTypes.

Teraz utwórzmy zadanie aktualizacji tabeli VenueTypes we wszystkich bazach danych dzierżawy, aby dodać nowe typy miejsc.

Aby utworzyć nowe zadanie, należy użyć zestawu procedur składowanych systemu zadań utworzonych w bazie danych jobagent podczas tworzenia agenta zadań.

  1. W programie SSMS nawiąż połączenie z serwerem wykazu: catalog-dpt-user.database.windows.net>< server
  2. W programie SSMS otwórz plik ...\Edukacja Modules\Schema Management\DeployReferenceData.sql
  3. Zmodyfikuj instrukcję: SET @wtpUser = <użytkownik> i zastąp wartość User użytą podczas wdrażania aplikacji Wingtip Tickets SaaS Database Per Tenant
  4. Upewnij się, że masz połączenie z bazą danych jobagent i naciśnij klawisz F5 , aby uruchomić skrypt

Zwróć uwagę na następujące elementy skryptu DeployReferenceData.sql :

  • sp_add_target_group tworzy nazwę grupy docelowej DemoServerGroup.
  • sp_add_target_group_member służy do definiowania zestawu docelowych baz danych. Najpierw dodawany jest serwer tenants1-dpt-user><. Dodanie serwera jako obiektu docelowego powoduje, że bazy danych na tym serwerze w czasie wykonywania zadania mają zostać uwzględnione w zadaniu. Następnie baza danych basetenantdb i baza danych adhocreporting (używana w późniejszym samouczku) są dodawane jako obiekty docelowe.
  • sp_add_job tworzy zadanie o nazwie Wdrażanie danych referencyjnych.
  • sp_add_jobstep tworzy krok zadania zawierający tekst polecenia języka T-SQL w celu zaktualizowania tabeli referencyjnej VenueTypes.
  • Pozostałe widoki w skrypcie dotyczą istnienia obiektów i monitorowania wykonania zadań. Użyj tych zapytań, aby przejrzeć wartość stanu w kolumnie cyklu życia , aby określić, kiedy zadanie zostało zakończone we wszystkich docelowych bazach danych.

Po zakończeniu działania skryptu możesz sprawdzić, czy dane referencyjne zostały zaktualizowane. W programie SSMS przejdź do bazy danych contosoconcerthall na serwerze tenants1-dpt-user>< i wykonaj zapytanie dotyczące tabeli VenueTypes. Sprawdź, czy obecnie są motocyklowe wyścigi i klub pływacki.

Tworzenie zadania do zarządzania indeksem tabeli referencyjnej

W tym ćwiczeniu użyto zadania do ponownego skompilowania indeksu w kluczu podstawowym tabeli referencyjnej. Jest to typowa operacja konserwacji bazy danych, którą można wykonać po załadowaniu dużych ilości danych.

Utwórz zadanie, używając tych samych procedur składowanych „system”.

  1. Otwórz program SSMS i połącz się z serwerem catalog-dpt-user.database.windows.net<>
  2. Otwórz plik ...\Edukacja Modules\Schema Management\OnlineReindex.sql
  3. Kliknij prawym przyciskiem myszy, wybierz pozycję Połączenie ion i połącz się z serwerem catalog-dpt-user.database.windows.net<>, jeśli jeszcze nie nawiązaliśmy połączenia
  4. Upewnij się, że masz połączenie z bazą danych jobagent i naciśnij klawisz F5 , aby uruchomić skrypt

Zwróć uwagę na następujące elementy skryptu OnlineReindex.sql :

  • sp_add_job tworzy nowe zadanie o nazwie "Ponowne indeksowanie online PK__VenueTyp__265E44FD7FD4C885"
  • sp_add_jobstep tworzy krok zadania zawierający tekst polecenia języka T-SQL w celu zaktualizowania indeksu
  • Pozostałe widoki w skry skrycie monitorują wykonywanie zadań. Użyj tych zapytań, aby przejrzeć wartość stanu w kolumnie cyklu życia , aby określić, kiedy zadanie zostało pomyślnie zakończone dla wszystkich członków grupy docelowej.

Następne kroki

W tym samouczku zawarto informacje na temat wykonywania następujących czynności:

  • Tworzenie agenta zadań do uruchamiania w wielu bazach danych zadań T-SQL
  • Aktualizowanie danych referencyjnych we wszystkich bazach danych dzierżawy
  • Tworzenie indeksu tabeli we wszystkich bazach danych dzierżaw

Następnie wypróbuj samouczek raportowania ad hoc, aby zapoznać się z uruchamianiem zapytań rozproszonych w bazach danych dzierżawy.

Dodatkowe zasoby