Udostępnij przez


Włączanie lub wyłączanie funkcji Always On grupy dostępności

Dotyczy:SQL Server

Aby można było utworzyć i skonfigurować grupę dostępności Always On, należy włączyć funkcję Always On availability groups w każdym wystąpieniu programu SQL Server, które hostuje replikę dostępności.

Ważna

W przypadku usunięcia i ponownego utworzenia klastra WSFC należy wyłączyć i ponownie włączyć funkcję Zawsze włączone grupy dostępności w każdym wystąpieniu programu SQL Server, które hostuje replikę dostępności w oryginalnym klastrze WSFC.

Wymagania wstępne

  • W programie SQL Server 2016 (13.x) wystąpienie musi znajdować się na węźle klastra Windows Server Failover Cluster (WSFC), aby umożliwić funkcję grupy dostępności.

  • W programie SQL Server 2017 (14.x) i nowszych wersjach można włączyć funkcję grup dostępności w celu obsługi grup dostępności w skali odczytu, nawet jeśli wystąpienie programu SQL Server nie znajduje się w klastrze failover systemu Windows Server.

  • Wystąpienie serwera musi uruchomić wersję programu SQL Server, która obsługuje grupy dostępności Always On. Aby uzyskać więcej informacji, zobacz Wersje i obsługiwane funkcje programu SQL Server 2025.

  • Umożliwiaj grupy dostępności na tylko jednym wystąpieniu serwera jednocześnie. Po włączeniu tych grup dostępności poczekaj, aż usługa SQL Server zostanie ponownie uruchomiona, zanim przejdziesz do innego wystąpienia serwera.

  • Aby uzyskać więcej informacji, zobacz Wymagania Wstępne, Ograniczenia i Zalecenia dla Grup Dostępności Always On (SQL Server).

Permissions

Po włączeniu grup dostępności w wystąpieniu programu SQL Server wystąpienie serwera ma pełną kontrolę nad klastrem WSFC.

Musisz być członkiem grupy Administrator na komputerze lokalnym i mieć pełną kontrolę nad klastrem WSFC. Po włączeniu grup dostępności za pomocą programu PowerShell otwórz okno wiersza polecenia przy użyciu opcji Uruchom jako administrator .

Potrzebujesz uprawnień do tworzenia obiektów w usłudze Active Directory i zarządzania obiektami .

Określanie, czy funkcja jest włączona

Aby sprawdzić, czy funkcja grup dostępności jest włączona, można użyć programu SQL Server Management Studio (SSMS), języka Transact-SQL lub programu PowerShell.

Korzystanie z programu SQL Server Management Studio

  1. W programie SQL Server Management Studio (SSMS) w Eksploratorze obiektów kliknij prawym przyciskiem myszy wystąpienie serwera i wybierz polecenie Właściwości.

  2. W oknie dialogowym Właściwości serwera wybierz stronę Ogólne . Właściwość Is HADR Enabled wyświetla jedną z następujących wartości:

    • Prawda, jeśli grupy dostępności są włączone
    • Fałsz, jeśli grupy dostępności są wyłączone.

Korzystanie z Transact-SQL

Użyj następującej instrukcji SERVERPROPERTY :

SELECT SERVERPROPERTY('IsHadrEnabled');

Ustawienie właściwości serwera IsHadrEnabled określa, czy instancja SQL Server jest włączona dla grup dostępności, w następujący sposób:

  • IsHadrEnabled to 1, jeśli grupy dostępności są włączone.
  • IsHadrEnabled jest 0, jeśli grupy dostępności są wyłączone.

Uwaga / Notatka

Aby uzyskać więcej informacji na temat IsHadrEnabled właściwości serwera, zobacz SERVERPROPERTY.

Użyj PowerShell

  1. Zmień katalog (cd) na wystąpienie serwera, w którym chcesz określić, czy włączono Always On grupy dostępności.

  2. Wprowadź następujące polecenie programu PowerShell Get-Item w SQLSERVER:\SQL\NODE1\DEFAULT wierszu polecenia:

    Get-Item . | Select-Object IsHadrEnabled
    

    Uwaga / Notatka

    Aby wyświetlić składnię polecenia cmdlet, użyj cmdletu Get-Help w środowisku PowerShell programu SQL Server. Aby uzyskać więcej informacji, zobacz Get Help SQL Server PowerShell.

Aby skonfigurować dostawcę programu SQL Server PowerShell i korzystać z niego, zobacz Dostawca programu POWERShell programu SQL Server.

Włączanie funkcji

Funkcję grup dostępności można włączyć przy użyciu programu SQL Server Management Studio (SSMS) lub programu PowerShell.

