Erstellen einer Always On-Verfügbarkeitsgruppe mit Transact-SQL (T-SQL)Create an Always On availability group using Transact-SQL (T-SQL)

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

In diesem Thema wird beschrieben, wie Transact-SQLTransact-SQL zum Erstellen und Konfigurieren einer Verfügbarkeitsgruppe für Instanzen von SQL Server 2019 (15.x)SQL Server 2019 (15.x) mit aktivierter Always On-VerfügbarkeitsgruppenAlways On availability groups -Funktion verwendet wird.This topic describes how to use Transact-SQLTransact-SQL to create and configure an availability group on instances of SQL Server 2019 (15.x)SQL Server 2019 (15.x) on which the Always On-VerfügbarkeitsgruppenAlways On availability groups feature is enabled. Eine Verfügbarkeitsgruppe definiert einen Satz von Benutzerdatenbanken, für die als eine einzelne Einheit ein Failover ausgeführt wird, sowie einen Satz von Failoverpartnern, die als Verfügbarkeitsreplikatebezeichnet werden, die Failover unterstützen.An availability group defines a set of user databases that will fail over as a single unit and a set of failover partners, known as availability replicas, that support failover.

Hinweis

Eine Einführung zu Verfügbarkeitsgruppen finden Sie unter Übersicht über Always On-Verfügbarkeitsgruppen (SQL Server)erstellt und konfiguriert wird.For an introduction to availability groups, see Overview of Always On Availability Groups (SQL Server).

Hinweis

Als Alternative zur Verwendung von Transact-SQLTransact-SQLkönnen Sie den Assistenten zum Erstellen einer Verfügbarkeitsgruppe oder SQL ServerSQL Server PowerShell-Cmdlets verwenden.As an alternative to using Transact-SQLTransact-SQL, you can use the Create Availability Group wizard or SQL ServerSQL Server PowerShell cmdlets. Weitere Informationen finden Sie unter Verwenden des Assistenten für Verfügbarkeitsgruppen (SQL Server Management Studio)Verwenden des Dialogfelds „Neue Verfügbarkeitsgruppe“ (SQL Server Management Studio)Erstellen einer Verfügbarkeitsgruppe (SQL Server PowerShell).For more information, see Use the Availability Group Wizard (SQL Server Management Studio), Use the New Availability Group Dialog Box (SQL Server Management Studio), or Create an Availability Group (SQL Server PowerShell).

Voraussetzungen, Einschränkungen und EmpfehlungenPrerequisites, Restrictions, and Recommendations

  • Überprüfen Sie vor dem Erstellen einer Verfügbarkeitsgruppe, ob sich die Instanzen von SQL ServerSQL Server , die Verfügbarkeitsreplikate hosten, auf verschiedenen WSFC-Konten (Windows Server Failover Clustering) des gleichen WSFC-Failoverclusters befinden.Before creating an availability group, verify that the instances of SQL ServerSQL Server that host availability replicas reside on different Windows Server Failover Clustering (WSFC) node within the same WSFC failover cluster. Stellen Sie außerdem sicher, dass alle Serverinstanzen alle anderen Always On-VerfügbarkeitsgruppenAlways On availability groups -Voraussetzungen erfüllen.Also, verify that each of the server instance meets all other Always On-VerfügbarkeitsgruppenAlways On availability groups prerequisites. Für weitere Informationen empfehlen wir Ihnen dringend Voraussetzungen, Einschränkungen und Empfehlungen für Always On-Verfügbarkeitsgruppen (SQL Server)aktiviert sind, eine Always On-Verfügbarkeitsgruppe zu erstellen.For more information, we strongly recommend that you read Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server).

BerechtigungenPermissions

Erfordert die Mitgliedschaft in der festen Serverrolle sysadmin und die CREATE AVAILABILITY GROUP-Serverberechtigung, ALTER ANY AVAILABILITY GROUP-Berechtigung oder CONTROL SERVER-Berechtigung.Requires membership in the sysadmin fixed server role and either CREATE AVAILABILITY GROUP server permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.

Verwenden von Transact-SQL zum Erstellen und Konfigurieren einer VerfügbarkeitsgruppeUsing Transact-SQL to Create and Configure an Availability Group

Zusammenfassung von Tasks und entsprechenden Transact-SQL-AnweisungenSummary of Tasks and Corresponding Transact-SQL Statements

In der folgenden Tabelle sind die grundlegenden Tasks aufgeführt, die zum Erstellen und Konfigurieren einer Verfügbarkeitsgruppe erforderlich sind, und es ist angegeben, welche Transact-SQLTransact-SQL -Anweisungen für diese Tasks zu verwenden sind.The following table lists the basic tasks involved in creating and configuring an availability group and indicates which Transact-SQLTransact-SQL statements to use for these tasks. Die Always On-VerfügbarkeitsgruppenAlways On availability groups -Tasks müssen in der Reihenfolge ausgeführt werden, in der sie in der Tabelle dargestellt sind.The Always On-VerfügbarkeitsgruppenAlways On availability groups tasks must be performed in the sequence in which they are presented in the table.

