Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Zidentyfikuj odpowiednią bazę danych Azure SQL Database, usługę Azure SQL Managed Instance lub program SQL Server na maszynie wirtualnej Azure VM SKU dla swojej lokalnej bazy danych

Ważne

Narzędzie Data Migration Assistant (DMA) jest przestarzałe. Aby uzyskać opcje migracji z programu SQL Server do usługi Azure SQL, zobacz opcje migracji dla programu SQL Server do usługi Azure SQL.

Migracja baz danych do chmury może być skomplikowana. Szczególnie wtedy, gdy próbujesz wybrać najlepszą bazę danych spośród usługi Azure SQL Database, usługi SQL Managed Instance lub programu SQL Server na maszynie wirtualnej platformy Azure, wybierając odpowiedni cel i SKU dla swojej bazy danych.

Narzędzie Database Migration Assistant (DMA) pomaga rozwiązać te pytania i ułatwić migrację bazy danych, udostępniając te zalecenia dotyczące jednostki SKU w przyjaznych dla użytkownika danych wyjściowych. Korzystając z danych wydajności, DMA może teraz zalecić odpowiednią docelową wersję SKU dla usługi Azure SQL oraz wyjaśnić to zalecenie.

Funkcja zaleceń dotyczących jednostki SKU pozwala na zbieranie danych wydajności z wystąpień programu SQL Server, które hostują Twoje bazy danych, oraz zaleca minimalną jednostkę SKU dla Azure SQL Database, Azure SQL Managed Instance lub SQL Server na maszynie wirtualnej platformy Azure na podstawie zebranych danych. Funkcja udostępnia zalecenia dotyczące warstwy cenowej, poziomu obliczeniowego i rozmiaru danych. Ta funkcja jest obecnie dostępna tylko za pośrednictwem interfejsu wiersza polecenia .

Poniżej przedstawiono instrukcje ułatwiające określenie zaleceń dotyczących jednostki SKU i aprowizowania odpowiednich baz danych na platformie Azure przy użyciu usługi DMA.

Uwaga

Jeśli oceniasz całą infrastrukturę danych SQL Server na VMware, użyj Azure Migrate, aby uzyskać zalecenia dotyczące wdrażania Azure SQL, docelowe rozmiary i miesięczne szacunki.

Warunki wstępne

  • Pobierz i zainstaluj najnowszą wersję DMA. Jeśli masz już starszą wersję narzędzia, otwórz go i zostanie wyświetlony monit o uaktualnienie narzędzia DMA.
  • Zainstaluj minimalną wersję .NET Core 6.0 na komputerze narzędziowym, na którym działa aplikacja konsolowa rekomendacji SKU.
  • Upewnij się, że konto używane do nawiązywania połączenia ze źródłem lokalnym programu SQL Server ma uprawnienia administratora systemu.

Uwaga

Zaleca się, aby narzędzie było używane z oddzielnej maszyny narzędzi (klienta) z łącznością z docelowymi wystąpieniami SQL, a nie z maszyny obsługującej program SQL Server, aby zminimalizować potencjalne obciążenie. Podczas zbierania danych wydajności dotyczących rekomendacji dla produktów SKU zaleca się, aby narzędzie było uruchamiane z domyślnymi wartościami opcji przez kilka godzin, obejmując zarówno obciążenia w okresach poza szczytem, jak i w szczycie, oraz z wyłączeniem zadań konserwacyjnych, takich jak przebudowę indeksu lub utworzenie kopii zapasowej bazy danych. Prace konserwacyjne mogą wpływać na zużycie CPU, pamięci oraz wejścia/wyjścia, co może prowadzić do rekomendowania wyższych warstw SKU.

Zbieranie danych wydajności

Zebrane dane zawierają ograniczone informacje o konfiguracji sprzętowej serwera oraz zagregowane dane wydajności specyficzne dla języka SQL z dynamicznych widoków zarządzania systemu, takich jak procesor CPU, pamięć, użycie magazynu, przepływność operacji we/wy i opóźnienie operacji we/wy. Zebrane dane są przechowywane lokalnie na maszynie w celu dalszej agregacji i analizy. Charakterystyki wydajności twojego wystąpienia źródłowego są analizowane, aby umożliwić rekomendacje SKU dla ofert Azure SQL (w tym SQL Database, SQL Managed Instance i SQL na maszynie wirtualnej platformy Azure), które najlepiej odpowiadają twojemu obciążeniu, pozostając jednocześnie opłacalne.

W ścieżce instalacji narzędzia DMA znajdź folder SQLAssessmentConsole i aplikację SqlAssessment.exe.

Zrzut ekranu przedstawiający plik SKUConsoleApplication.exe wyświetlany w lokalizacji folderu instalacyjnego DMA.