Włączanie przy użyciu programu SQL Server Management Studio

  1. Połącz się z węzłem klastra systemu Windows Server (WSFC) w trybie failover, który hostuje instancję programu SQL Server, gdzie chcesz włączyć grupy dostępności.

  2. W menu Start wskaż pozycję Wszystkie programy, wskaż program Microsoft SQL Server, wskaż pozycję Narzędzia konfiguracji, a następnie wybierz pozycję SQL Server Configuration Manager.

  3. W Menedżerze konfiguracji programu SQL Server wybierz pozycję Usługi programu SQL Server, kliknij prawym przyciskiem myszy pozycję SQL Server (<nazwa> wystąpienia).. Nazwa wystąpienia< to nazwa lokalnej instancji serwera>, dla której chcesz włączyć grupy dostępności. Wybierz Właściwości.

  4. Wybierz kartę Zawsze włączona wysoka dostępność.

  5. Sprawdź, czy pole Nazwa klastra trybu failover systemu Windows zawiera nazwę lokalnego klastra trybu failover. Jeśli to pole jest puste, to wystąpienie serwera obecnie nie obsługuje grup dostępności Always On. Komputer lokalny nie jest węzłem klastra, klaster WSFC jest zamykany lub ta wersja programu SQL Server nie obsługuje zawsze włączonych grup dostępności.

  6. Zaznacz pole wyboru Włącz zawsze włączone grupy dostępności , a następnie wybierz przycisk OK.

    Program SQL Server Configuration Manager zapisuje zmiany. Następnie należy ręcznie uruchomić ponownie usługę PROGRAMU SQL Server. Ten krok umożliwia wybranie czasu ponownego uruchomienia, który najlepiej odpowiada wymaganiom biznesowym. Po ponownym uruchomieniu usługi SQL Server grupy dostępności są włączone, a IsHadrEnabled właściwość serwera ma wartość 1.

Włączanie za pomocą programu PowerShell

  1. Zmień katalog (cd) na wystąpienie serwera, w którym chcesz włączyć grupy dostępności.

  2. Użyj polecenia cmdlet Enable-SqlAlwaysOn , aby włączyć grupy dostępności.

    Aby wyświetlić składnię polecenia cmdlet, użyj cmdletu Get-Help w środowisku PowerShell programu SQL Server. Aby uzyskać więcej informacji, zobacz Get Help SQL Server PowerShell.

    Uwaga / Notatka

    Aby uzyskać informacje o sposobie kontrolowania, czy Enable-SqlAlwaysOn polecenie cmdlet ponownie uruchamia usługę PROGRAMU SQL Server, zobacz Kiedy polecenie cmdlet uruchomi ponownie usługę PROGRAMU SQL Server?, w dalszej części tego artykułu.

Aby skonfigurować dostawcę programu SQL Server PowerShell i korzystać z niego, zobacz Dostawca programu POWERShell programu SQL Server.

Przykład: Enable-SqlAlwaysOn

Następujące polecenie PowerShell włącza Always On grupę dostępności na instancji SQL Server (<computer>\<Instance>).

Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance

Wyłączanie funkcji

Skorzystaj z poniższych sekcji, aby wyłączyć funkcję grup dostępności przy użyciu programu SQL Server Configuration Manager lub programu PowerShell. Po zakończeniu operacji wyłączania można wykonać wszystkie wymagane zadania podrzędne.

Ważna

Wyłącz funkcję grup dostępności tylko w jednym wystąpieniu serwera w tym samym czasie. Po wyłączeniu grup dostępności Always On poczekaj, aż usługa SQL Server zostanie ponownie uruchomiona, zanim przejdziesz do innego wystąpienia serwera.

Zalecenia

Przed wyłączeniem funkcji grup dostępności w instancji serwera, wykonaj następujące kroki:

  1. Jeśli wystąpienie serwera obecnie hostuje replikę podstawową grupy dostępności, którą chcesz zachować, ręcznie przełącz grupę dostępności w tryb failover do zsynchronizowanej repliki pomocniczej, jeśli to możliwe. Aby uzyskać więcej informacji, zobacz Wykonywanie planowanego ręcznego przejścia w tryb failover grupy dostępności (SQL Server).

  2. Usuń wszystkie lokalne repliki pomocnicze. Aby uzyskać więcej informacji, zobacz Usuwanie repliki pomocniczej z grupy dostępności (SQL Server).

Wyłączanie za pomocą programu SQL Server Configuration Manager

  1. Połącz się z węzłem klastra trybu failover systemu Windows Server (WSFC), który hostuje wystąpienie programu SQL Server, w którym chcesz wyłączyć grupy dostępności.

  2. W menu Start wskaż pozycję Wszystkie programy, wskaż program Microsoft SQL Server, wskaż pozycję Narzędzia konfiguracji, a następnie wybierz pozycję SQL Server Configuration Manager.

  3. W Menedżerze konfiguracji programu SQL Server wybierz pozycję Usługi programu SQL Server, kliknij prawym przyciskiem myszy pozycję SQL Server (<nazwa> wystąpienia).. Nazwawystąpienia serwera lokalnego, dla którego chcesz wyłączyć grupy dostępności. Wybierz Właściwości.

  4. Na karcie Zawsze włączona wysoka dostępność wyczyść pole wyboru Włącz zawsze włączone grupy dostępności i wybierz przycisk OK.

    Program SQL Server Configuration Manager zapisuje zmiany i uruchamia ponownie usługę SQL Server. Po ponownym uruchomieniu usługi SQL Server grupy dostępności są wyłączone, a właściwość serwera IsHadrEnabled jest ustawiona na 0, wskazując, że funkcja jest wyłączona.

  5. Zapoznaj się z informacjami w sekcji Kontynuacja w dalszej części tego artykułu.