AufgabeTask Transact-SQL-Anweisung(en)Transact-SQL Statement(s) Wo soll der Task ausgeführt werden? *Where to Perform Task *
Erstellen eines Datenbankspiegelungs-Endpunkts (einmal pro SQL ServerSQL Server -Instanz)Create database mirroring endpoint (once per SQL ServerSQL Server instance) CREATE ENDPOINT Endpunktname … FOR DATABASE_MIRRORINGCREATE ENDPOINT endpointName ... FOR DATABASE_MIRRORING Führen Sie diesen Task auf jeder Serverinstanz aus, auf der der Datenbankspiegelungs-Endpunkt fehlt.Execute on each server instance that lacks database mirroring endpoint.
Erstellen der VerfügbarkeitsgruppeCreate availability group CREATE AVAILABILITY GROUPCREATE AVAILABILITY GROUP Führen Sie diesen Task auf der Serverinstanz aus, auf der das anfängliche primäre Replikat gehostet werden soll.Execute on the server instance that is to host the initial primary replica.
Verknüpfen eines sekundären Replikats mit einer VerfügbarkeitsgruppeJoin secondary replica to availability group ALTER AVAILABILITY GROUP Gruppenname JOINALTER AVAILABILITY GROUP group_name JOIN Führen Sie diesen Task auf jeder Serverinstanz aus, auf der ein sekundäres Replikat gehostet wird.Execute on each server instance that hosts a secondary replica.
Vorbereiten der sekundären DatenbankPrepare the secondary database BACKUP und RESTORE.BACKUP and RESTORE. Erstellen Sie Sicherungen auf der Serverinstanz, auf der das primäre Replikat gehostet wird.Create backups on the server instance that hosts the primary replica.

Stellen Sie mit RESTORE WITH NORECOVERY Sicherungen auf jeder Serverinstanz wieder her, auf der ein sekundäres Replikat gehostet wird.Restore backups on each server instance that hosts a secondary replica, using RESTORE WITH NORECOVERY.
Starten der Datensynchronisierung durch Hinzufügen der einzelnen sekundären Datenbanken zur VerfügbarkeitsgruppeStart data synchronization by joining each secondary database to availability group ALTER DATABASE Datenbankname SET HADR AVAILABILITY GROUP = GruppennameALTER DATABASE database_name SET HADR AVAILABILITY GROUP = group_name Führen Sie diesen Task auf jeder Serverinstanz aus, auf der ein sekundäres Replikat gehostet wird.Execute on each server instance that hosts a secondary replica.

*Zur Ausführung eines bestimmten Tasks stellen Sie eine Verbindung mit der bzw. den angegebenen Serverinstanzen her.*To perform a given task, connect to the indicated server instance or instances.

Verwenden von Transact-SQLUsing Transact-SQL

Hinweis

Eine Vorgehensweise für eine Beispielkonfiguration mit Codebeispielen für jede dieser Transact-SQLTransact-SQL-Anweisungen finden Sie unter Beispiel: Konfigurieren einer Verfügbarkeitsgruppe, die die Windows-Authentifizierung verwendet.For a sample configuration procedure containing code examples of each these Transact-SQLTransact-SQL statements, see Example: Configuring an Availability Group that Uses Windows Authentication.

  1. Stellen Sie eine Verbindung mit der Serverinstanz her, auf der das primäre Replikat gehostet werden soll.Connect to the server instance that is to host the primary replica.

  2. Erstellen Sie die Verfügbarkeitsgruppe mithilfe der CREATE AVAILABILITY GROUPTransact-SQLTransact-SQL -Anweisung.Create the availability group by using the CREATE AVAILABILITY GROUPTransact-SQLTransact-SQL statement.

  3. Verknüpfen Sie das neue sekundäre Replikat mit der Verfügbarkeitsgruppe.Join the new secondary replica to the availability group. Weitere Informationen finden Sie unter Verknüpfen eines sekundären Replikats mit einer Verfügbarkeitsgruppe (SQL Server)mit einer Always On-Verfügbarkeitsgruppe verknüpft wird.For more information, see Join a Secondary Replica to an Availability Group (SQL Server).

  4. Erstellen Sie für jede Datenbank in der Verfügbarkeitsgruppe eine sekundäre Datenbank, indem Sie letzte Sicherungen der primären Datenbank mit RESTORE WITH NORECOVERY wiederherstellen.For each database in the availability group, create a secondary database by restoring recent backups of the primary database, using RESTORE WITH NORECOVERY. Weitere Informationen finden Sie unter Example: Setting Up an Availability Group Using Windows Authentication (Transact-SQL) (Beispiel: Einrichten einer Verfügbarkeitsgruppe mithilfe der Windows-Authentifizierung (Transact-SQL)) ab dem Schritt, in dem die Datenbanksicherung wiederhergestellt wird.For more information, see Example: Setting Up an Availability Group Using Windows Authentication (Transact-SQL), starting with the step that restores the database backup.

  5. Verknüpfen Sie alle neuen sekundären Datenbanken mit der Verfügbarkeitsgruppe.Join every new secondary database to the availability group. Weitere Informationen finden Sie unter Verknüpfen eines sekundären Replikats mit einer Verfügbarkeitsgruppe (SQL Server)mit einer Always On-Verfügbarkeitsgruppe verknüpft wird.For more information, see Join a Secondary Replica to an Availability Group (SQL Server).

