Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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).
Zmień katalog (cd) na instancję serwera, która ma hostować replikę podstawową.
Utwórz obiekt repliki wysokiej dostępności w pamięci dla repliki podstawowej.
Utwórz obiekt repliki dostępności w pamięci dla każdej repliki pomocniczej.
Utwórz grupę dostępności.
Uwaga / Notatka
Maksymalna długość nazwy grupy dostępności to 128 znaków.
Dołącz nową replikę pomocniczą do grupy dostępności, zobacz Dołączanie repliki pomocniczej do grupy dostępności (SQL Server).
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.
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).
(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:
Wykonuje kopię zapasową
<myDatabase>oraz jego dziennika transakcji.Przywraca
<myDatabase>i jego dziennik transakcji przy użyciu opcji -NoRecovery.Generuje pamięciową reprezentację głównej repliki, hostowaną przez lokalną instancję programu SQL Server (o nazwie
PrimaryComputer\Instance).Tworzy reprezentację repliki pomocniczej w pamięci, która będzie hostowana przez wystąpienie programu SQL Server (o nazwie
SecondaryComputer\Instance).Tworzy grupę dostępności o nazwie
<myAvailabilityGroup>.Dołącza replikę wtórną do grupy dostępności.
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
Tworzenie lub konfigurowanie odbiornika grupy dostępności (SQL Server)
Konfiguracja kopii zapasowej na replikach dostępności (SQL Server)
Konfigurowanie dostępu "Read-Only" na replice dostępności (SQL Server)
Konfigurowanie routingu Read-Only dla grupy dostępności (SQL Server)
Zmiana okresu Session-Timeout dla repliki dostępności (SQL Server)
Aby ukończyć konfigurację grupy dostępności
Dołączanie repliki pomocniczej do grupy dostępności (SQL Server)
Ręczne przygotowywanie pomocniczej bazy danych dla grupy dostępności (SQL Server)
Dołączanie pomocniczej bazy danych do grupy dostępności (SQL Server)
Tworzenie lub konfigurowanie odbiornika grupy dostępności (SQL Server)
Alternatywne sposoby tworzenia grupy dostępności
Użyj Kreatora Grup Dostępności (SQL Server Management Studio)
Okno dialogowe Korzystanie z nowej grupy dostępności (SQL Server Management Studio)
Aby rozwiązać problemy z konfiguracją Always On Availability Groups
Rozwiązywanie problemów z konfiguracją zawsze włączonych grup dostępności (SQL Server)
Rozwiązywanie problemów z nieudaną operacją Dodaj-Plik (Grupy dostępności Always On)
Powiązana zawartość
Blogi:
Konfigurowanie funkcji Always On przy użyciu programu SQL Server PowerShell
Blog Zespołu SQL Server Always On: Oficjalny Blog Zespołu SQL Server Always On
Blogi
inżynierów programu SQL Server CSS Oficjalne dokumenty:
Zobacz też
Punkt końcowy mirroringu bazy danych (SQL Server)
omówienie zawsze włączonych grup dostępności (SQL Server)