Aby rozpocząć proces zbierania danych, określ akcję PerfDataCollection w aplikacji konsolowej z następującymi argumentami:

  • sqlConnectionStrings: (wymagane) parametry połączenia formalnego ujęte w cudzysłów dla docelowych wystąpień SQL.
  • perfQueryIntervalInSec (opcjonalne): interwał wykonywania zapytań o dane wydajności w sekundach. (Ustawienie domyślne: 30).
  • staticQueryIntervalInSec (opcjonalne): interwał, w którym należy wykonywać zapytania i utrwalać statyczne dane konfiguracji w sekundach. (Ustawienie domyślne: 60).
  • numberOfIterations (opcjonalny): liczba iteracji zbierania danych wydajności, które należy wykonać przed zapisaniem do pliku. Na przykład przy użyciu wartości domyślnych dane wydajności są utrwalane co 30 sekund * 20 iteracji = 10 minut. (Ustawienie domyślne: 20).
  • outputFolder (opcjonalne): folder, do którego są zapisywane i z którego są odczytywane dane wydajności, raporty i dzienniki. (Ustawienie domyślne: %LocalAppData%/Microsoft/SqlAssessmentConsole).

Poniższy przykład to wywołanie przykładowe:

Console
.\SqlAssessment.exe PerfDataCollection
--sqlConnectionStrings "Data Source=Server1;Initial Catalog=master;Integrated Security=True;" "Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
--outputFolder C:\Output

Alternatywnie proces zbierania danych można wywołać, podając odpowiednie argumenty w pliku konfiguracji JSON i przekazując plik konfiguracji do narzędzia, uruchamiając plik wykonywalny bez akcji w następujący sposób:

Console
.\SqlAssessment.exe --configFile C:\path\to\config.json

Poniższy przykładowy plik ConfigFile jest odpowiednikiem opisanej wcześniej akcji zbierania danych wydajności:

JSON
  {
    "action": "PerfDataCollection",
    "sqlConnectionStrings": [
    "Data Source=Server1;Initial Catalog=master;Integrated Security=True;",
    "Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
    ],
    "outputFolder": "C:\\Output"
  }

Przykładowe pliki konfiguracji dla wszystkich akcji można znaleźć w folderze Example w obszarze Ścieżka instalacji DMA: GetMetadataSampleConfigFile.json, PerfDataCollectionSampleConfigFile.jsoni GetSkuRecommendationSampleConfigFile.json.

Po wykonaniu polecenia punkty danych wydajności i konfiguracji są zapisywane jako zestaw trzech *_Counters.csv plików na wystąpienie docelowe, z których każdy zawiera serwer i nazwę wystąpienia. Możesz użyć tego pliku jako danych wejściowych w następnej części procesu, co zapewni zalecenia dotyczące jednostki SKU dla usługi Azure SQL Database, usługi Azure SQL Managed Instance lub programu SQL Server na maszynie wirtualnej platformy Azure.

Uzyskiwanie zaleceń dotyczących jednostek SKU przy użyciu aplikacji konsolowej

Zebrane w poprzednim kroku dane są wykorzystywane jako dane wejściowe do procesu rekomendacji SKU.

W przypadku opcji pojedynczej bazy danych usługa DMA udostępnia zalecenia dotyczące pojedynczej warstwy bazy danych usługi Azure SQL Database, poziomu obliczeniowego i zalecanej konfiguracji magazynu dla każdej bazy danych w wystąpieniu SQL.

W przypadku usługi Azure SQL Managed Instance i programu SQL Server na maszynie wirtualnej platformy Azure zalecenia obsługują scenariusz lift-and-shift. W związku z tym aplikacja konsolowa zaleceń dotyczących jednostek SKU może udostępnić zalecenia dotyczące usługi Azure SQL Managed Instance lub programu SQL Server w warstwie maszyny wirtualnej platformy Azure, poziomu obliczeniowego i zalecanej konfiguracji magazynu dla zestawu baz danych w wystąpieniu SQL. Można również określić tylko podzbiór baz danych, które mają być dołączone lub wykluczone z zaleceń dotyczących jednostki SKU.

GetSkuRecommendation używa domyślnie strategii bazowej, która mapuje zebrane wartości danych wydajności reprezentatywne dla obciążenia (na podstawie określonej wartości percentylu) do odpowiedniej jednostki SKU usługi Azure SQL. Oferujemy również elastyczną strategię (podejście statystyczne), która generuje unikatową krzywą cen do wydajności na podstawie zebranych danych wydajności, analizując wzorce obciążeń względem modelu na podstawie klientów, którzy już zmigrowali do usługi Azure SQL.