Beispiel: Konfigurieren einer Verfügbarkeitsgruppe, die die Windows-Authentifizierung verwendetExample: Configuring an Availability Group that Uses Windows Authentication

In diesem Beispiel wird eine Beispiel- Always On-VerfügbarkeitsgruppenAlways On availability groups -Konfigurationsprozedur erstellt, die Transact-SQLTransact-SQL zum Einrichten von Datenbankspiegelungs-Endpunkten, die die Windows-Authentifizierung verwenden, sowie zum Erstellen und Konfigurieren einer Verfügbarkeitsgruppe und deren sekundärer Datenbanken verwendet.This example creates a sample Always On-VerfügbarkeitsgruppenAlways On availability groups configuration procedure that uses Transact-SQLTransact-SQL to set up database mirroring endpoints that use Windows Authentication and to create and configure an availability group and its secondary databases.

Dieses Beispiel enthält folgende Abschnitte:This example contains the following sections:

Erforderliche Komponenten für die Verwendung der BeispielkonfigurationsprozedurPrerequisites for Using the Sample Configuration Procedure

Diese Beispielprozedur weist die folgenden Anforderungen auf:This sample procedure has the following requirements:

  • Die Serverinstanzen müssen Always On-VerfügbarkeitsgruppenAlways On availability groupsunterstützen.The server instances must support Always On-VerfügbarkeitsgruppenAlways On availability groups. Weitere Informationen finden Sie unter Voraussetzungen, Einschränkungen und Empfehlungen für AlwaysOn-Verfügbarkeitsgruppen (SQL Server)zu unterstützen.For more information, see Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server).

  • Zwei Beispieldatenbanken, MyDb1 und MyDb2, müssen auf der Serverinstanz vorhanden sein, die das primäre Replikat hostet.Two sample databases, MyDb1 and MyDb2, must exist on the server instance that will host the primary replica. In den folgenden Codebeispielen werden diese beiden Datenbanken erstellt und konfiguriert, und es wird eine vollständige Sicherung jeder Datenbank erstellt.The following code examples create and configure these two databases and create a full backup of each. Führen Sie diese Codebeispiele auf der Serverinstanz aus, auf der Beispielverfügbarkeitsgruppe erstellt werden soll.Execute these code examples on the server instance on which you intend to create the sample availability group. Auf dieser Serverinstanz wird das ursprüngliche primäre Replikat der Beispielverfügbarkeitsgruppe gehostet.This server instance will host the initial primary replica of the sample availability group.

    1. Im folgenden Transact-SQLTransact-SQL -Beispiel werden diese Datenbanken erstellt und so geändert, dass das vollständige Wiederherstellungsmodell verwendet wird:The following Transact-SQLTransact-SQL example creates these databases and alters them to use the full recovery model:

      -- Create sample databases:  
      CREATE DATABASE MyDb1;  
      GO  
      ALTER DATABASE MyDb1 SET RECOVERY FULL;  
      GO  
      
      CREATE DATABASE MyDb2;  
      GO  
      ALTER DATABASE MyDb2 SET RECOVERY FULL;  
      GO  
      
    2. Im folgenden Codebeispiel wird eine vollständige Datenbanksicherung von MyDb1 und MyDb2erstellt.The following code example creates a full database backup of MyDb1 and MyDb2. In diesem Codebeispiel wird eine fiktive Sicherungsfreigabe verwendet: \\FILESERVER\SQLbackups.This code example uses a fictional backup share, \\FILESERVER\SQLbackups.

      -- Backup sample databases:  
      BACKUP DATABASE MyDb1   
      TO DISK = N'\\FILESERVER\SQLbackups\MyDb1.bak'   
          WITH FORMAT;  
      GO  
      
      BACKUP DATABASE MyDb2   
      TO DISK = N'\\FILESERVER\SQLbackups\MyDb2.bak'   
          WITH FORMAT;  
      GO  
      

