Udostępnij za pomocą


Tworzenie zawsze włączonej grupy dostępności przy użyciu programu PowerShell

Dotyczy:SQL Server

W tym temacie opisano sposób używania poleceń cmdlet programu PowerShell do tworzenia i konfigurowania zawsze włączonej grupy dostępności przy użyciu programu PowerShell w programie SQL Server. Grupa dostępności definiuje zestaw baz danych użytkowników, który przejdzie w tryb failover jako pojedynczą jednostkę i zestaw partnerów trybu failover, nazywanych replikami dostępności, które obsługują tryb failover.

Uwaga / Notatka

Aby zapoznać się z wprowadzeniem do grup dostępności, zobacz Omówienie zawsze włączonych grup dostępności (SQL Server).

Uwaga / Notatka

Alternatywą dla używania poleceń cmdlet programu PowerShell jest użycie kreatora Tworzenie grupy dostępności lub języka Transact-SQL. Aby uzyskać więcej informacji, zobacz Korzystanie z okna dialogowego Nowa grupa dostępności (SQL Server Management Studio) lub Tworzenie grupy dostępności (Transact-SQL).

Przed rozpoczęciem

Wymagania wstępne, ograniczenia i zalecenia

  • Przed utworzeniem grupy dostępności sprawdź, czy każde wystąpienie hosta programu SQL Server znajduje się na innym węźle pojedynczego klastra trybu failover Windows Server Failover Clustering (WSFC). Sprawdź również, czy wystąpienia serwera spełniają inne wymagania wstępne związane z instancjami serwera oraz czy wszystkie inne wymagania dotyczące Always On availability groups są spełnione i czy jesteś zaznajomiony z zaleceniami. Aby uzyskać więcej informacji, zdecydowanie zalecamy zapoznanie się z tematem Wymagania wstępne, ograniczenia i Zalecenia dotyczące zawsze włączonych grup dostępności (SQL Server).

Permissions

Wymaga członkostwa w stałej roli serwera sysadmin oraz uprawnienia do tworzenia grup dostępności (CREATE AVAILABILITY GROUP), uprawnienia do zmieniania dowolnej grupy dostępności (ALTER ANY AVAILABILITY GROUP) lub uprawnienia do zarządzania serwerem (CONTROL SERVER).

Tworzenie i konfigurowanie grupy dostępności przy użyciu programu PowerShell

W poniższej tabeli wymieniono podstawowe zadania związane z konfigurowaniem grupy dostępności i wskazuje te, które są obsługiwane przez polecenia cmdlet programu PowerShell. Zadania grup dostępności Always On muszą być wykonywane w sekwencji, w której są one prezentowane w tabeli.

Zadanie Polecenia cmdlet programu PowerShell (jeśli są dostępne) lub instrukcja Transact-SQL Gdzie wykonać zadanie
Tworzenie punktu końcowego mirroringu bazy danych (raz na wystąpienie programu SQL Server) New-SqlHadrEndPoint Wykonaj polecenie na każdym wystąpieniu serwera, które nie ma punktu końcowego dublowania bazy danych.

Aby zmienić istniejący punkt końcowy mirroringu bazy danych, użyj polecenia Set-SqlHadrEndpoint.
Tworzenie grupy dostępności Najpierw użyj polecenia cmdlet New-SqlAvailabilityReplica z parametrem -AsTemplate , aby utworzyć obiekt repliki dostępności w pamięci dla każdej z dwóch replik dostępności, które mają zostać uwzględnione w grupie dostępności.

Następnie utwórz grupę dostępności, używając polecenia cmdlet New-SqlAvailabilityGroup i odwołując się do obiektów repliki dostępności.
Wykonaj polecenie na wystąpieniu serwera, które ma hostować podstawową replikę początkową.
Dołączanie repliki zapasowej do grupy dostępności Join-SqlAvailabilityGroup Wykonaj polecenie na każdym wystąpieniu serwera, które jest hostem repliki pomocniczej.
Przygotowywanie pomocniczej bazy danych Backup-SqlDatabase i Restore-SqlDatabase Utwórz kopie zapasowe w wystąpieniu serwera hostującym replikę podstawową.

Przywracaj kopie zapasowe na każdym wystąpieniu serwera hostujące replikę pomocniczą przy użyciu parametru przywracania NoRecovery. Jeśli ścieżki plików różnią się między komputerami, które hostują replikę podstawową i docelową repliką pomocniczą, użyj również parametru przywracania RelocateFile .
Rozpocznij synchronizację danych, dołączając każdą pomocniczą bazę danych do grupy dostępności Add-SqlAvailabilityDatabase Wykonaj polecenie na każdej instancji serwera, która hostuje replikę wtórną.

Uwaga / Notatka

Aby wykonać podane zadania, zmień katalog (cd) na wskazane wystąpienie serwera lub wystąpienia.

Korzystanie z programu PowerShell

Skonfiguruj i użyj dostawcy programu PowerShell dla SQL Server.

Uwaga / Notatka

