Dynamiczne skalowanie zasobów bazy danych przy minimalnym przestoju — Azure SQL Database i Azure SQL Managed Instance

Dotyczy: Azure SQL DatabaseAzure SQL Managed Instance

Usługi Azure SQL Database i Azure SQL Managed Instance umożliwiają dynamiczne dodawanie większej liczby zasobów do bazy danych przy minimalnych przestojach. Istnieje jednak przełączenie w okresie, w którym łączność zostanie utracona z bazą danych przez krótki czas, co można ograniczyć przy użyciu logiki ponawiania prób.

Omówienie

Gdy zapotrzebowanie na aplikację rośnie od kilku urządzeń i klientów do milionów, usługa Azure SQL Database i wystąpienie zarządzane SQL są skalowane na bieżąco z minimalnym przestojem. Skalowalność jest jedną z najważniejszych cech platformy jako usługi (PaaS), która umożliwia dynamiczne dodawanie większej liczby zasobów do usługi w razie potrzeby. Usługa Azure SQL Database umożliwia łatwe zmienianie zasobów (moc procesora CPU, pamięć, przepływność we/wy i magazyn) przydzielonych do baz danych.

Możesz rozwiązać problemy z wydajnością z powodu zwiększonego użycia aplikacji, których nie można rozwiązać przy użyciu metod indeksowania lub ponownego zapisywania zapytań. Dodanie większej liczby zasobów umożliwia szybkie reagowanie, gdy baza danych osiągnie bieżące limity zasobów i potrzebuje większej mocy do obsługi obciążenia przychodzącego. Usługa Azure SQL Database umożliwia również skalowanie zasobów w dół, gdy nie są one potrzebne do obniżenia kosztów.

Nie musisz martwić się o zakup sprzętu i zmianę podstawowej infrastruktury. Skalowanie bazy danych można łatwo wykonać za pośrednictwem witryny Azure Portal za pomocą suwaka.

Scale database performance

Usługa Azure SQL Database oferuje model zakupów oparty na jednostkach DTU i model zakupów oparty na rdzeniach wirtualnych, a usługa Azure SQL Managed Instance oferuje tylko model zakupów oparty na rdzeniach wirtualnych.

  • Model zakupów oparty na jednostkach DTU oferuje połączenie zasobów obliczeniowych, pamięci i operacji we/wy w trzech warstwach usług w celu obsługi lekkich obciążeń bazy danych o wadze ciężkiej: Podstawowa, Standardowa i Premium. Poziomy wydajności w każdej warstwie udostępniają różne kombinacje tych zasobów i można do nich dodawać kolejne zasoby magazynu.
  • Model zakupów oparty na rdzeniach wirtualnych umożliwia wybranie liczby rdzeni wirtualnych, ilości lub pamięci oraz ilości i szybkości magazynowania. Ten model zakupów oferuje trzy warstwy usług: Ogólnego przeznaczenia, Krytyczne dla działania firmy i Hiperskala.

W dowolnym momencie można zmienić warstwę usługi, warstwę obliczeniową i limity zasobów dla bazy danych, elastycznej puli lub wystąpienia zarządzanego. Możesz na przykład utworzyć pierwszą aplikację w pojedynczej bazie danych przy użyciu bezserwerowej warstwy obliczeniowej, a następnie zmienić warstwę usługi ręcznie lub programowo w dowolnym momencie na aprowizowaną warstwę obliczeniową, aby zaspokoić potrzeby rozwiązania.

Uwaga

Istotne wyjątki, w których nie można zmienić warstwy usługi bazy danych:

  • Bazy danych korzystające z funkcji, które są dostępne tylko w warstwach usług Krytyczne dla działania firmy/Premium, nie można zmienić tak, aby korzystały z warstwy usługi Ogólnego przeznaczenia/Standardowa. Obecnie jedyną taką funkcją jest OLTP w pamięci.
  • Nie można migrować baz danych pierwotnie utworzonych w warstwie usługi Hiperskala do innych warstw usług. Jeśli migrujesz istniejącą bazę danych w usłudze Azure SQL Database do warstwy usługi Hiperskala, możesz cofnąć migrację do warstwy usługi Ogólnego przeznaczenia w ciągu 45 dni od pierwotnej migracji do warstwy Hiperskala. Jeśli chcesz przeprowadzić migrację bazy danych do innej warstwy usługi, takiej jak Krytyczne dla działania firmy, najpierw przeprowadź migrację odwrotną do warstwy usługi Ogólnego przeznaczenia, a następnie przeprowadź dalszą migrację. Dowiedz się więcej w temacie Jak cofnąć migrację z warstwy Hiperskala.