[Anfang des Beispiels][TopOfExample]

BeispielkonfigurationsprozedurSample Configuration Procedure

In dieser Beispielkonfiguration wird das Verfügbarkeitsreplikat auf zwei eigenständigen Serverinstanzen erstellt, deren Dienstkonten unter unterschiedlichen – aber vertrauenswürdigen – Domänen (DOMAIN1 und DOMAIN2) ausgeführt werden.In this sample configuration, the availability replica will be created on two stand-alone server instances whose service accounts run under different, but trusted, domains (DOMAIN1 and DOMAIN2).

In der folgenden Tabelle finden Sie eine Zusammenfassung der in dieser Beispielkonfiguration verwendeten Werte.The following table summarizes the values used in this sample configuration.

Ursprüngliche RolleInitial role SystemSystem Hosten der SQL ServerSQL Server -InstanzHost SQL ServerSQL Server Instance
PrimärPrimary COMPUTER01 AgHostInstance
SecondarySecondary COMPUTER02 StandardinstanzDefault instance.
  1. Erstellen Sie einen Datenbankspiegelungs-Endpunkt namens dbm_endpoint auf der Serverinstanz, auf der Sie die Verfügbarkeitsgruppe erstellen möchten (dies ist eine Instanz namens AgHostInstance auf COMPUTER01).Create a database mirroring endpoint named dbm_endpoint on the server instance on which you plan to create the availability group (this is an instance named AgHostInstance on COMPUTER01). Dieser Endpunkt verwendet Port 7022.This endpoint uses port 7022. Beachten Sie, dass die Serverinstanz, auf der Sie die Verfügbarkeitsgruppe erstellen, das primäre Replikat hostet.Note that the server instance on which you create the availability group will host the primary replica.

    -- Create endpoint on server instance that hosts the primary replica:  
    CREATE ENDPOINT dbm_endpoint  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=ALL);  
    GO  
    
  2. Erstellen Sie einen Endpunkt dbm_endpoint auf der Serverinstanz, die das sekundäre Replikat hostet (dies ist die Standardserverinstanz auf COMPUTER02).Create an endpoint dbm_endpoint on the server instance that will host the secondary replica (this is the default server instance on COMPUTER02). Dieser Endpunkt verwendet Port 5022.This endpoint uses port 5022.

    -- Create endpoint on server instance that hosts the secondary replica:   
    CREATE ENDPOINT dbm_endpoint  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=5022)   
        FOR DATABASE_MIRRORING (ROLE=ALL);  
    GO  
    
  3. Hinweis

    Wenn die Dienstkonten der Serverinstanzen, auf denen die Verfügbarkeitsreplikate gehostet werden sollen, unter dem gleichen Domänenkonto ausgeführt wurden, ist dieser Schritt nicht erforderlich.If the service accounts of the server instances that are to host your availability replicas run under the same domain account this step is unnecessary. Überspringen Sie den Schritt, und fahren Sie gleich mit dem nächsten Schritt fort.Skip it and go directly to the next step.

    Wenn die Dienstkonten der Serverinstanzen unter unterschiedlichen Domänenbenutzern ausgeführt werden, erstellen Sie auf jeder Serverinstanz eine Anmeldung für die andere Serverinstanz, und gewähren Sie dieser Anmeldung Berechtigungen zum Zugreifen auf den lokalen Datenbankspiegelungs-Endpunkt.If the service accounts of the server instances run under different domain users, on each server instance, create a login for the other server instance and grant this login permission to access the local database mirroring endpoint.

    Im folgenden Codebeispiel sind die Transact-SQLTransact-SQL -Anweisungen zum Erstellen einer Anmeldung und zum Gewähren der Berechtigung für einen Endpunkt für die Anmeldung dargestellt.The following code example shows the Transact-SQLTransact-SQL statements for creating a login and granting it permission on an endpoint. Das Domänenkonto der Remoteserverinstanz wird hier als domain_name\user_namedargestellt.The domain account of the remote server instance is represented here as domain_name\user_name.

    -- If necessary, create a login for the service account, domain_name\user_name  
    -- of the server instance that will host the other replica:  
    USE master;  
    GO  
    CREATE LOGIN [domain_name\user_name] FROM WINDOWS;  
    GO  
    -- And Grant this login connect permissions on the endpoint:  
    GRANT CONNECT ON ENDPOINT::dbm_endpoint   
       TO [domain_name\user_name];  
    GO  
    
  4. Erstellen Sie auf der Serverinstanz, auf der sich die Benutzerdatenbanken befinden, die Verfügbarkeitsgruppe.On the server instance where the user databases reside, create the availability group.

    Im folgenden Codebeispiel wird eine Verfügbarkeitsgruppe mit dem Namen MyAG auf der Serverinstanz erstellt, auf der die Beispieldatenbanken MyDb1 und MyDb2erstellt wurden.The following code example creates an availability group named MyAG on the server instance on which the sample databases, MyDb1 and MyDb2, were created. Die lokale Serverinstanz AgHostInstanceauf COMPUTER01 wird zuerst angegeben.The local server instance, AgHostInstance, on COMPUTER01 is specified first. Diese Instanz hostet das ursprüngliche primäre Verfügbarkeitsreplikat.This instance will host the initial primary replica. Eine Remoteserverinstanz, die Standardserverinstanz auf COMPUTER02, wird angegeben, um ein sekundäres Replikat zu hosten.A remote server instance, the default server instance on COMPUTER02, is specified to host a secondary replica. Beide Verfügbarkeitsreplikate werden konfiguriert, um den Modus mit asynchronem Commit mit manuellem Failover zu verwenden (für Replikate mit asynchronem Commit bedeutet manuelles Failover erzwungenes Failover mit möglichem Datenverlust).Both availability replica are configured to use asynchronous-commit mode with manual failover (for asynchronous-commit replicas manual failover means forced failover with possible data loss).

    -- Create the availability group, MyAG:   
    CREATE AVAILABILITY GROUP MyAG   
       FOR   
          DATABASE MyDB1, MyDB2   
       REPLICA ON   
          'COMPUTER01\AgHostInstance' WITH   
             (  
             ENDPOINT_URL = 'TCP://COMPUTER01.Adventure-Works.com:7022',   
             AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,  
             FAILOVER_MODE = MANUAL  
             ),  
          'COMPUTER02' WITH   
             (  
             ENDPOINT_URL = 'TCP://COMPUTER02.Adventure-Works.com:5022',  
             AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,  
             FAILOVER_MODE = MANUAL  
             );   
    GO  
    

    Weitere Transact-SQLTransact-SQL-Codebeispiele zur Erstellung einer Verfügbarkeitsgruppe finden Sie unter CREATE AVAILABILITY GROUP (Transact-SQL).For additional Transact-SQLTransact-SQL code examples of creating an availability group, see CREATE AVAILABILITY GROUP (Transact-SQL).

  5. Verknüpfen Sie auf der Serverinstanz, die das sekundäre Replikat hostet, das sekundäre Replikat mit der Verfügbarkeitsgruppe.On the server instance that hosts the secondary replica, join the secondary replica to the availability group.

    Im folgenden Codebeispiel wird das sekundäre Replikat auf COMPUTER02 mit der MyAG -Verfügbarkeitsgruppe verknüpft.The following code example joins the secondary replica on COMPUTER02 to the MyAG availability group.

    -- On the server instance that hosts the secondary replica,   
    -- join the secondary replica to the availability group:  
    ALTER AVAILABILITY GROUP MyAG JOIN;  
    GO  
    
  6. Auf der Serverinstanz, die das sekundäre Replikat hostet, erstellen Sie die sekundären Datenbanken.On the server instance that hosts the secondary replica, create the secondary databases.

    Im folgenden Codebeispiel werden die sekundären Datenbanken MyDb1 und MyDb2 erstellt, indem Datenbanksicherungen mit RESTORE WITH NORECOVERY wiederhergestellt werden.The following code example creates the MyDb1 and MyDb2 secondary databases by restoring database backups using RESTORE WITH NORECOVERY.

    -- On the server instance that hosts the secondary replica,   
    -- Restore database backups using the WITH NORECOVERY option:  
    RESTORE DATABASE MyDb1   
        FROM DISK = N'\\FILESERVER\SQLbackups\MyDb1.bak'   
        WITH NORECOVERY;  
    GO  
    
    RESTORE DATABASE MyDb2   
        FROM DISK = N'\\FILESERVER\SQLbackups\MyDb2.bak'   
        WITH NORECOVERY;  
    GO 
    
  7. Sichern Sie auf der Serverinstanz, die das primäre Replikat hostet, das Transaktionsprotokoll zu jeder der primären Datenbanken.On the server instance that hosts the primary replica, back up the transaction log on each of the primary databases.

    Wichtig

    Wenn Sie eine echte Verfügbarkeitsgruppe konfigurieren, wird empfohlen, dass Sie vor Verwendung dieser Protokollsicherung Protokollsicherungstasks für die primären Datenbanken anhalten, bis Sie die entsprechenden sekundären Datenbanken mit der Verfügbarkeitsgruppe verknüpft haben.When you are configuring a real availability group, we recommend that, before taking this log backup, you suspend log backup tasks for your primary databases until you have joined the corresponding secondary databases to the availability group.

    Im folgenden Codebeispiel wird eine Transaktionsprotokollsicherung in MyDb1 und MyDb2 erstellt.The following code example creates a transaction log backup on MyDb1 and on MyDb2.

    -- On the server instance that hosts the primary replica,   
    -- Backup the transaction log on each primary database:  
    BACKUP LOG MyDb1   
    TO DISK = N'\\FILESERVER\SQLbackups\MyDb1.bak'   
        WITH NOFORMAT;  
    GO  
    
    BACKUP LOG MyDb2   
    TO DISK = N'\\FILESERVER\SQLbackups\MyDb2.bak'   
        WITHNOFORMAT;  
    GO
    

    Tipp

    In der Regel muss für jede primäre Datenbank eine Protokollsicherung erstellt und dann in der entsprechenden sekundären Datenbank (mithilfe von WITH NORECOVERY) wiederhergestellt werden.Typically, a log backup must be taken on each primary database and then restored on the corresponding secondary database (using WITH NORECOVERY). Diese Protokollsicherung ist jedoch möglicherweise nicht erforderlich, wenn die Datenbank erst kürzlich erstellt wurde und bisher keine Protokollsicherung vorgenommen wurde oder wenn das Wiederherstellungsmodell soeben von SIMPLE in FULL geändert wurde.However, this log backup might be unnecessary if the database has just been created and no log backup has been taken yet or the recovery model has just been changed from SIMPLE to FULL.

  8. Wenden Sie auf der Serverinstanz, die das sekundäre Replikat hostet, Protokollsicherungen für die sekundären Datenbanken an.On the server instance that hosts the secondary replica, apply log backups to the secondary databases.

    Im folgenden Codebeispiel werden Sicherungen auf die sekundären Datenbanken MyDb1 und MyDb2 angewendet, indem Datenbanksicherungen mit RESTORE WITH NORECOVERY wiederhergestellt werden.The following code example applies backups to MyDb1 and MyDb2 secondary databases by restoring database backups using RESTORE WITH NORECOVERY.

    Wichtig

    Wenn Sie eine echte sekundäre Datenbank vorbereiten, müssen Sie jede Protokollsicherung anwenden, die seit der Datenbanksicherung erstellt wurde, aus der Sie die sekundäre Datenbank erstellt haben. Sie müssen dabei immer mit der frühesten Sicherung beginnen und RESTORE WITH NORECOVERY verwenden.When you are preparing a real secondary database, you need to apply every log backup taken since the database backup from which you created the secondary database, starting with the earliest and always using RESTORE WITH NORECOVERY. Wenn Sie sowohl vollständige als auch differenzielle Datenbanksicherungen wiederherstellen, müssten Sie natürlich nur die nach der differenziellen Sicherung erstellten Protokollsicherungen anwenden.Of course, if you restore both full and differential database backups, you would only need to apply the log backups taken after the differential backup.

    -- Restore the transaction log on each secondary database,  
    -- using the WITH NORECOVERY option:  
    RESTORE LOG MyDb1   
        FROM DISK = N'\\FILESERVER\SQLbackups\MyDb1.bak'   
        WITH FILE=1, NORECOVERY;  
    GO  
    RESTORE LOG MyDb2   
        FROM DISK = N'\\FILESERVER\SQLbackups\MyDb2.bak'   
        WITH FILE=1, NORECOVERY;  
    GO  
    
  9. Verknüpfen Sie auf der Serverinstanz, die das sekundäre Replikat hostet, die neue sekundäre Datenbank mit der Verfügbarkeitsgruppe.On the server instance that hosts the secondary replica, join the new secondary databases to the availability group.

    Im folgenden Codebeispiel wird die sekundäre Datenbank MyDb1 und dann die sekundäre Datenbank MyDb2 mit der MyAG -Verfügbarkeitsgruppe verknüpft.The following code example, joins the MyDb1 secondary database and then the MyDb2 secondary databases to the MyAG availability group.

    -- On the server instance that hosts the secondary replica,   
    -- join each secondary database to the availability group:  
    ALTER DATABASE MyDb1 SET HADR AVAILABILITY GROUP = MyAG;  
    GO  
    
    ALTER DATABASE MyDb2 SET HADR AVAILABILITY GROUP = MyAG;  
    GO  
    

