Rejestrowanie wielu maszyn wirtualnych SQL na platformie Azure przy użyciu rozszerzenia agenta IaaS SQL
Dotyczy: program SQL Server na maszynie wirtualnej platformy Azure
W tym artykule opisano sposób zbiorczego rejestrowania maszyn wirtualnych programu SQL Server na platformie Azure przy użyciu rozszerzenia agenta IaaS sql przy użyciu Register-SqlVMs
polecenia cmdlet programu Azure PowerShell.
Alternatywnie można automatycznie zarejestrować wszystkie maszyny wirtualne programu SQL Server lub poszczególne maszyny wirtualne programu SQL Server ręcznie.
Uwaga
Maszyny wirtualne z programem SQL Server wdrożone za pośrednictwem witryny Azure Marketplace po październiku 2022 r. mają domyślnie włączony najmniej uprzywilejowany model . Tryby zarządzania rozszerzenia agenta IaaS sql zostały usunięte w marcu 2023 r.
Omówienie
Polecenie Register-SqlVMs
cmdlet może służyć do rejestrowania wszystkich maszyn wirtualnych na danej liście subskrypcji, grup zasobów lub listy określonych maszyn wirtualnych. Polecenie cmdlet zarejestruje maszyny wirtualne, a następnie wygeneruje zarówno raport, jak i plik dziennika.
Proces rejestracji nie wiąże się z żadnym ryzykiem, nie ma przestoju i nie uruchomi ponownie usługi programu SQL Server ani maszyny wirtualnej.
Domyślnie maszyny wirtualne platformy Azure z programem SQL Server 2016 lub nowszym są automatycznie rejestrowane przy użyciu rozszerzenia agenta IaaS SQL po wykryciu przez usługę CEIP. Rejestracja zbiorcza umożliwia rejestrowanie wszystkich maszyn wirtualnych programu SQL Server, które nie są wykrywane przez usługę CEIP.
Aby uzyskać informacje o ochronie prywatności, zobacz oświadczenia o ochronie prywatności rozszerzenia agenta IaaS sql.
Wymagania wstępne
Aby zarejestrować maszynę wirtualną z programem SQL Server przy użyciu rozszerzenia, potrzebne są następujące elementy:
- Subskrypcja platformy Azure zarejestrowana u dostawcy zasobów Microsoft.SqlVirtualMachine i zawiera niezarejestrowane maszyny wirtualne programu SQL Server.
- Upewnij się, że maszyna wirtualna platformy Azure jest uruchomiona.
- Poświadczenia klienta używane do rejestrowania maszyn wirtualnych istnieją w dowolnej z następujących ról platformy Azure: Współautor maszyny wirtualnej, Współautor lub Właściciel.
- Az PowerShell 5.0 — wersje wyższe niż 5.0 obsługują obecnie tylko uwierzytelnianie wieloskładnikowe i nie są zgodne ze skryptem w celu zarejestrowania wielu maszyn wirtualnych.
Rozpocznij
Przed kontynuowaniem należy najpierw utworzyć lokalną kopię skryptu, zaimportować go jako moduł programu PowerShell i nawiązać połączenie z platformą Azure.
Tworzenie skryptu
Aby utworzyć skrypt, skopiuj pełny skrypt z końca tego artykułu i zapisz go lokalnie jako RegisterSqlVMs.psm1
.
Importowanie skryptu
Po utworzeniu skryptu można go zaimportować jako moduł w terminalu programu PowerShell.
Otwórz administracyjny terminal programu PowerShell i przejdź do lokalizacji, w której zapisano RegisterSqlVMs.psm1
plik. Następnie uruchom następujące polecenie cmdlet programu PowerShell, aby zaimportować skrypt jako moduł:
Import-Module .\RegisterSqlVMs.psm1
Łączenie się z platformą Azure
Użyj następującego polecenia cmdlet programu PowerShell, aby nawiązać połączenie z platformą Azure:
Connect-AzAccount
Wszystkie maszyny wirtualne na liście subskrypcji
Użyj następującego polecenia cmdlet, aby zarejestrować wszystkie maszyny wirtualne programu SQL Server na liście subskrypcji:
Register-SqlVMs -SubscriptionList SubscriptionId1,SubscriptionId2
Przykładowe wyjście:
Number of subscriptions registration failed for
because you do not have access or credentials are wrong: 1
Total VMs Found: 10
VMs Already registered: 1
Number of VMs registered successfully: 4
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 3
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Wszystkie maszyny wirtualne w jednej subskrypcji
Użyj następującego polecenia cmdlet, aby zarejestrować wszystkie maszyny wirtualne programu SQL Server w jednej subskrypcji:
Register-SqlVMs -Subscription SubscriptionId1
Przykładowe wyjście:
Total VMs Found: 10
VMs Already registered: 1
Number of VMs registered successfully: 5
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 2
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Wszystkie maszyny wirtualne w wielu grupach zasobów
Użyj następującego polecenia cmdlet, aby zarejestrować wszystkie maszyny wirtualne programu SQL Server w wielu grupach zasobów w ramach jednej subskrypcji:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupList ResourceGroup1,ResourceGroup2
Przykładowe wyjście:
Total VMs Found: 4
VMs Already registered: 1
Number of VMs registered successfully: 1
Number of VMs failed to register due to error: 1
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Wszystkie maszyny wirtualne w grupie zasobów
Użyj następującego polecenia cmdlet, aby zarejestrować wszystkie maszyny wirtualne programu SQL Server w jednej grupie zasobów:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1
Przykładowe wyjście:
Total VMs Found: 4
VMs Already registered: 1
Number of VMs registered successfully: 1
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Określone maszyny wirtualne w jednej grupie zasobów
Użyj następującego polecenia cmdlet, aby zarejestrować określone maszyny wirtualne programu SQL Server w ramach jednej grupy zasobów:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -VmList VM1,VM2,VM3
Przykładowe wyjście:
Total VMs Found: 3
VMs Already registered: 0
Number of VMs registered successfully: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 1
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Określona maszyna wirtualna
Użyj następującego polecenia cmdlet, aby zarejestrować określoną maszynę wirtualną z programem SQL Server:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -Name VM1
Przykładowe wyjście:
Total VMs Found: 1
VMs Already registered: 0
Number of VMs registered successfully: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Opis danych wyjściowych
Zarówno raport, jak i plik dziennika są generowane za każdym razem, Register-SqlVMs
gdy jest używane polecenie cmdlet.
Raport
Raport jest generowany jako .txt
plik o nazwie RegisterSqlVMScriptReport<Timestamp>.txt
, w którym sygnatura czasowa to czas rozpoczęcia polecenia cmdlet. Raport zawiera następujące szczegóły:
Wartość wyjściowa | Opis |
---|---|
Liczba rejestracji subskrypcji nie powiodła się, ponieważ nie masz dostępu lub poświadczenia są niepoprawne | Zapewnia to liczbę i listę subskrypcji, które miały problemy z podanym uwierzytelnianiem. Szczegółowy błąd można znaleźć w dzienniku, wyszukując identyfikator subskrypcji. |
Liczba subskrypcji, których nie można wypróbować, ponieważ nie są one zarejestrowane u dostawcy zasobów | Ta sekcja zawiera liczbę i listę subskrypcji, które nie zostały zarejestrowane w rozszerzeniu agenta IaaS sql. |
Znaleziono łączną liczbę znalezionych maszyn wirtualnych | Liczba maszyn wirtualnych znalezionych w zakresie parametrów przekazanych do polecenia cmdlet. |
Maszyny wirtualne zostały już zarejestrowane | Liczba maszyn wirtualnych, które zostały pominięte, ponieważ zostały już zarejestrowane w rozszerzeniu. |
Liczba zarejestrowanych pomyślnie maszyn wirtualnych | Liczba maszyn wirtualnych, które zostały pomyślnie zarejestrowane po uruchomieniu polecenia cmdlet. Wyświetla listę zarejestrowanych maszyn wirtualnych w formacie SubscriptionID, Resource Group, Virtual Machine . |
Liczba maszyn wirtualnych nie powiodła się z powodu błędu | Liczba maszyn wirtualnych, których nie można zarejestrować z powodu błędu. Szczegóły błędu można znaleźć w pliku dziennika. |
Liczba maszyn wirtualnych pominiętych, ponieważ maszyna wirtualna lub agent podmuchu na maszynie wirtualnej nie jest uruchomiony | Liczba i lista maszyn wirtualnych, których nie można zarejestrować jako maszyny wirtualnej lub agenta gościa na maszynie wirtualnej nie było uruchomione. Można je ponowić po uruchomieniu maszyny wirtualnej lub agenta gościa. Szczegóły można znaleźć w pliku dziennika. |
Liczba pominiętych maszyn wirtualnych, ponieważ nie są uruchomione programu SQL Server w systemie Windows | Liczba maszyn wirtualnych, które zostały pominięte, ponieważ nie są uruchomione programu SQL Server lub nie są maszyną wirtualną z systemem Windows. Maszyny wirtualne są wymienione w formacie SubscriptionID, Resource Group, Virtual Machine . |
Dziennik
Błędy są rejestrowane w pliku dziennika o nazwie VMsNotRegisteredDueToError<Timestamp>.log
, gdzie sygnatura czasowa to czas uruchomienia skryptu. Jeśli błąd znajduje się na poziomie subskrypcji, dziennik zawiera identyfikator subskrypcji rozdzielanej przecinkami i komunikat o błędzie. Jeśli błąd dotyczy rejestracji maszyny wirtualnej, dziennik zawiera identyfikator subskrypcji, nazwę grupy zasobów, nazwę maszyny wirtualnej, kod błędu i komunikat rozdzielony przecinkami.
Uwagi
Podczas rejestrowania maszyn wirtualnych programu SQL Server z rozszerzeniem przy użyciu podanego skryptu należy wziąć pod uwagę następujące kwestie:
- Rejestracja przy użyciu rozszerzenia wymaga agenta gościa uruchomionego na maszynie wirtualnej z programem SQL Server. Obrazy systemu Windows Server 2008 nie mają agenta gościa, więc te maszyny wirtualne nie będą działać i muszą zostać zarejestrowane ręcznie z ograniczoną funkcjonalnością.
- Istnieje wbudowana logika ponawiania prób, aby przezwyciężyć przezroczyste błędy. Jeśli maszyna wirtualna została pomyślnie zarejestrowana, jest to szybka operacja. Jeśli jednak rejestracja nie powiedzie się, każda maszyna wirtualna zostanie ponowiona. W związku z tym należy zezwolić na znaczny czas na ukończenie procesu rejestracji — chociaż wymaganie dotyczące czasu rzeczywistego zależy od typu i liczby błędów.
Pełny skrypt
Aby uzyskać pełny skrypt w usłudze GitHub, zobacz Zbiorcze rejestrowanie maszyn wirtualnych programu SQL Server za pomocą modułu Az programu PowerShell.
Skopiuj pełny skrypt i zapisz go jako RegisterSqLVMs.psm1
.
Następne kroki
- Przejrzyj korzyści zapewniane przez rozszerzenie agenta IaaS sql.
- Ręczne rejestrowanie pojedynczej maszyny wirtualnej
- Automatyczne rejestrowanie wszystkich maszyn wirtualnych w ramach subskrypcji.
- Rozwiązywanie znanych problemów z rozszerzeniem.
- Zapoznaj się z zasadami zachowania poufności informacji o rozszerzeniu agenta IaaS sql.
- Zapoznaj się z listą kontrolną najlepszych rozwiązań, aby zoptymalizować wydajność i zabezpieczenia.
Aby dowiedzieć się więcej, zapoznaj się z następującymi artykułami:
- Omówienie programu SQL Server na maszynach wirtualnych z systemem Windows
- Często zadawane pytania dotyczące programu SQL Server na maszynach wirtualnych z systemem Windows
- Wskazówki dotyczące cen programu SQL Server na maszynach wirtualnych platformy Azure
- Co nowego w programie SQL Server na maszynach wirtualnych platformy Azure