Konfigurace přístupu jen pro čtení k sekundární replice skupiny dostupnosti AlwaysOn

platí pro:SQL Server

Ve výchozím nastavení je pro primární repliku povolen přístup pro čtení i zápis i přístup jen pro čtení a k sekundárním replikám skupiny dostupnosti Always On nejsou povolena žádná připojení. Toto téma popisuje, jak nakonfigurovat přístup k připojení u repliky dostupnosti skupiny dostupnosti AlwaysOn v SQL Server pomocí SQL Server Management Studio, Transact-SQL nebo PowerShellu.

Informace o dopadech povolení přístupu pouze pro čtení pro sekundární repliku a úvod k přístupu klientských připojení najdete v tématech Informace o přístupu klientských připojení k replikám vysoké dostupnosti (SQL Server) a Aktivní sekundární repliky: Sekundární repliky určené pro čtení (skupiny dostupnosti Always On).

Požadavky a omezení

  • Pokud chcete nakonfigurovat jiný přístup k připojení, musíte být připojeni k instanci serveru, která je hostitelem primární repliky.

Povolení

Úkol Povolení
Konfigurace replik při vytváření skupiny dostupnosti Vyžaduje členství v pevné serverové roli sysadmin a buď oprávnění serveru CREATE AVAILABILITY GROUP, oprávnění ALTER ANY AVAILABILITY GROUP nebo oprávnění CONTROL SERVER.
Úprava repliky dostupnosti Vyžaduje oprávnění ALTER AVAILABILITY GROUP u skupiny dostupnosti, oprávnění CONTROL AVAILABILITY GROUP, oprávnění ALTER ANY AVAILABILITY GROUP nebo oprávnění CONTROL SERVER.

Použití aplikace SQL Server Management Studio

Konfigurovat přístup k replice dostupnosti

  1. V Průzkumníku objektů se připojte k instanci serveru, která je hostitelem primární repliky, a rozbalte strom serveru.

  2. Rozbalte uzel Always On High Availability a uzel Skupina dostupnosti .

  3. Klikněte na skupinu dostupnosti, jejíž repliku chcete změnit.

  4. Klikněte pravým tlačítkem myši na repliku dostupnosti a klikněte na vlastnosti.

  5. V dialogovém okně Vlastnosti repliky dostupnosti můžete změnit způsob přístupu k připojení pro primární roli a pro sekundární roli následujícím způsobem:

    • U vedlejší role vyberte novou hodnotu z rozevíracího seznamu Čitelná vedlejší role takto:

      Ne
      K sekundárním databázím této repliky nejsou povolena žádná uživatelská připojení. Nejsou k dispozici pro přístup pro čtení. Toto je výchozí nastavení.

      Pouze pro záměr čtení
      K sekundárním databázím této repliky jsou povolena pouze připojení jen pro čtení. Sekundární databáze jsou k dispozici pro přístup pro čtení.

      Yes
      Všechna připojení jsou povolená k sekundárním databázím této repliky, ale pouze pro přístup pro čtení. Sekundární databáze jsou k dispozici pro přístup pro čtení.

    • Pro primární roli vyberte novou hodnotu v rozevíracím seznamu Připojení v primární roli následujícím způsobem:

      Povolit všechna připojení
      Všechna připojení k databázím v primární replice jsou povolená. Toto je výchozí nastavení.

      Povolit připojení pro čtení a zápis
      Pokud je vlastnost Application Intent nastavena na ReadWrite nebo není nastavena vlastnost připojení Application Intent, je připojení povoleno. Připojení, kde je vlastnost připojení záměru aplikace nastavená na Jen pro čtení , nejsou povolena. To může zákazníkům pomoci zabránit tomu, aby omylem připojili pracovní zátěž určenou pro čtení k primární replice. Další informace o vlastnosti připojení Application Intent naleznete v tématu Using Connection String Keywords with SQL Server Native Client.

Použití Transact-SQL