Vollständiges Codebeispiel für BeispielkonfigurationsprozedurComplete Code Example for Sample Configuration Procedure

Im folgenden Beispiel werden die Codebeispiele aus allen Schritten der Beispielkonfigurationsprozedur zusammengeführt.The following example merges the code examples from all the steps of the sample configuration procedure. In der folgenden Tabelle werden die in diesem Codebeispiel verwendeten Platzhalterwerte zusammengefasst.The following table summarized the placeholder values used in this code example. Weitere Informationen zu den Schritten in diesem Codebeispiel finden Sie unter Erforderliche Komponenten für die Verwendung der Beispielkonfigurationsprozedur und Beispielkonfigurationsprozedurweiter oben in diesem Thema.For more information about the steps in this code example, see Prerequisites for Using the Sample Configuration Procedure and Sample Configuration Procedure, earlier in this topic.

PlatzhalterPlaceholder BESCHREIBUNGDescription
\\FILESERVER\SQLbackups\\FILESERVER\SQLbackups Fiktive Sicherungsfreigabe.Fictional backup share.
\\FILESERVER\SQLbackups\MyDb1.bak\\FILESERVER\SQLbackups\MyDb1.bak Sicherungsdatei für MyDb1.Backup file for MyDb1.
\\FILESERVER\SQLbackups\MyDb2.bak\\FILESERVER\SQLbackups\MyDb2.bak Sicherungsdatei für MyDb2.Backup file for MyDb2.
70227022 Jedem Datenbankspiegelungs-Endpunkt zugewiesene Portnummer.Port number assigned to each database mirroring endpoint.
COMPUTER01\AgHostInstanceCOMPUTER01\AgHostInstance Serverinstanz, die das ursprüngliche primäre Replikat hostet.Server instance that hosts the initial primary replica.
COMPUTER02COMPUTER02 Serverinstanz, die das ursprüngliche sekundäre Replikat hostet.Server instance that hosts the initial secondary replica. Dies ist die Standardserverinstanz auf COMPUTER02.This is the default server instance on COMPUTER02.
dbm_endpointdbm_endpoint Für jeden Datenbankspiegelungs-Endpunkt angegebener Name.Name specified for each database mirroring endpoint.
MyAGMyAG Der Name der Beispielsverfügbarkeitsgruppe.Name of sample availability group.
MyDb1MyDb1 Der Name der ersten Beispieldatenbank.Name of first sample database.
MyDb2MyDb2 Der Name der zweiten Beispieldatenbank.Name of second sample database.
DOMAIN1\user1DOMAIN1\user1 Dienstkonto der Serverinstanz, auf der das ursprüngliche primäre Replikat gehostet werden soll.Service account of the server instance that is to host the initial primary replica.
DOMAIN2\user2DOMAIN2\user2 Dienstkonto der Serverinstanz, auf der das ursprüngliche primäre sekundäre Replikat gehostet werden soll.Service account of the server instance that is to host the initial secondary replica.
TCP://COMPUTER01.Adventure-Works.com:7022TCP://COMPUTER01.Adventure-Works.com:7022 Endpunkt-URL der AgHostInstance-Instanz von SQL ServerSQL Server auf COMPUTER01.Endpoint URL of the AgHostInstance instance of SQL ServerSQL Server on COMPUTER01.
TCP://COMPUTER02.Adventure-Works.com:5022TCP://COMPUTER02.Adventure-Works.com:5022 Endpunkt-URL der Standardinstanz von SQL ServerSQL Server auf COMPUTER02.Endpoint URL of the default instance of SQL ServerSQL Server on COMPUTER02.