Aby wyświetlić składnię i przykład danego polecenia cmdlet, użyj polecenia cmdlet Get-Help w środowisku programu POWERShell programu SQL Server. Aby uzyskać więcej informacji, zobacz Get Help SQL Server PowerShell (Uzyskiwanie pomocy programu SQL Server PowerShell).

  1. Zmień katalog (cd) na instancję serwera, która ma hostować replikę podstawową.

  2. Utwórz obiekt repliki wysokiej dostępności w pamięci dla repliki podstawowej.

  3. Utwórz obiekt repliki dostępności w pamięci dla każdej repliki pomocniczej.

  4. Utwórz grupę dostępności.

    Uwaga / Notatka

    Maksymalna długość nazwy grupy dostępności to 128 znaków.

  5. Dołącz nową replikę pomocniczą do grupy dostępności, zobacz Dołączanie repliki pomocniczej do grupy dostępności (SQL Server).

  6. Dla każdej bazy danych w grupie dostępności utwórz pomocniczą bazę danych, przywracając najnowsze kopie zapasowe podstawowej bazy danych przy użyciu funkcji RESTORE WITH NORECOVERY.

  7. Dołącz do każdej nowej pomocniczej bazy danych do grupy dostępności, zobacz Dołączanie repliki pomocniczej do grupy dostępności (SQL Server).

  8. (opcjonalnie) Użyj polecenia dir systemu Windows, aby zweryfikować zawartość nowej grupy dostępności.

Uwaga / Notatka

Jeśli konta usług programu SQL Server wystąpień serwera działają w ramach różnych kont użytkowników domeny, w każdym wystąpieniu serwera utwórz identyfikator logowania dla innego wystąpienia serwera i przyznaj temu identyfikatorowi logowania uprawnienie CONNECT do lokalnego punktu końcowego dublowania bazy danych.

Example

Poniższy przykład programu PowerShell tworzy i konfiguruje prostą grupę dostępności o nazwie <myAvailabilityGroup> z dwiema replikami dostępności i jedną bazą danych dostępności. Przykład:

  1. Wykonuje kopię zapasową <myDatabase> oraz jego dziennika transakcji.

  2. Przywraca <myDatabase> i jego dziennik transakcji przy użyciu opcji -NoRecovery.

  3. Generuje pamięciową reprezentację głównej repliki, hostowaną przez lokalną instancję programu SQL Server (o nazwie PrimaryComputer\Instance).

  4. Tworzy reprezentację repliki pomocniczej w pamięci, która będzie hostowana przez wystąpienie programu SQL Server (o nazwie SecondaryComputer\Instance).

  5. Tworzy grupę dostępności o nazwie <myAvailabilityGroup>.

  6. Dołącza replikę wtórną do grupy dostępności.

  7. Dołącza pomocniczą bazę danych do grupy dostępności.

# Backup my database and its log on the primary  
Backup-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.bak" `  
    -ServerInstance "PrimaryComputer\Instance"  
  
Backup-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.log" `  
    -ServerInstance "PrimaryComputer\Instance" `  
    -BackupAction Log   
  
# Restore the database and log on the secondary (using NO RECOVERY)  
Restore-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.bak" `  
    -ServerInstance "SecondaryComputer\Instance" `  
    -NoRecovery  
  
Restore-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.log" `  
    -ServerInstance "SecondaryComputer\Instance" `  
    -RestoreAction Log `  
    -NoRecovery  
  
# Create an in-memory representation of the primary replica.  
$primaryReplica = New-SqlAvailabilityReplica `  
    -Name "PrimaryComputer\Instance" `  
    -EndpointURL "TCP://PrimaryComputer.domain.com:5022" `  
    -AvailabilityMode "SynchronousCommit" `  
    -FailoverMode "Automatic" `  
    -Version 12 `  
    -AsTemplate  
  
# Create an in-memory representation of the secondary replica.  
$secondaryReplica = New-SqlAvailabilityReplica `  
    -Name "SecondaryComputer\Instance" `  
    -EndpointURL "TCP://SecondaryComputer.domain.com:5022" `  
    -AvailabilityMode "SynchronousCommit" `  
    -FailoverMode "Automatic" `  
    -Version 12 `  
    -AsTemplate  
  
# Create the availability group  
New-SqlAvailabilityGroup `  
    -Name "<myAvailabilityGroup>" `  
    -Path "SQLSERVER:\SQL\PrimaryComputer\Instance" `  
    -AvailabilityReplica @($primaryReplica,$secondaryReplica) `  
    -Database "<myDatabase>"  
  
# Join the secondary replica to the availability group.  
Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\SecondaryComputer\Instance" -Name "<myAvailabilityGroup>"  
  
# Join the secondary database to the availability group.  
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\<myAvailabilityGroup>" -Database "<myDatabase>"  

Powiązane zadania

Aby skonfigurować wystąpienie serwera dla grup dostępności Always On

Aby skonfigurować właściwości grupy dostępności i repliki

Aby ukończyć konfigurację grupy dostępności

Alternatywne sposoby tworzenia grupy dostępności

Aby rozwiązać problemy z konfiguracją Always On Availability Groups

Powiązana zawartość

Zobacz też

Punkt końcowy mirroringu bazy danych (SQL Server)
omówienie zawsze włączonych grup dostępności (SQL Server)