Konfigurieren des schreibgeschützten Zugriffs auf ein Verfügbarkeitsreplikat (SQL Server)
Standardmäßig sind sowohl der Lese-/Schreibzugriff als auch der Zugriff für beabsichtigte Lesevorgänge für das primäre Replikat zulässig, während für sekundäre Replikate einer AlwaysOn-Verfügbarkeitsgruppe keine Verbindungen zulässig sind. In diesem Thema wird beschrieben, wie der Verbindungszugriff für ein Verfügbarkeitsreplikat einer AlwaysOn-Verfügbarkeitsgruppe in SQL Server 2012 unter Verwendung von SQL Server Management Studio, Transact-SQL oder PowerShell konfiguriert wird.
Informationen dazu, welche Auswirkungen die Aktivierung des schreibgeschützten Zugriffs für ein sekundäres Replikat hat, und eine Einführung in den Verbindungszugriff finden Sie unter Informationen zum Clientverbindungszugriff auf Verfügbarkeitsreplikate (SQL Server) und Aktive sekundäre Replikate: Lesbare sekundäre Replikate (AlwaysOn-Verfügbarkeitsgruppen).
Vorbereitungen:
Voraussetzungen und Einschränkungen
Sicherheit
Konfigurieren des Zugriffs auf ein Verfügbarkeitsreplikat mit:
SQL Server Management Studio
Transact-SQL
PowerShell
Nachverfolgung: Nach der Konfiguration des schreibgeschützten Zugriffs für ein Verfügbarkeitsreplikat
Verwandte Aufgaben
Verwandte Inhalte
Vorbereitungen
Voraussetzungen und Einschränkungen
- Um einen anderen Verbindungszugriff zu konfigurieren, benötigen Sie eine Verbindung zur Serverinstanz, die das primäre Replikat hostet.
Sicherheit
Berechtigungen
Aufgabe |
Berechtigungen |
---|---|
So konfigurieren Sie Replikate beim Erstellen einer Verfügbarkeitsgruppe |
Erfordert die Mitgliedschaft in der festen sysadmin-Serverrolle und die CREATE AVAILABILITY GROUP-Serverberechtigung, ALTER ANY AVAILABILITY GROUP-Berechtigung oder CONTROL SERVER-Berechtigung. |
So ändern Sie ein Verfügbarkeitsreplikat |
Erfordert die ALTER AVAILABILITY GROUP-Berechtigung für die Verfügbarkeitsgruppe, die CONTROL AVAILABILITY GROUP-Berechtigung, die ALTER ANY AVAILABILITY GROUP-Berechtigung oder die CONTROL SERVER-Berechtigung. |
[Nach oben]
SQL Server Management Studio
So konfigurieren Sie den Zugriff auf einem Verfügbarkeitsreplikat
Stellen Sie im Objekt-Explorer eine Verbindung mit der Serverinstanz her, die das primäre Verfügbarkeitsreplikat hostet, und erweitern Sie die Serverstruktur.
Erweitern Sie den Knoten Hohe Verfügbarkeit (immer aktiviert) und den Knoten Verfügbarkeitsgruppen.
Klicken Sie auf die Verfügbarkeitsgruppe, deren Replikat geändert werden soll.
Klicken Sie mit der rechten Maustaste auf das Verfügbarkeitsreplikat, und klicken Sie auf Eigenschaften.
Im Dialogfeld Eigenschaften des Verfügbarkeitsreplikats können Sie den Verbindungszugriff für die primäre Rolle und die sekundäre Rolle wie folgt ändern:
Wählen Sie für die sekundäre Rolle aus der Dropdownliste für die lesbare sekundäre Rolle wie folgt einen neuen Wert aus:
Nein
Es werden keine Verbindungen mit sekundären Datenbanken dieses Replikats zugelassen. Sie sind nicht für Lesezugriff verfügbar. Dies ist die Standardeinstellung.Nur beabsichtigte Lesevorgänge
Es sind nur schreibgeschützte Verbindungen zu sekundären Datenbanken dieses Replikats zulässig. Die sekundären Datenbanken sind alle für Lesezugriff verfügbar.Yes
Alle Verbindungen zu sekundären Datenbanken dieses Replikats sind zugelassen, aber nur für Lesezugriff. Die sekundären Datenbanken sind alle für Lesezugriff verfügbar.
Wählen Sie für die primäre Rolle aus der Dropdownliste für Verbindungen in der primären Rolle einen neuen Wert wie folgt aus:
Alle Verbindungen zulassen
Für die Datenbanken im primären Replikat sind alle Verbindungen zugelassen. Dies ist die Standardeinstellung.Verbindungen mit Lese-/Schreibzugriff zulassen
Wenn die Eigenschaft für die Anwendungsabsicht auf ReadWrite festgelegt ist oder keine Verbindungseigenschaft für die Anwendungsabsicht festgelegt wurde, wird die Verbindung zugelassen. Verbindungen, bei denen die Verbindungseigenschaft für die Anwendungsabsicht auf ReadOnly festgelegt ist, werden zugelassen. Dies kann verhindern, dass Kunden mit dem primären Replikat versehentlich eine leseintensive Arbeitsauslastung verbinden. Weitere Informationen zur Verbindungseigenschaft für die Anwendungsabsicht finden Sie unter Verwenden von Schlüsselwörtern für Verbindungszeichenfolgen mit SQL Server Native Client.
[Nach oben]
Transact-SQL
So konfigurieren Sie den Zugriff auf einem Verfügbarkeitsreplikat
Hinweis |
---|
Ein Beispiel für diese Prozedur finden Sie weiter unten in diesem Abschnitt unter Beispiel (Transact-SQL). |
Stellen Sie eine Verbindung mit der Serverinstanz her, die das primäre Replikat hostet.
Wenn Sie ein Replikat für eine neue Verfügbarkeitsgruppe angeben, verwenden Sie die CREATE AVAILABILITY GROUP-Anweisung von Transact-SQL. Verwenden Sie zum Hinzufügen oder Ändern eines Replikats für eine vorhandene Verfügbarkeitsgruppe die ALTER AVAILABILITY GROUP-Anweisung von Transact-SQL.
Geben Sie zum Konfigurieren des Verbindungszugriffs für die sekundäre Rolle in der ADD REPLICA- bzw. MODIFY REPLICA WITH-Klausel die SECONDARY_ROLE-Option wie folgt an:
SECONDARY_ROLE ( ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } )
Erläuterungen:
NO
Es werden keine direkten Verbindungen mit sekundären Datenbanken dieses Replikats zugelassen. Sie sind nicht für Lesezugriff verfügbar. Dies ist die Standardeinstellung.READ_ONLY
Es sind nur schreibgeschützte Verbindungen zu sekundären Datenbanken dieses Replikats zulässig. Die sekundären Datenbanken sind alle für Lesezugriff verfügbar.ALL
Alle Verbindungen zu sekundären Datenbanken dieses Replikats sind zugelassen, aber nur für Lesezugriff. Die sekundären Datenbanken sind alle für Lesezugriff verfügbar.
Geben Sie zum Konfigurieren des Verbindungszugriffs für die primäre Rolle in der ADD REPLICA- bzw. MODIFY REPLICA WITH-Klausel die PRIMARY_ROLE-Option wie folgt an:
PRIMARY_ROLE ( ALLOW_CONNECTIONS = { READ_WRITE | ALL } )
Erläuterungen:
READ_WRITE
Verbindungen, bei denen die Verbindungseigenschaft für die Anwendungsabsicht auf ReadOnly festgelegt ist, werden nicht zugelassen. Wenn die Eigenschaft für die Anwendungsabsicht auf ReadWrite festgelegt ist oder keine Verbindungseigenschaft für die Anwendungsabsicht festgelegt wurde, wird die Verbindung zugelassen. Weitere Informationen zur Verbindungseigenschaft für die Anwendungsabsicht finden Sie unter Verwenden von Schlüsselwörtern für Verbindungszeichenfolgen mit SQL Server Native Client.ALL
Für die Datenbanken im primären Replikat sind alle Verbindungen zugelassen. Dies ist die Standardeinstellung.
Beispiel (Transact-SQL)
Im folgenden Beispiel wird einer Verfügbarkeitsgruppe namens AG2 ein sekundäres Replikat hinzugefügt. Zum Hosten des neuen Verfügbarkeitsreplikats wurde die eigenständige Serverinstanz COMPUTER03\HADR_INSTANCE angegeben. Dieses Replikat ist zum ausschließlichen Zulassen von Verbindungen mit Lese-/Schreibzugriff für die primäre Rolle sowie zum ausschließlichen Zulassen von Verbindungen mit beabsichtigten Lesevorgängen konfiguriert.
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
[Nach oben]
PowerShell
So konfigurieren Sie den Zugriff auf einem Verfügbarkeitsreplikat
Hinweis |
---|
Ein Codebeispiel finden Sie weiter unten in diesem Abschnitt unter Beispiel (PowerShell). |
Ändern Sie das Verzeichnis (cd) zur Serverinstanz, die das primäre Replikat hostet.
Wenn Sie einer Verfügbarkeitsgruppe ein Verfügbarkeitsreplikat hinzufügen, verwenden Sie das New-SqlAvailabilityReplica-Cmdlet. Wenn Sie ein vorhandenes Verfügbarkeitsreplikat ändern, verwenden Sie das Set-SqlAvailabilityReplica-Cmdlet. Die relevanten Parameter lauten wie folgt:
Um den Verbindungszugriff für die sekundäre Rolle zu konfigurieren, geben Sie den ConnectionModeInSecondaryRole secondary_role_keyword-Parameter an, wobei secondary_role_keyword einem der folgenden Werte entspricht:
AllowNoConnections
Für die Datenbanken im sekundären Replikat sind keine direkten Verbindungen zugelassen, und die Datenbanken sind für den Lesezugriff nicht verfügbar. Dies ist die Standardeinstellung.AllowReadIntentConnectionsOnly
Verbindungen mit den Datenbanken im sekundären Replikat sind nur zulässig, wenn die Eigenschaft für die Anwendungsabsicht auf ReadOnly festgelegt ist. Weitere Informationen zu dieser Eigenschaft finden Sie unter Verwenden von Schlüsselwörtern für Verbindungszeichenfolgen mit SQL Server Native Client.AllowAllConnections
Für alle Verbindungen mit den Datenbanken im sekundären Replikat ist der schreibgeschützte Zugriff zugelassen.
Um den Verbindungszugriff für die primäre Rolle zu konfigurieren, geben Sie ConnectionModeInPrimaryRole primary_role_keyword an, wobei primary_role_keyword einem der folgenden Werte entspricht:
AllowReadWriteConnections
Verbindungen, bei denen die Verbindungseigenschaft für die Anwendungsabsicht auf ReadOnly festgelegt ist, werden nicht zugelassen. Wenn die Eigenschaft für die Anwendungsabsicht auf ReadWrite festgelegt ist oder keine Verbindungseigenschaft für die Anwendungsabsicht festgelegt wurde, wird die Verbindung zugelassen. Weitere Informationen zur Verbindungseigenschaft für die Anwendungsabsicht finden Sie unter Verwenden von Schlüsselwörtern für Verbindungszeichenfolgen mit SQL Server Native Client.AllowAllConnections
Für die Datenbanken im primären Replikat sind alle Verbindungen zugelassen. Dies ist die Standardeinstellung.
Hinweis Um die Syntax eines Cmdlets anzuzeigen, verwenden Sie das Get-Help-Cmdlet in der SQL Server 2012 PowerShell-Umgebung. Weitere Informationen finden Sie unter Aufrufen der SQL Server PowerShell-Hilfe.
Einrichten und Verwenden des SQL Server PowerShell-Anbieters
Beispiel (PowerShell)
Im folgenden Beispiel wird sowohl der ConnectionModeInSecondaryRole-Parameter als auch der ConnectionModeInPrimaryRole-Parameter auf AllowAllConnections festgelegt.
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
[Nach oben]
Nachverfolgung: Nach der Konfiguration des schreibgeschützten Zugriffs für ein Verfügbarkeitsreplikat
Schreibgeschützter Zugriff auf ein lesbares sekundäres Replikat
Bei Verwendung von bcp (Hilfsprogramm) oder sqlcmd (Hilfsprogramm) können Sie den schreibgeschützten Zugriff für jedes sekundäre Replikat angeben, das den schreibgeschützten Zugriff unterstützt, indem Sie den -K ReadOnly-Schalter angeben.
So ermöglichen Sie, dass Clientanwendungen eine Verbindung mit lesbaren sekundären Replikaten herstellen können
Voraussetzung
Link
Stellen Sie sicher, dass die Verfügbarkeitsgruppe über einen Listener verfügt.
Erstellen oder Konfigurieren eines Verfügbarkeitsgruppenlisteners (SQL Server)
Konfigurieren Sie das schreibgeschützte Routing für eine Verfügbarkeitsgruppe.
Konfigurieren des schreibgeschützten Routing für eine Verfügbarkeitsgruppe (SQL Server)
Faktoren, die sich auf Trigger und Aufträge nach einem Failover auswirken können
Wenn Sie Trigger und Aufträge haben, die beim Ausführen auf einer nicht lesbaren sekundären Datenbank oder einer lesbaren sekundären Datenbank fehlschlagen, müssen Sie ein Skript für die Trigger und Aufträge erstellen, die auf einem angegebenen Replikat kontrolliert werden sollen, um zu bestimmen, ob die Datenbank eine primäre Datenbank oder eine lesbare sekundäre Datenbank ist. Um diese Informationen abzurufen, verwenden Sie die DATABASEPROPERTYEX-Funktion, um die Updatability-Eigenschaft der Datenbank zurückzugeben. Um eine schreibgeschützte Datenbank zu identifizieren, geben Sie READ_ONLY wie folgt als Wert an:
DATABASEPROPERTYEX([db name],’Updatability’) = N’READ_ONLY’
Um eine Datenbank mit Lese-/Schreibzugriff zu identifizieren, geben Sie READ_WRITE als Wert an.
[Nach oben]
Verwandte Aufgaben
Konfigurieren des schreibgeschützten Routing für eine Verfügbarkeitsgruppe (SQL Server)
Erstellen oder Konfigurieren eines Verfügbarkeitsgruppenlisteners (SQL Server)
[Nach oben]
Verwandte Inhalte
[Nach oben]
Siehe auch
Konzepte
Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server)
Aktive sekundäre Replikate: Lesbare sekundäre Replikate (AlwaysOn-Verfügbarkeitsgruppen)
Informationen zum Clientverbindungszugriff auf Verfügbarkeitsreplikate (SQL Server)