Hinweis

Weitere Transact-SQLTransact-SQL-Codebeispiele zur Erstellung einer Verfügbarkeitsgruppe finden Sie unter CREATE AVAILABILITY GROUP (Transact-SQL).For additional Transact-SQLTransact-SQL code examples of creating an availability group, see CREATE AVAILABILITY GROUP (Transact-SQL).

-- on the server instance that will host the primary replica,   
-- create sample databases:  
CREATE DATABASE MyDb1;  
GO  
ALTER DATABASE MyDb1 SET RECOVERY FULL;  
GO  
  
CREATE DATABASE MyDb2;  
GO  
ALTER DATABASE MyDb2 SET RECOVERY FULL;  
GO  
  
-- Backup sample databases:  
BACKUP DATABASE MyDb1   
TO DISK = N'\\FILESERVER\SQLbackups\MyDb1.bak'   
    WITH FORMAT;  
GO  
  
BACKUP DATABASE MyDb2   
TO DISK = N'\\FILESERVER\SQLbackups\MyDb2.bak'   
    WITH FORMAT;  
GO  
  
-- Create the endpoint on the server instance that will host the primary replica:  
CREATE ENDPOINT dbm_endpoint  
    STATE=STARTED   
    AS TCP (LISTENER_PORT=7022)   
    FOR DATABASE_MIRRORING (ROLE=ALL);  
