Sdílet prostřednictvím


Vytvoření skupiny dostupnosti AlwaysOn pomocí PowerShellu

platí pro:SQL Server

Toto téma popisuje, jak pomocí rutin PowerShellu vytvořit a nakonfigurovat skupinu dostupnosti AlwaysOn pomocí PowerShellu na SQL Serveru. Skupina dostupnosti definuje sadu uživatelských databází, které budou převzít služby při selhání jako jedna jednotka, a sadu partnerů pro převzetí služeb při selhání, označované jako repliky dostupnosti, které podporují převzetí služeb při selhání.

Poznámka:

Úvod do skupin dostupnosti najdete v tématu Přehled skupin dostupnosti AlwaysOn (SQL Server).

Poznámka:

Jako alternativu k používání rutin PowerShellu můžete použít průvodce vytvořením "skupiny dostupnosti" nebo Transact-SQL. Další informace najdete v tématu Použití dialogového okna Nová skupina dostupnosti (SQL Server Management Studio) nebo Vytvoření skupiny dostupnosti (Transact-SQL).

Než začnete

Požadavky, omezení a doporučení

  • Před vytvořením skupiny dostupnosti ověřte, že instance hostitelů SQL Serveru se nacházejí na různých uzlech jednoho clusteru s podporou převzetí služeb při selhání (WSFC) systému Windows Server. Ověřte také, že vaše instance serveru splňují ostatní požadavky na instanci serveru a že jsou splněny všechny ostatní požadavky na skupiny dostupnosti AlwaysOn a že znáte doporučení. Pro další informace důrazně doporučujeme, abyste si přečetli požadavky, omezení a doporučení pro skupiny dostupnosti Always On (SQL Server).

Povolení

Vyžaduje členství v pevné roli serveru sysadmin a oprávnění k vytvoření SKUPINY DOSTUPNOSTI, ALTER ANY AVAILABILITY GROUP nebo CONTROL SERVER.

Vytvoření a konfigurace skupiny dostupnosti pomocí PowerShellu

Následující tabulka uvádí základní úlohy, které jsou součástí konfigurace skupiny dostupnosti, a uvádí ty, které jsou podporovány rutinami PowerShellu. Úlohy skupin dostupnosti AlwaysOn musí být provedeny v pořadí, ve kterém jsou uvedeny v tabulce.

Task Cmdlety PowerShellu (pokud jsou k dispozici) nebo příkaz Transact-SQL Kde provést úlohu
Vytvoření koncového bodu zrcadlení databáze (jednou na instanci SQL Serveru) New-SqlHadrEndPoint Proveďte na každé instanci serveru, která nemá koncový bod pro zrcadlení databáze.

Pokud chcete změnit existující koncový bod zrcadlení databáze, použijte Set-SqlHadrEndpoint.
Vytvoření skupiny dostupnosti Nejprve pomocí rutiny New-SqlAvailabilityReplica s parametrem -AsTemplate vytvořte objekt repliky dostupnosti v paměti pro každou ze dvou replik dostupnosti, které chcete zahrnout do skupiny dostupnosti.

Pak vytvořte skupinu dostupnosti pomocí rutiny New-SqlAvailabilityGroup a odkazováním na objekty repliky dostupnosti.
Spusťte na instanci serveru, která je hostitelem počáteční primární repliky.
Připojte sekundární repliku do skupiny dostupnosti Join-SqlAvailabilityGroup Spustí se na každé instanci serveru, která je hostitelem sekundární repliky.
Příprava sekundární databáze Backup-SqlDatabase a Restore-SqlDatabase Vytvořte zálohy v instanci serveru, která je hostitelem primární repliky.

Obnovte zálohy na každé instanci serveru, která je hostitelem sekundární repliky, pomocí parametru obnovení NoRecovery . Pokud se cesty k souborům liší mezi počítači, které hostují primární repliku, a cílovou sekundární replikou, použijte také parametr Restore PřemístitFile .
Spuštění synchronizace dat připojením každé sekundární databáze ke skupině dostupnosti Add-SqlAvailabilityDatabase Spusťte na každé instanci serveru, která je hostitelem sekundární repliky.

Poznámka:

Chcete-li provést dané úlohy, změňte adresář (cd) na uvedenou instanci serveru nebo instance.

Použití PowerShellu

Nastavte a použijte poskytovatele PowerShellu SQL Serveru.

Poznámka:

Pokud chcete zobrazit syntaxi a příklad dané rutiny, použijte rutinu Get-Help v prostředí SQL Server PowerShell. Další informace najdete v tématu Získání nápovědy k SQL Serveru PowerShellu.

  1. Změňte adresář (cd) na instanci serveru, která je hostitelem primární repliky.

  2. Vytvořte objekt repliky dostupnosti v paměti pro primární repliku.

  3. Vytvořte objekt dostupnostní repliky v paměti pro každou sekundární repliku.

  4. Vytvořte skupinu dostupnosti.

    Poznámka:

    Maximální délka názvu skupiny dostupnosti je 128 znaků.

  5. Připojte novou sekundární repliku ke skupině dostupnosti, viz Připojení sekundární repliky ke skupině dostupnosti (SQL Server).

  6. Pro každou databázi ve skupině dostupnosti vytvořte sekundární databázi obnovením nedávných záloh primární databáze pomocí FUNKCE RESTORE WITH NORECOVERY.

  7. Připojte každou novou sekundární databázi ke skupině dostupnosti, viz Připojení sekundární repliky ke skupině dostupnosti (SQL Server).

  8. (volitelné) Pomocí příkazu Windows dir ověřte obsah nové skupiny dostupnosti.

Poznámka:

Pokud účty služeb SQL Serveru instancí serveru fungují pod různými uživatelskými účty domény, vytvořte na každé instanci serveru přihlášení pro druhou instanci serveru a udělte tomuto přihlášení oprávnění CONNECT k místnímu koncovému bodu zrcadlení databáze.

Example

Následující příklad PowerShellu vytvoří a nakonfiguruje jednoduchou skupinu dostupnosti s názvem <myAvailabilityGroup> se dvěma replikami dostupnosti a jednou databází dostupnosti. Příklad:

  1. Zálohuje <myDatabase> a jeho transakční protokol.

  2. Obnoví <myDatabase> a jeho transakční protokol pomocí parametru -NoRecovery.

  3. Vytvoří reprezentaci primární repliky v paměti, která bude hostována místní instancí SYSTÉMU SQL Server (pojmenovaný PrimaryComputer\Instance).

  4. Vytvoří reprezentaci sekundární repliky v paměti, která bude hostována instancí SYSTÉMU SQL Server (pojmenovaný SecondaryComputer\Instance).

  5. Vytvoří skupinu dostupnosti s názvem <myAvailabilityGroup>.

  6. Připojuje sekundární repliku ke skupině dostupnosti.

  7. Připojí sekundární databázi ke skupině dostupnosti.

# 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>"  

Související úkoly

Konfigurace instance serveru pro skupiny dostupnosti AlwaysOn

Konfigurace vlastností skupiny dostupnosti a repliky

Dokončení konfigurace skupiny dostupnosti

Alternativní způsoby vytvoření skupiny dostupnosti

Řešení potíží s konfigurací skupin dostupnosti AlwaysOn

Související obsah

Viz také

Koncový bod zrcadlení databáze (SQL Server)
přehled skupin dostupnosti AlwaysOn (SQL Server)