Aby rozpocząć proces rekomendacji jednostki SKU, określ akcję GetSkuRecommendation w aplikacji konsolowej z następującymi argumentami:

  • perfQueryIntervalInSec (opcjonalne): interwał, w którym wykonano zapytanie dotyczące danych wydajności w sekundach. Uwaga: Podana wartość musi być zgodna z wartością pierwotnie używaną podczas zbierania danych wydajności. (Ustawienie domyślne: 30)
  • targetPlatform (opcjonalne): platforma docelowa dla rekomendacji SKU: AzureSqlDatabase, AzureSqlManagedInstance, AzureSqlVirtualMachinelub Any. Wybranie Any umożliwia ocenę zaleceń dotyczących jednostek SKU dla wszystkich trzech platform docelowych, a najlepsze dopasowanie jest zwracane. (Ustawienie domyślne: Any)
  • targetSqlInstance (opcjonalne): nazwa wystąpienia SQL, do którego skierowana jest rekomendacja SKU. (Ustawienie domyślne: outputFolder jest skanowany pod kątem plików utworzonych przez działanie PerfDataCollection, a zalecenia są udostępniane dla każdego znalezionego wystąpienia)
  • targetPercentile (opcjonalne): Percentyl punktów danych, które mają być używane podczas agregacji danych wydajności. Używane tylko dla strategii bazowej (nieelastyjnej). Używane tylko dla strategii bazowej (nieelastyjnej). (Ustawienie domyślne: 95)
  • scalingFactor (opcjonalne): współczynnik skalowania ('komfortu') używany podczas rekomendacji SKU. Jeśli na przykład określono, że istnieje wymaganie procesora 4 vRdzenie z współczynnikiem skalowania 150%, to rzeczywiste wymaganie procesora to 6 vRdzenie. (Ustawienie domyślne: 100)
  • startTime (opcjonalne): czas rozpoczęcia punktów danych wydajności UTC do rozważenia podczas agregacji w formacie yyyy-MM-dd HH:mm. Używane tylko dla strategii bazowej (nieelastyjnej). (Ustawienie domyślne: wszystkie zebrane punkty danych są brane pod uwagę)
  • endTime (opcjonalne): czas zakończenia UTC punktów danych dotyczących wydajności, które należy uwzględnić podczas agregacji, w formacie yyyy-MM-dd HH:mm. Używane tylko dla strategii bazowej (nieelastyjnej). (Ustawienie domyślne: wszystkie zebrane punkty danych są brane pod uwagę)
  • elasticStrategy (opcjonalne): określa, czy używać elastycznej strategii zaleceń dotyczących jednostek SKU na podstawie profilowania użycia zasobów i analizy wydajności kosztów. Strategia elastyczna jest obecnie dostępna dla baz danych Azure SQL Database i usługi SQL Managed Instance, która nie jest jeszcze dostępna dla programu SQL Server na docelowej maszynie wirtualnej platformy Azure. (Ustawienie domyślne: false)
  • databaseAllowList (opcjonalne): rozdzielona spacją lista nazw baz danych, które mają być uwzględnione przy rozważeniu rekomendacji dotyczących jednostki SKU, z wyłączeniem wszystkich innych. Ustaw tylko jedną z następujących wartości lub nie: databaseAllowList, databaseDenyList. (Ustawienie domyślne: null)
  • databaseDenyList (opcjonalne): lista nazw baz danych oddzielona spacją, które mają zostać wykluczone z rekomendacji SKU. Ustaw tylko jedną z następujących wartości lub nie: databaseAllowList, databaseDenyList. (Ustawienie domyślne: null)
  • overwrite (opcjonalne): Czy zastąpić wszystkie istniejące raporty rekomendacji SKU. (Ustawienie domyślne: true)
  • displayResult (opcjonalne): czy wyniki rekomendacji SKU mają być wyświetlone w konsoli. (Ustawienie domyślne: true)
  • outputFolder (opcjonalne): Folder, do którego zapisywane są i z którego odczytywane są dane wydajności, raporty i dzienniki. (Ustawienie domyślne: %LocalAppData%\Microsoft\SqlAssessment)
  • suppressPreviewFeatures (opcjonalne): Jeśli dla dowolnej funkcji platformy Azure, która znajduje się w okresie testowania, ustawiono wartość true, nie jest ona uwzględniona w rekomendacji. (Ustawienie domyślne: false)

Zaawansowane ustawienia dotyczące rekomendacji SKU można znaleźć w pliku Console.Settings.json w katalogu głównym. Obecnie zawiera następujące parametry, które można dostosowywać:

CommandTimeoutGroupSetting: Czas w sekundach, przez który należy czekać na wykonanie poleceń zapytania SQL przed przekroczeniem limitu czasu.

  • PerfCollectionCommandTimeout: Limit czasu polecenia dla potencjalnie długotrwałych zapytań związanych z zbieraniem danych wydajności (ustawienie domyślne: 300)
  • DefaultCollectionCommandTimeout: limit czasu polecenia dla wszystkich innych zapytań (ustawienie domyślne: 120)