Wyłączanie za pomocą programu PowerShell

  1. Zmień katalog (cd) na aktywną instancję serwera, w której chcesz wyłączyć grupy dostępności.

  2. Użyj polecenia Disable-SqlAlwaysOn cmdlet, aby wyłączyć grupy dostępności.

    Na przykład następujące polecenie wyłącza grupy dostępności w instancji SQL Server (Komputer\Wystąpienie). To polecenie wymaga ponownego uruchomienia wystąpienia i zostanie wyświetlony monit o potwierdzenie tego ponownego uruchomienia.

    Disable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance
    

    Ważna

    Aby uzyskać informacje o sposobie kontrolowania, czy Disable-SqlAlwaysOn polecenie cmdlet ponownie uruchamia usługę PROGRAMU SQL Server, zobacz Kiedy polecenie cmdlet uruchomi ponownie usługę PROGRAMU SQL Server?, w dalszej części tego artykułu.

    Aby wyświetlić składnię polecenia cmdlet, użyj cmdletu Get-Help w środowisku PowerShell programu SQL Server. Aby uzyskać więcej informacji, zobacz Get Help SQL Server PowerShell.

Aby skonfigurować dostawcę programu SQL Server PowerShell i korzystać z niego, zobacz Dostawca programu POWERShell programu SQL Server.

Dalsze kroki po wyłączeniu grup dostępności

Po wyłączeniu grup dostępności Always On, uruchom ponownie wystąpienie programu SQL Server. SQL Configuration Manager automatycznie uruchamia ponownie wystąpienie serwera. Jeśli jednak używasz polecenia cmdlet Disable-SqlAlwaysOn, musisz ponownie uruchomić ręcznie wystąpienie serwera. Aby uzyskać więcej informacji, zobacz sqlservr Application (Aplikacja sqlservr).

W zrestartowanym wystąpieniu serwera:

  • Bazy danych dostępności nie są uruchamiane podczas uruchamiania programu SQL Server, co czyni je niedostępnymi.

  • Jedyną obsługiwaną instrukcją Transact-SQL dla grupy dostępności jest DROP AVAILABILITY GROUP. CREATE AVAILABILITY GROUP, ALTER AVAILABILITY GROUP, oraz opcje SET HADR nie są obsługiwane.

  • Metadane programu SQL Server i dane konfiguracji grup dostępności Always On w usłudze WSFC nie są wpływane przez wyłączenie grup dostępności.

Jeśli trwale wyłączysz grupy dostępności na każdym wystąpieniu serwera hostującym replikę dostępności dla co najmniej jednej grupy dostępności, wykonaj następujące kroki:

  1. Jeśli nie usunięto lokalnych replik dostępności przed wyłączeniem grup dostępności, usuń każdą grupę dostępności, dla której replikę dostępności hostuje wystąpienie serwera. Aby uzyskać informacje na temat usuwania grupy dostępności, zobacz Usuwanie grupy dostępności (SQL Server).

  2. Aby usunąć metadane, usuń (upuść) każdą grupę dostępności, której dotyczy problem, w wystąpieniu serwera, który jest częścią oryginalnej usługi WSFC.

  3. Wszystkie podstawowe bazy danych nadal są dostępne dla wszystkich połączeń, ale synchronizacja danych między podstawowymi i pomocniczymi bazami danych zatrzymuje się.

  4. Pomocnicze bazy danych wchodzą w stan RESTOREING. Można je usunąć lub przywrócić za pomocą polecenia RESTORE WITH RECOVERY. Jednak przywrócone bazy danych nie uczestniczą już w synchronizacji danych grupy dostępności.

Kiedy polecenie cmdlet uruchamia ponownie usługę SQL Server?

W wystąpieniu serwera, które jest aktualnie uruchomione, użycie Enable-SqlAlwaysOn lub Disable-SqlAlwaysOn w celu zmiany bieżącego ustawienia grupy dostępności może spowodować ponowne uruchomienie usługi SQL Server. Zachowanie ponownego uruchamiania zależy od następujących warunków:

-NoServiceRestart określony parametr -Force określony parametr Usługa SQL Server została ponownie uruchomiona
Nie. Nie. Domyślnie. Zobacz Jeśli określono oba parametry.
Nie. Tak Usługa jest uruchamiana ponownie.
Tak Nie. Usługa nie jest uruchamiana ponownie.
Tak Tak Usługa nie jest uruchamiana ponownie.

Jeśli określono oba parametry

Jeśli określisz parametry -NoServiceRestart i -Force , polecenie cmdlet wyświetli następujący monit (wartość domyślna to Y):

To complete this action, we must restart the SQL Server service for server instance '<instance_name>'. Do you want to continue?

[Y] Yes [N] No [S] Suspend [?] Help

Jeśli określisz N lub S, usługa nie zostanie ponownie uruchomiona.