Elastyczne pule ułatwiają zarządzanie wieloma bazami danych i skalowanie ich w usłudze Azure SQL Database
Dotyczy: Azure SQL Database
Elastyczne pule usługi Azure SQL Database to proste, ekonomiczne rozwiązanie do zarządzania wieloma bazami danych i skalowania ich przy użyciu różnych i nieprzewidywalnych wymagań dotyczących użycia. Bazy danych w elastycznej puli znajdują się na jednym serwerze i współdzielą określoną liczbę zasobów w ustalonej cenie. Pule elastyczne w usłudze SQL Database umożliwiają deweloperom oprogramowania jako usługi (SaaS) optymalizowanie wydajności cen dla grupy baz danych w określonym budżecie przy jednoczesnym zapewnieniu elastyczności wydajności dla każdej bazy danych.
Czym są elastyczne pule SQL?
Deweloperzy SaaS tworzą aplikacje na podstawie warstw danych na dużą skalę z wieloma bazami danych. Typowy wzorzec aplikacji polega na aprowizacji pojedynczej bazy danych dla każdego klienta. Jednak różni klienci często mają różne i nieprzewidywalne wzorce użycia i trudno jest przewidzieć wymagania dotyczące zasobów poszczególnych użytkowników bazy danych. Tradycyjnie dostępne są dwie opcje:
- Nadmierna aprowizacja zasobów w oparciu o szczytowe użycie i nadpłatę.
- Niedostateczna aprowizacja, aby obniżyć koszty kosztem wydajności i zadowolenia klientów podczas szczytów.
Pule elastyczne rozwiązują ten problem, zapewniając, że bazy danych uzyskują potrzebne zasoby wydajności, gdy ich potrzebują. Udostępniają one prosty mechanizm alokacji zasobów w ramach przewidywalnego budżetu. Aby dowiedzieć się więcej na temat wzorców projektowych dla aplikacji SaaS korzystających z elastycznych pul, zobacz Design patterns for multitenant SaaS applications with SQL Database (Wzorce projektowania dla wielodostępnych aplikacji SaaS z usługą SQL Database).
Ważne
Za pule elastyczne nie są naliczane opłaty za bazę danych. Opłaty są naliczane za każdą godzinę, za którą pula istnieje na najwyższym poziomie jednostek eDTU lub rdzeni wirtualnych, niezależnie od użycia lub tego, czy pula była aktywna przez mniej niż godzinę.
Pule elastyczne umożliwiają kupowanie zasobów dla puli współużytkowanej przez wiele baz danych w celu obsługi nieprzewidywalnych okresów użycia przez poszczególne bazy danych. Zasoby dla puli można skonfigurować na podstawie modelu zakupów opartego na jednostkach DTU lub modelu zakupów opartym na rdzeniach wirtualnych. Zagregowane wykorzystanie jego baz danych określa wymaganie dotyczące zasobów dla puli.
Ilość zasobów dostępnych dla puli jest kontrolowana przez budżet. Wszystko, co musisz zrobić, to:
- Dodaj bazy danych do puli.
- Opcjonalnie ustaw minimalną i maksymalną ilość zasobów dla baz danych w modelu zakupów jednostek DTU lub rdzeni wirtualnych.
- Ustaw zasoby puli na podstawie budżetu.
Za pomocą pul można bezproblemowo rozwijać swoją usługę od chudego startupu do dojrzałego biznesu na coraz większą skalę.
Poszczególne bazy danych w ramach puli mają możliwość używania zasobów w określonym zakresie parametrów. W przypadku dużego obciążenia baza danych może zużywać więcej zasobów, aby sprostać zapotrzebowaniu. Bazy danych pod lekkimi obciążeniami zużywają mniej, a bazy danych bez obciążenia nie zużywają żadnych zasobów. Aprowizowanie zasobów dla całej puli, a nie dla pojedynczych baz danych, upraszcza zadania zarządzania. Ponadto masz przewidywalny budżet dla puli.
Do istniejącej puli można dodać więcej zasobów z minimalnym przestojem. Jeśli dodatkowe zasoby nie są już potrzebne, można je usunąć z istniejącej puli w dowolnym momencie. Możesz również dodawać lub usuwać bazy danych z puli. Jeśli baza danych jest przewidywanie niedostatecznie wykorzystywana, możesz ją przenieść.
Uwaga
Podczas przenoszenia baz danych do lub z elastycznej puli nie ma przestoju z wyjątkiem krótkiego okresu (w kolejności sekund), gdy połączenia z bazą danych zostaną porzucone na końcu operacji.
Kiedy wziąć pod uwagę elastyczną pulę usługi SQL Database?
Pule są odpowiednio dopasowane do wielu baz danych o określonych wzorcach użycia. Ten wzorzec charakteryzuje się niskim średnim użyciem z rzadkimi skokami wykorzystania dla danej bazy danych. Z drugiej strony wiele baz danych z trwałym średnim wysokim użyciem nie powinno być umieszczanych w tej samej elastycznej puli.
Im więcej baz danych można dodać do puli, tym większe oszczędności. W zależności od wzorca wykorzystania aplikacji można zobaczyć oszczędności z jak najmniej dwoma bazami danych S3.
Poniższe sekcje ułatwiają zrozumienie, jak ocenić, czy dodanie konkretnej kolekcji baz danych do puli może być korzystne. W przykładach są używane pule standardowe, ale te same zasady dotyczą elastycznych pul w innych warstwach usług.
Ocena wzorców wykorzystania bazy danych
Na poniższej ilustracji przedstawiono przykład bazy danych, która spędza większość czasu bezczynności, ale okresowo zwiększa się o aktywność. Ten wzorzec wykorzystania jest odpowiedni dla puli.
Wykres ilustruje użycie jednostek DTU w ciągu jednej godziny od 12:00 do 1:00, gdzie każdy punkt danych ma jednominutowy stopień szczegółowości. O godzinie 12:10 baza DB1 osiąga maksymalnie 90 jednostek DTU, ale jego średnie średnie użycie jest mniejsze niż pięć jednostek DTU. Rozmiar obliczeniowy S3 jest wymagany do uruchomienia tego obciążenia w pojedynczej bazie danych, ale ten rozmiar pozostawia większość zasobów nieużywanych w okresach niskiej aktywności.
Pula umożliwia współużytkowanie tych nieużywanych jednostek DTU w wielu bazach danych. Pula zmniejsza wymagane jednostki DTU i całkowity koszt.
Bazując na poprzednim przykładzie, załóżmy, że inne bazy danych mają podobne wzorce wykorzystania jako DB1. Na poniższych dwóch ilustracjach wykorzystanie 4 baz danych i 20 baz danych jest nakładanych na ten sam graf, aby zilustrować nienadzorowany charakter ich wykorzystania w czasie przy użyciu modelu zakupów opartego na jednostkach DTU:
linia na powyższym wykresie ilustruje zagregowane wykorzystanie jednostek DTU we wszystkich 20 bazach danych. Ten wiersz pokazuje, że zagregowane użycie jednostek DTU nigdy nie przekracza 100 jednostek DTU i wskazuje, że w tym okresie 20 baz danych może współużytkować 100 jednostek eDTU. Wynikiem jest 20-krotna redukcja jednostek DTU i 13-krotna obniżka cen w porównaniu do umieszczenia każdej bazy danych w rozmiarach obliczeniowych S3 dla pojedynczych baz danych.
Ten przykład jest idealny, ponieważ:
- Istnieją duże różnice między użyciem szczytowym a średnim użyciem na bazę danych.
- Użycie szczytowe dla poszczególnych baz danych występuje w różnych punktach w czasie.
- Jednostki eDTU są współdzielone przez wiele baz danych.
W modelu zakupów jednostek DTU cena puli jest funkcją jednostek eDTU puli. Chociaż cena jednostkowa eDTU dla puli jest 1,5 razy większa niż cena jednostkowa jednostek DTU dla pojedynczej bazy danych, jednostki eDTU puli mogą być współużytkowane przez wiele baz danych, a wymagana jest mniejsza łączna liczba jednostek eDTU. Te różnice w cenie i współużytkowanie jednostek eDTU są podstawą potencjalnych oszczędności, które mogą zapewnić pule.
W modelu zakupów rdzeni wirtualnych cena jednostkowa rdzeni wirtualnych dla elastycznych pul jest taka sama jak cena jednostkowa rdzeni wirtualnych dla pojedynczych baz danych.
Jak mogę wybrać prawidłowy rozmiar puli?
Najlepszy rozmiar puli zależy od zagregowanych zasobów potrzebnych dla wszystkich baz danych w puli. Musisz określić:
- Maksymalna liczba zasobów obliczeniowych używanych przez wszystkie bazy danych w puli. Zasoby obliczeniowe są indeksowane przez jednostki eDTU lub rdzenie wirtualne w zależności od wybranego modelu zakupów.
- Maksymalna liczba bajtów magazynu wykorzystana przez wszystkie bazy danych w puli.
Aby uzyskać informacje o warstwach usług i limitach zasobów w każdym modelu zakupów, zobacz model zakupów oparty na jednostkach DTU lub model zakupów oparty na rdzeniach wirtualnych.
Poniższe kroki mogą pomóc w oszacowaniu, czy pula jest bardziej opłacalna niż pojedyncze bazy danych:
Oszacuj liczbę jednostek eDTU lub rdzeni wirtualnych potrzebnych dla puli:
- W przypadku modelu zakupów opartego na jednostkach DTU:
- MAX(<Całkowita liczba baz danych × średnie wykorzystanie jednostek DTU na bazę danych>,< liczba współbieżnych szczytowych baz danych × szczytowe wykorzystanie jednostek DTU na bazę danych>)
- W przypadku modelu zakupów opartego na rdzeniach wirtualnych:
- MAX(<Łączna liczba baz danych × średnie wykorzystanie rdzeni wirtualnych na bazę danych>,< liczba współbieżnych szczytowych baz danych × szczytowego wykorzystania rdzeni wirtualnych na bazę danych>)
- W przypadku modelu zakupów opartego na jednostkach DTU:
Oszacuj łączne miejsce do magazynowania wymagane dla puli przez dodanie rozmiaru danych potrzebnych dla wszystkich baz danych w puli. W przypadku modelu zakupów jednostek DTU określ rozmiar puli jednostek eDTU, który zapewnia tę ilość miejsca do magazynowania.
W przypadku modelu zakupów opartego na jednostkach DTU należy przyjąć większe z oszacowań liczb jednostek eDTU z kroku 1 i kroku 2.
- W przypadku modelu zakupów opartego na rdzeniach wirtualnych przyjmij oszacowanie liczby rdzeni wirtualnych z kroku 1.
Zobacz stronę cennika usługi SQL Database.
- Znajdź najmniejszy rozmiar puli większy niż szacowany w kroku 3.
Porównaj cenę puli z kroku 4, aby użyć odpowiednich rozmiarów obliczeniowych dla pojedynczych baz danych.
Ważne
Jeśli liczba baz danych w puli zbliża się do maksymalnej obsługiwanej, rozważ zarządzanie zasobami w gęstych elastycznych pulach.
Właściwości poszczególnych baz danych
Opcjonalnie ustaw właściwości poszczególnych baz danych, aby modyfikować wzorce użycia zasobów w pulach elastycznych. Aby uzyskać więcej informacji, zobacz dokumentację limitów zasobów dla jednostek DTU i elastycznych pul rdzeni wirtualnych.
Używanie innych funkcji usługi SQL Database z elastycznymi pulami
Możesz użyć innych funkcji usługi SQL Database z elastycznymi pulami.
Zadania elastyczne i pule elastyczne
W przypadku puli zadania zarządzania są uproszczone dzięki uruchamianiu skryptów w zadaniach elastycznych. Zadanie elastyczne eliminuje większość tedium skojarzonego z dużą liczbą baz danych.
Aby uzyskać więcej informacji na temat innych narzędzi bazy danych do pracy z wieloma bazami danych, zobacz Skalowanie w poziomie przy użyciu usługi SQL Database.
Elastyczne pule hiperskala
Elastyczne pule usługi Azure SQL Database w warstwie Hiperskala są ogólnie dostępne.
Opcje ciągłości działania dla baz danych w elastycznej puli
Bazy danych w puli zwykle obsługują te same funkcje ciągłości działania, które są dostępne dla pojedynczych baz danych:
- Przywracanie do punktu w czasie: przywracanie do punktu w czasie używa automatycznych kopii zapasowych bazy danych w celu odzyskania bazy danych w puli do określonego punktu w czasie. Zobacz Przywracanie do punktu w czasie.
- Przywracanie geograficzne: Przywracanie geograficzne zapewnia domyślną opcję odzyskiwania, gdy baza danych jest niedostępna z powodu zdarzenia w regionie, w którym jest hostowana baza danych. Zobacz Przywracanie geograficzne.
- Aktywna replikacja geograficzna: w przypadku aplikacji, które mają bardziej agresywne wymagania dotyczące odzyskiwania niż przywracanie geograficzne, można skonfigurować aktywną replikację geograficzną lub grupę trybu failover.
Aby uzyskać więcej informacji na temat powyższych strategii, zobacz Wskazówki dotyczące odzyskiwania po awarii usługi Azure SQL Database.
Tworzenie nowej elastycznej puli usługi SQL Database przy użyciu witryny Azure Portal
Elastyczną pulę można utworzyć w witrynie Azure Portal na dwa sposoby:
- Utwórz pulę elastyczną i wybierz istniejący lub nowy serwer.
- Utwórz pulę elastyczną na podstawie istniejącego serwera.
Aby utworzyć pulę elastyczną i wybrać istniejący lub nowy serwer:
Przejdź do witryny Azure Portal, aby utworzyć pulę elastyczną. Wyszukaj i wybierz pozycję Azure SQL.
Wybierz pozycję Utwórz , aby otworzyć okienko Wybierz wdrożenie SQL. Aby wyświetlić więcej informacji na temat elastycznych pul, na kafelku Bazy danych wybierz pozycję Pokaż szczegóły.
Na kafelku Bazy danych na liście rozwijanej Typ zasobu wybierz pozycję Elastyczna pula. Następnie wybierz Utwórz.
Następnie zarządzaj pulą elastyczną za pośrednictwem witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia platformy Azure, interfejsu API REST lub języka T-SQL.
Aby utworzyć pulę elastyczną na podstawie istniejącego serwera:
Przejdź do istniejącego serwera i wybierz pozycję Nowa pula , aby utworzyć pulę bezpośrednio na tym serwerze.
Uwaga
Można utworzyć wiele pul na serwerze, ale nie można dodawać baz danych z różnych serwerów do tej samej puli.
Warstwa usługi puli określa funkcje dostępne dla elastycznych w puli oraz maksymalną ilość zasobów dostępnych dla każdej bazy danych. Aby uzyskać więcej informacji, zobacz Limity zasobów dla elastycznych pul w modelu JEDNOSTEK DTU. W przypadku limitów zasobów opartych na rdzeniach wirtualnych dla pul elastycznych zobacz Limity zasobów opartych na rdzeniach wirtualnych — pule elastyczne.
Aby skonfigurować zasoby i cennik puli, wybierz pozycję Konfiguruj pulę. Następnie wybierz warstwę usługi, dodaj bazy danych do puli i skonfiguruj limity zasobów dla puli i jej baz danych.
Po skonfigurowaniu puli wybierz pozycję Zastosuj, nadaj puli nazwę i wybierz przycisk OK , aby utworzyć pulę.
Następnie zarządzaj pulą elastyczną za pośrednictwem witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia platformy Azure, interfejsu API REST lub języka T-SQL.
Monitorowanie elastycznej puli i jej baz danych
W witrynie Azure Portal można monitorować wykorzystanie elastycznej puli i baz danych w tej puli. Możesz również wprowadzić zestaw zmian w elastycznej puli i przesłać wszystkie zmiany w tym samym czasie. Te zmiany obejmują dodawanie lub usuwanie baz danych, zmienianie ustawień elastycznej puli lub zmienianie ustawień bazy danych.
Możesz użyć wbudowanych narzędzi do monitorowania wydajności i zgłaszania alertów w połączeniu z ocenami wydajności. Usługa SQL Database może również emitować metryki i dzienniki zasobów, aby ułatwić monitorowanie.
Analizy przypadków klientów
- SnelStart: SnelStart używał elastycznych pul w usłudze SQL Database, aby szybko rozszerzać swoje usługi biznesowe w tempie 1000 nowych baz danych SQL miesięcznie.
- Umbraco: Umbraco używa elastycznych pul w usłudze SQL Database do szybkiego aprowizowania i skalowania usług dla tysięcy dzierżaw w chmurze.
- Daxko/CSI: Język Daxko/CSI używa elastycznych pul w usłudze SQL Database w celu przyspieszenia cyklu programowania i zwiększania obsługi klienta i wydajności.
Powiązana zawartość
- Aby uzyskać informacje o cenach, zobacz Cennik elastycznej puli.
- Aby skalować elastyczne pule, zobacz Skalowanie elastycznych pul i Skalowanie elastycznej puli — przykładowy kod.
- Dowiedz się, jak zarządzać elastycznymi pulami w usłudze Azure SQL Database.
- Aby dowiedzieć się więcej na temat wzorców projektowania aplikacji SaaS przy użyciu elastycznych pul, zobacz Design patterns for multitenant SaaS applications with SQL Database (Wzorce projektowania dla wielodostępnych aplikacji SaaS z usługą SQL Database).
- Aby zapoznać się z samouczkiem SaaS przy użyciu elastycznych pul, zobacz Wprowadzenie do aplikacji SaaS Wingtip.
- Aby dowiedzieć się więcej o zarządzaniu zasobami w elastycznych pulach z wieloma bazami danych, zobacz Zarządzanie zasobami w gęstych elastycznych pulach.
- Dowiedz się więcej na temat elastycznych pul w warstwie Hiperskala.