Konfigurace přístupu k replice dostupnosti

Note

Příklad tohoto postupu najdete v části Příklad (Transact-SQL), dále v této části.

  1. Připojte se k instanci serveru, která je hostitelem primární repliky.

  2. Pokud zadáváte repliku pro novou skupinu dostupnosti, použijte CREATE AVAILABILITY GROUP příkazTransact-SQL. Pokud přidáváte nebo upravujete repliku existující skupiny dostupnosti, použijte ALTER AVAILABILITY GROUP příkazTransact-SQL.

    • Pokud chcete nakonfigurovat přístup k připojení pro sekundární roli, zadejte v klauzuli ADD REPLICA nebo MODIFY REPLICA WITH možnost SECONDARY_ROLE následujícím způsobem:

      SECONDARY_ROLE ( ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } )

      kde

      NE
      K sekundárním databázím této repliky nejsou povolena žádná přímá připojení. Nejsou k dispozici pro přístup pro čtení. Toto je výchozí nastavení.

      READ_ONLY
      K sekundárním databázím této repliky jsou povolena pouze připojení jen pro čtení. Sekundární databáze jsou k dispozici pro přístup pro čtení.

      ALL
      Všechna připojení jsou povolená k sekundárním databázím této repliky, ale pouze pro přístup pro čtení. Sekundární databáze jsou k dispozici pro přístup pro čtení.

  3. Pokud chcete nakonfigurovat přístup k připojení pro primární roli, zadejte v klauzuli ADD REPLICA nebo MODIFY REPLICA WITH možnost PRIMARY_ROLE následujícím způsobem:

    PRIMARY_ROLE ( ALLOW_CONNECTIONS = { READ_WRITE | ALL } )

    kde

    READ_WRITE
    Připojení, kde je vlastnost připojení záměru aplikace nastavena na Jen pro čtení jsou zakázána. Pokud je vlastnost Application Intent nastavena na ReadWrite nebo není nastavena vlastnost připojení Application Intent, je připojení povoleno. Další informace o vlastnosti připojení Application Intent naleznete v tématu Using Connection String Keywords with SQL Server Native Client.

    ALL
    Všechna připojení k databázím v primární replice jsou povolená. Toto je výchozí nastavení.

Příklad (Transact-SQL)

Následující příklad přidá sekundární repliku do skupiny dostupnosti s názvem AG2. Pro hostování nové repliky dostupnosti je určena samostatná instance serveru COMPUTER03\HADR_INSTANCE. Tato replika je nakonfigurovaná tak, aby pro primární roli povolovala pouze připojení pro čtení i zápis a pro sekundární roli povolovala pouze připojení určená jen pro čtení.

ALTER AVAILABILITY GROUP AG2   
   ADD REPLICA ON   
      'COMPUTER03\HADR_INSTANCE' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER03:7022',  
         PRIMARY_ROLE ( ALLOW_CONNECTIONS = READ_WRITE ),  
         SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY )  
         );   
GO  

Použití PowerShellu

Konfigurace přístupu k replice dostupnosti

Note