GO  
  
-- Create the endpoint on the server instance that will host the secondary replica:   
CREATE ENDPOINT dbm_endpoint  
    STATE=STARTED   
    AS TCP (LISTENER_PORT=7022)   
    FOR DATABASE_MIRRORING (ROLE=ALL);  
GO  
  
-- If both service accounts run under the same domain account, skip this step. Otherwise,   
-- On the server instance that will host the primary replica,   
-- create a login for the service account   
-- of the server instance that will host the secondary replica, DOMAIN2\user2,   
-- and grant this login connect permissions on the endpoint:  
USE master;  
GO  
CREATE LOGIN [DOMAIN2\user2] FROM WINDOWS;  
GO  
GRANT CONNECT ON ENDPOINT::dbm_endpoint   
   TO [DOMAIN2\user2];  
GO  
  
-- If both service accounts run under the same domain account, skip this step. Otherwise,   
-- On the server instance that will host the secondary replica,  
-- create a login for the service account   
-- of the server instance that will host the primary replica, DOMAIN1\user1,   
-- and grant this login connect permissions on the endpoint:  
USE master;  
GO  
  
CREATE LOGIN [DOMAIN1\user1] FROM WINDOWS;  
GO  
GRANT CONNECT ON ENDPOINT::dbm_endpoint   
   TO [DOMAIN1\user1];  