ThrottlingGroupSetting: liczba zadań równoległych do utworzenia na podstawie liczby rdzeni na maszynie

  • ServerInstancesParallelCount: liczba wystąpień serwera do równoległej oceny (wartość domyślna: 2)
  • DatabasesParallelCount: liczba baz danych do oceny równolegle (ustawienie domyślne: 4)
  • UserDefinedObjectsParallelCountPerDb: liczba obiektów zdefiniowanych przez użytkownika (procedury składowane, widoki, wyzwalacze itp.) w celu oceny równolegle dla bazy danych (ustawienie domyślne: 4)

AllowTelemetry: czy zezwolić na zbieranie i przesyłanie anonimowych danych użycia funkcji i diagnostycznych do firmy Microsoft. (Ustawienie domyślne: true)

Alternatywnie można wywołać proces rekomendacji jednostki SKU, podając odpowiednie argumenty w pliku konfiguracji JSON i przekazując plik konfiguracji do narzędzia, uruchamiając plik wykonywalny bez akcji w następujący sposób:

Console
.\SqlAssessment.exe --configFile C:\path\to\config.json

Poniższy plik konfiguracyjny jest odpowiednikiem opisanego wcześniej działania zaleceń dotyczącego jednostek SKU.

JSON
{
    "action": "GetSkuRecommendation",
    "outputFolder": "C:\\Output",
    "targetPlatform": "AzureSqlDatabase",
    "targetSqlInstance": "Server1",
    "targetPercentile": 95,
    "scalingFactor": 100,
    "startTime": "2020-01-01 00:00",
    "endTime": "2022-01-01 00:00",
    "perfQueryIntervalInSec": 30,
    "overwrite": "true"
}

Aby uzyskać zalecenia dotyczące jednostki SKU dla określonej platformy Azure SQL zamiast wybierać jedną automatycznie, podaj wartość dla opcji --targetPlatform w następujący sposób:

Przykład 1: Uzyskiwanie zaleceń dotyczących jednostki SKU dla usługi Azure SQL Database.

Console
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlDatabase

Przykład 2: Uzyskiwanie zaleceń dotyczących jednostek SKU przy użyciu strategii elastycznej dla usługi Azure SQL Managed Instance.

Console
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlManagedInstance
--elasticStrategy true

Przykład 3: Uzyskiwanie zaleceń dotyczących SKU dla maszyny wirtualnej Azure SQL.

Console
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine

Przykład 4: Uzyskiwanie zaleceń dotyczących jednostki SKU dla maszyny wirtualnej Azure SQL i wyłączanie funkcji w wersji zapoznawczej.

Console
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine
--suppressPreviewFeatures True

Poniższy zrzut ekranu to przykładowe dane wyjściowe zalecenia usługi Azure SQL Database:

Zrzut ekranu przedstawiający warstwę SKU dla bazy danych Azure SQL i zalecenia dotyczące określania rozmiaru wyświetlane w konsoli SQLAssessment.

Poniższy zrzut ekranu to przykładowe dane wyjściowe zalecenia usługi Azure SQL Managed Instance:

Zrzut ekranu z konsoli pokazujący zalecenia dotyczące poziomu SKU oraz rozmiaru usługi Azure SQL Managed Instance.

Poniższy zrzut ekranu to przykładowe dane wyjściowe zalecenia programu SQL Server na maszynie wirtualnej platformy Azure:

Zrzut ekranu przedstawiający program SQL Server w warstwie jednostki SKU maszyny wirtualnej platformy Azure i zalecenia dotyczące rozmiaru wyświetlane w konsoli.

Dane wyjściowe zalecenia SKU są zapisywane zarówno jako szczegółowy raport w formacie JSON, jak i podsumowany, łatwy do odczytania plik HTML. Dane wyjściowe obejmują następujące sekcje:

  • Nazwa wystąpienia: Nazwa lokalnego wystąpienia programu SQL Server.
  • nazwa bazy danych: nazwa lokalnej bazy danych programu SQL Server.
  • Zalecenie dotyczące jednostki SKU: minimalna, opłacalna kosztowo oferta jednostek SKU spełniających wymogi wydajności, które mogą obsłużyć obciążenia.
  • Powód rekomendacji: Dla każdej zalecanej warstwy przedstawiamy powody oraz zebrane wartości danych, które wpływają na rekomendacje.

Ostateczne zalecane wartości warstwy i konfiguracji dla tej warstwy odzwierciedlają minimalną jednostkę SKU wymaganą do uruchomienia zapytań na platformie Azure z szybkością powodzenia podobną do lokalnych baz danych.