Příklad kódu najdete v části Příklad (PowerShell) dále v této části.

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

  2. Při přidávání repliky dostupnosti do skupiny dostupnosti použijte rutinu New-SqlAvailabilityReplica . Při úpravě existující repliky dostupnosti použijte rutinu Set-SqlAvailabilityReplica . Relevantní parametry jsou následující:

    • Pokud chcete nakonfigurovat přístup k připojení pro sekundární roli, zadejte parametr ConnectionModeInSecondaryRolesecondary_role_keyword , kde secondary_role_keyword se rovná jedné z následujících hodnot:

      AllowNoConnections
      K databázím v sekundární replice nejsou povolena přímá připojení a databáze nejsou k dispozici pro přístup pro čtení. Toto je výchozí nastavení.

      AllowReadIntentConnectionsOnly
      Připojení jsou povolena pouze k databázím v sekundární replice, kde je vlastnost Záměr aplikace nastavena na Jen pro čtení. Další informace o této vlastnosti naleznete v tématu Using Connection String Keywords with SQL Server Native Client.

      AllowAllConnections
      Všechna připojení k databázím v sekundární replice jsou povolená pro přístup jen pro čtení.

    • Pokud chcete nakonfigurovat přístup k připojení pro primární roli, zadejte connectionModeInPrimaryRoleprimary_role_keyword, kde primary_role_keyword se rovná jedné z následujících hodnot:

      AllowReadWriteConnections
      Připojení, kde je vlastnost připojení záměru aplikace nastavena na ReadOnly jsou zakázána. Pokud je vlastnost Application Intent nastavena na ReadWrite nebo není nastavena vlastnost připojení Application Intent, je připojení povoleno. Další informace o vlastnosti připojení Application Intent naleznete v tématu Using Connection String Keywords with SQL Server Native Client.

      AllowAllConnections
      Všechna připojení k databázím v primární replice jsou povolená. Toto je výchozí nastavení.

    Note

    Pokud chcete zobrazit syntaxi rutiny, použijte rutinu Get-Help v prostředí SQL Server PowerShell. Další informace naleznete v Get Help SQL Server PowerShell.

Nastavení a použití poskytovatele SQL Serveru PowerShellu

Příklad (PowerShell)

Následující příklad nastaví oba parametry ConnectionModeInSecondaryRole a ConnectionModeInPrimaryRole na AllowAllConnections.

Set-Location SQLSERVER:\SQL\PrimaryServer\default\AvailabilityGroups\MyAg  
$primaryReplica = Get-Item "AvailabilityReplicas\PrimaryServer"  
Set-SqlAvailabilityReplica -ConnectionModeInSecondaryRole "AllowAllConnections" `   
-InputObject $primaryReplica  
Set-SqlAvailabilityReplica -ConnectionModeInPrimaryRole "AllowAllConnections" `   
-InputObject $primaryReplica  
  

Další kroky: Po konfiguraci přístupu jen pro čtení pro repliku dostupnosti

Přístup jen pro čtení k sekundární replice s možností čtení

  • Při použití nástroje bcp nebo nástroje sqlcmd můžete zadat přístup jen pro čtení k jakékoli sekundární replice, která je povolena pro přístup jen pro čtení, zadáním přepínače -K Jen pro čtení.

  • Povolení připojení klientských aplikací k čitelným sekundárním replikám:

Předpoklad Link
Ujistěte se, že skupina dostupnosti má naslouchač. Vytvoření nebo konfigurace naslouchacího zařízení skupiny dostupnosti (SQL Server)
Nakonfigurujte směrování jen pro čtení pro skupinu dostupnosti. Konfigurace směrování pouze pro čtení pro Skupinu dostupnosti (SQL Server)

Faktory, které mohou ovlivnit spouštěče a úlohy po převzetí služeb při selhání

Pokud máte triggery a úlohy, které selžou při spuštění v nečitelné sekundární databázi nebo v sekundární databázi s možností čtení, je nutné skriptovat triggery a úlohy, které zkontrolují danou repliku, abyste zjistili, jestli je databáze primární databází nebo je čitelnou sekundární databází. Chcete-li získat tyto informace, použijte funkci DATABASEPROPERTYEX k vrácení vlastnosti Updateability databáze. Chcete-li identifikovat databázi jen pro čtení, zadejte READ_ONLY jako hodnotu následujícím způsobem:

DATABASEPROPERTYEX([db name],'UpdateAbility') = N'READ_ONLY'  

Pokud chcete identifikovat databázi pro čtení i zápis, zadejte READ_WRITE jako hodnotu.

Související úkoly

Související obsah

Viz také

přehled skupin dostupnosti AlwaysOn (SQL Server)
Aktivní sekundární repliky s možností čtení (skupiny dostupnosti AlwaysOn)
O přístupu klientského připojení k replikám dostupnosti (SQL Server)