Dynamiczne skalowanie zasobów bazy danych przy minimalnych przestojach

DOTYCZY: Azure SQL Database Wystąpienie zarządzane usługi Azure SQL

Azure SQL Database i SQL zarządzane umożliwiają dynamiczne dodawanie większej ilości zasobów do bazy danych przy minimalnych przestojach; Jednak istnieje przełączenie w okresie, w którym łączność z bazą danych zostanie utracona na krótki czas, co można ograniczyć przy użyciu logiki ponawiania prób.

Omówienie

Gdy zapotrzebowanie na aplikację rośnie z kilku urządzeń i klientów do milionów, Azure SQL Database i SQL zarządzane są skalowane na bieżąco przy minimalnych przestojach. Skalowalność to jedna z najważniejszych cech modelu PaaS (platforma jako usługa), która umożliwia dynamiczne dodawanie większej liczby zasobów do usługi w razie potrzeby. Azure SQL Database umożliwia łatwe zmienianie zasobów (mocy procesora CPU, pamięci, przepływności we/wy i magazynu) przydzielonych do baz danych.

Problemy z wydajnością można rozwiązać z powodu zwiększonego użycia aplikacji, których nie można naprawić przy użyciu metod indeksowania lub ponownego uwierzytelniania zapytań. Dodanie większej ilości zasobów pozwala szybko reagować, gdy baza danych przekrouje bieżące limity zasobów i wymaga więcej mocy do obsługi przychodzącego obciążenia. Azure SQL Database umożliwia również skalowanie w dół zasobów, 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 Azure Portal za pomocą suwaka.

Skalowanie wydajności bazy danych

Azure SQL Database oferuje model zakupów oparty na jednostkach DTU i model zakupów oparty na rdzeniu rdzeni wirtualnych,natomiast usługa Azure SQL Managed Instance oferuje tylko model zakupów oparty na rdzeniu rdzeni 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 obciążeń bazy danych o lekkim lub dużym obciążeniu: 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 rdzeniu wirtualnych umożliwia wybranie liczby rdzeni wirtualnych, ilości lub pamięci oraz ilości i szybkości magazynu. Ten model zakupów oferuje trzy warstwy usług: Ogólnego przeznaczenia, Krytyczne dla działania firmy i Hiperskala.

Limity warstwy usługi, warstwy obliczeniowej i zasobów dla bazy danych, elastycznej puli lub wystąpienia zarządzanego można zmienić w dowolnym momencie. Na przykład możesz skompilować pierwszą aplikację na pojedynczej bazie danych przy użyciu warstwy obliczeniowej bez serwera, a następnie zmienić jej warstwę usługi ręcznie lub programowo w dowolnym momencie na aprowizowana warstwa obliczeniowa, aby zaspokoić potrzeby rozwiązania.

Uwaga

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

  • Obecnie nie można zmienić baz danych w warstwie usługi Hiperskala na inną warstwę usługi.
  • Baz danych korzystających z funkcji, które są dostępne tylko w warstwach usług Krytyczne dla działania firmy/Premium, nie można zmienić tak, aby używać warstwy Ogólnego przeznaczenia/Standardowa.

Zasoby przydzielone do bazy danych można dostosować, zmieniając cel usługi lub skalowanie w celu spełnienia wymagań obciążeń. Dzięki temu można płacić tylko za potrzebne zasoby, gdy są potrzebne. Zapoznaj się z uwagami na temat potencjalnego wpływu operacji skalowania na aplikację.

Uwaga

Dynamiczna skalowalność różni się od skalowania automatycznego. Skalowanie automatyczne ma miejsce, gdy usługa jest skalowana automatycznie na podstawie kryteriów, natomiast dynamiczna skalowalność umożliwia skalowanie ręczne przy minimalnych przestojach. Pojedyncze bazy danych w Azure SQL Database można skalować ręcznie, a w przypadku warstwy bez serwera można ustawić automatyczne skalowanie zasobów obliczeniowych. Elastyczne pule, które umożliwiają bazom danych współużytkowanie zasobów w puli, obecnie można skalować tylko ręcznie.

Azure SQL Database umożliwia dynamiczne skalowanie baz danych:

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

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

  • SQL zarządzane używa trybu rdzeni wirtualnych i umożliwia zdefiniowanie maksymalnej liczby rdzeni procesora CPU oraz maksymalnej pojemności magazynu przydzielonej do wystąpienia. Wszystkie bazy danych w ramach wystąpienia zarządzanego współdzielą zasoby przydzielone do wystąpienia.

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

Inicjowanie akcji skalowania w górę lub w dół w dowolnej z wymienionych powyżej odmian powoduje ponowne uruchomienie procesu aparatu bazy danych i w razie potrzeby przeniesienie go do innej maszyny wirtualnej. Przeniesienie procesu aparatu bazy danych na nową maszynę wirtualną jest procesem online, w którym można nadal korzystać z istniejącej Azure SQL Database wirtualnej. 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. Zostaną wykonane nowe połączenia z docelowym aparatem bazy danych.

Uwaga

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

Uwaga

Po zakończeniu procesu skalowania w górę/skalowania w dół można spodziewać się krótkiej przerwy w połączeniu. Jeśli zaimplementowano logikę ponawiania dla standardowychbłę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 zmiany 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 opłacalny. W takim przypadku masz następujące dodatkowe opcje skalowania bazy danych:

  • Skalowanie odczytu w zewnątrz to dostępna funkcja, w której jest dostępna jedna replika 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ą dzielenie danych na kilka baz danych i skalowanie ich niezależnie.

Następne kroki

  • Aby uzyskać informacje o poprawianiu wydajności bazy danych przez zmianę kodu bazy danych, zobacz Find and apply performance recommendations (Znajdowanie i stosowanie zaleceń dotyczących wydajności).
  • Aby uzyskać informacje o optymalizowaniu bazy danych przez wbudowaną analizę bazy danych, zobacz Automatyczne dostrajanie.
  • Aby uzyskać informacje na temat skalowania odczytu w Azure SQL Database, zobacz jak używać replik tylko do odczytu do równoważenia obciążenia zapytań tylko do odczytu.
  • Aby uzyskać informacje na temat fragmentowania bazy danych, zobacz Skalowanie wAzure SQL Database .
  • Aby uzyskać przykład użycia skryptów do monitorowania i skalowania pojedynczej bazy danych, zobacz Używanie programu PowerShelldo monitorowania i skalowania pojedynczego SQL Database .