Zasoby przydzielone do bazy danych można dostosować, zmieniając cel usługi lub skalowanie w celu spełnienia wymagań dotyczących obciążeń. Umożliwia to również płacenie tylko za potrzebne zasoby, gdy są one potrzebne. Zapoznaj się z notatką dotyczącą potencjalnego wpływu operacji skalowania na aplikację.

Usługa Azure SQL Database oferuje możliwość dynamicznego skalowania baz danych:

  • W przypadku pojedynczej bazy danych można użyć modeli jednostek DTU lub rdzeni wirtualnych , aby zdefiniować maksymalną ilość zasobów, które zostaną przypisane do każdej bazy danych.
  • Pule elastyczne umożliwiają zdefiniowanie maksymalnego limitu zasobów na grupę baz danych w puli.

Usługa Azure SQL Managed Instance umożliwia również skalowanie:

  • Usługa SQL Managed Instance używa trybu rdzeni wirtualnych i umożliwia zdefiniowanie maksymalnej liczby rdzeni procesora CPU i maksymalnej ilości miejsca przydzielonego do wystąpienia. Wszystkie bazy danych w wystąpieniu zarządzanym będą współdzielić zasoby przydzielone do wystąpienia.

Napiwek

Dynamiczne skalowanie umożliwia klientom ręczne lub programowe zmienianie alokacji zasobów. Możliwość dynamicznego skalowania jest dostępna dla wszystkich zasobów usługi Azure SQL Database i usługi Azure SQL Managed Instance.

Oprócz obsługi dynamicznego skalowania warstwa bezserwerowa w usłudze Azure SQL Database obsługuje skalowanie automatyczne. Bazy danych w warstwie bezserwerowej skaluj zasoby automatycznie w zakresie określonym przez klienta na podstawie zapotrzebowania na obciążenia. Do skalowania bazy danych nie jest wymagana żadna akcja klienta.

Wpływ operacji skalowania w górę lub w dół

Inicjowanie akcji skalowania w górę lub skalowanie w dół w dowolnej z wymienionych powyżej odmian powoduje ponowne uruchomienie procesu aparatu bazy danych i przeniesienie go do innej maszyny wirtualnej w razie potrzeby. Przeniesienie procesu aparatu bazy danych na nową maszynę wirtualną jest procesem online, podczas którego można kontynuować korzystanie z istniejącej usługi Azure SQL Database. Gdy docelowy aparat bazy danych będzie gotowy do przetwarzania zapytań, otwarte połączenia z bieżącym aparatem bazy danych zostaną zakończone, a niezatwierdzone transakcje zostaną wycofane. Nowe połączenia zostaną nawiązane z docelowym aparatem bazy danych.

Uwaga

Nie zaleca się skalowania wystąpienia zarządzanego, jeśli długotrwała transakcja, taka jak importowanie danych, zadania przetwarzania danych, ponowne kompilowanie indeksu itp., jest uruchomione lub jeśli masz aktywne połączenie w wystąpieniu. Aby zapobiec dłuższemu okresowi skalowania niż zwykle, należy skalować wystąpienie po zakończeniu wszystkich długotrwałych operacji.

Uwaga

Po zakończeniu procesu skalowania w górę/w dół można oczekiwać krótkiego przerwania połączenia. Jeśli zaimplementowano logikę ponawiania dla standardowych błędów przejściowych, nie zauważysz trybu failover.

Alternatywne metody skalowania

Skalowanie zasobów jest najprostszym i najbardziej efektywnym sposobem poprawy wydajności bazy danych bez konieczności zmieniania kodu bazy danych lub aplikacji. W niektórych przypadkach nawet najwyższe warstwy usług, rozmiary obliczeniowe i optymalizacje wydajności mogą nie obsługiwać obciążenia w sposób efektywny i ekonomiczny. W takim przypadku masz te dodatkowe opcje skalowania bazy danych:

  • Skalowanie odczytu w poziomie to dostępna funkcja, w której otrzymujesz jedną replikę danych tylko do odczytu, w której można wykonywać wymagające zapytania tylko do odczytu, takie jak raporty. Replika tylko do odczytu będzie obsługiwać obciążenie tylko do odczytu bez wpływu na użycie zasobów w podstawowej bazie danych.
  • Fragmentowanie bazy danych to zestaw technik, które umożliwiają podzielenie danych na kilka baz danych i niezależne skalowanie ich.

Następne kroki