GO  
  
-- On the server instance that will host the primary replica,   
-- create the availability group, MyAG:  
CREATE AVAILABILITY GROUP MyAG   
   FOR   
      DATABASE MyDB1, MyDB2   
   REPLICA ON   
      'COMPUTER01\AgHostInstance' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER01.Adventure-Works.com:7022',  
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,  
         FAILOVER_MODE = AUTOMATIC  
         ),  
      'COMPUTER02' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER02.Adventure-Works.com:7022',  
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,  
         FAILOVER_MODE = AUTOMATIC  
         );   
GO  
  
-- On the server instance that hosts the secondary replica,   
-- join the secondary replica to the availability group:  
ALTER AVAILABILITY GROUP MyAG JOIN;  
GO  
  
-- Restore database backups onto this server instance, using RESTORE WITH NORECOVERY:  
RESTORE DATABASE MyDb1   
    FROM DISK = N'\\FILESERVER\SQLbackups\MyDb1.bak'   
    WITH NORECOVERY;  
GO  
  
RESTORE DATABASE MyDb2   
    FROM DISK = N'\\FILESERVER\SQLbackups\MyDb2.bak'   
    WITH NORECOVERY;  
GO  
  
-- Back up the transaction log on each primary database:  
BACKUP LOG MyDb1   
TO DISK = N'\\FILESERVER\SQLbackups\MyDb1.bak'   
    WITH NOFORMAT;  
GO  
  
BACKUP LOG MyDb2   
TO DISK = N'\\FILESERVER\SQLbackups\MyDb2.bak'   
    WITHNOFORMAT  
GO  
  
-- Restore the transaction log on each secondary database,  
-- using the WITH NORECOVERY option:  
RESTORE LOG MyDb1   
    FROM DISK = N'\\FILESERVER\SQLbackups\MyDb1.bak'   
    WITH FILE=1, NORECOVERY;  
GO  
RESTORE LOG MyDb2   
    FROM DISK = N'\\FILESERVER\SQLbackups\MyDb2.bak'   
    WITH FILE=1, NORECOVERY;  
GO  
  
-- On the server instance that hosts the secondary replica,   
-- join each secondary database to the availability group:  
ALTER DATABASE MyDb1 SET HADR AVAILABILITY GROUP = MyAG;  
GO  
  
ALTER DATABASE MyDb2 SET HADR AVAILABILITY GROUP = MyAG;  
GO  

So konfigurieren Sie Verfügbarkeitsgruppen- und ReplikateigenschaftenTo configure availability group and replica properties

So schließen Sie die Konfiguration von Verfügbarkeitsgruppen abTo complete availability group configuration

Alternative Möglichkeiten zum Erstellen einer VerfügbarkeitsgruppeAlternative ways to create an availability group

So aktivieren Sie Always On-VerfügbarkeitsgruppenTo enable Always On Availability Groups

So konfigurieren Sie einen Datenbankspiegelungs-EndpunktTo configure a database mirroring endpoint

Problembehandlung für die Always On-VerfügbarkeitsgruppenkonfigurationTo troubleshoot Always On Availability Groups configuration

Weitere InformationenSee Also

Der Datenbankspiegelungs-Endpunkt (SQL Server) The Database Mirroring Endpoint (SQL Server)
Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server) Overview of Always On Availability Groups (SQL Server)
Verfügbarkeitsgruppenlistener, Clientkonnektivität und Anwendungsfailover (SQL Server) Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server)
Voraussetzungen, Einschränkungen und Empfehlungen für Always On-Verfügbarkeitsgruppen (SQL Server)Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server)