Configura gruppo di disponibilità AlwaysOn per SQL Server in LinuxConfigure Always On availability group for SQL Server on Linux

In questo articolo viene descritto come creare sempre di un Server SQL nel gruppo di disponibilità per la disponibilità elevata in Linux.This article describes how to create a SQL Server Always on availability group for high availability on Linux. Esistono due tipi di configurazione per i gruppi di disponibilità.There are two configuration types for availability groups. Oggetto la disponibilità elevata configurazione utilizza una gestione di cluster per assicurare la continuità aziendale.A high availability configuration uses a cluster manager to provide business continuity. Questa configurazione è inoltre possibile includere letture repliche di scalabilità orizzontale.This configuration can also include read scale-out replicas. Questo documento illustra come creare la configurazione di un'elevata disponibilità gruppo di disponibilità.This document explains how to create the availability group high availability configuration.

È inoltre possibile creare un scalabilità lettura gruppo di disponibilità senza un gestore cluster.You can also create a read scale-out availability group without a cluster manager. Questa configurazione fornisce solo le repliche di sola lettura per la scalabilità di prestazioni.This configuration only provides read-only replicas for performance scale-out. Non fornisce la disponibilità elevata.It does not provide high availability. Per creare un gruppo di disponibilità di scalabilità orizzontale lettura, vedere Configura gruppo di disponibilità di scalabilità orizzontale di lettura per SQL Server in Linux.To create a read scale-out availability group, see Configure read scale-out availability group for SQL Server on Linux.

Le configurazioni che garantire l'elevata disponibilità e protezione dei dati richiedono due o tre sincrono commit repliche.Configurations that guarantee high availability and data protection require either two or three synchronous commit replicas. Con tre repliche sincrone il gruppo di disponibilità può automaticamente ripristino anche se un server non è disponibile.With three synchronous replicas the availability group can automatically recovery even if one server is not available. Per ulteriori informazioni, vedere elevata disponibilità e protezione dei dati per le configurazioni di gruppo di disponibilità.For more information, see High availability and data protection for availability group configurations.

Tutti i server devono essere fisico o virtuale e server virtuali devono eseguire la stessa piattaforma di virtualizzazione.All servers must be either physical or virtual, and virtual servers must be on the same virtualization platform. Questo requisito è che gli agenti fencing sono specifici della piattaforma.This requirement is because the fencing agents are platform specific. Vedere criteri per i cluster Guest.See Policies for Guest Clusters.

Guida di orientamentoRoadmap

I passaggi per creare un gruppo di disponibilità nel server Linux per la disponibilità elevata sono diversi da quelle in un cluster di failover di Windows Server.The steps to create an availability group on Linux servers for high availability are different from the steps on a Windows Server failover cluster. L'elenco seguente descrive i passaggi di alto livelli:The following list describes the high level steps:

  1. Configurare SQL Server in tre server di cluster.Configure SQL Server on three cluster servers.

    Importante

    Tutti e tre i server nel gruppo di disponibilità è necessario essere sulla stessa piattaforma - fisica o virtuale, perché la disponibilità elevata di Linux Usa fencing agenti per isolare le risorse nei server.All three servers in the availability group need to be on the same platform - physical or virtual - because Linux high availability uses fencing agents to isolate resources on servers. Gli agenti fencing sono specifici per ogni piattaforma.The fencing agents are specific for each platform.

  2. Creare il gruppo di disponibilità.Create the availability group. Questo passaggio è illustrato in questo articolo corrente.This step is covered in this current article.

  3. Configurare un gestore di risorse cluster, ad esempio Pacemaker.Configure a cluster resource manager, like Pacemaker.

    Il modo per configurare un gestore di risorse cluster dipende dalla distribuzione Linux specifica.The way to configure a cluster resource manager depends on the specific Linux distribution. Vedere i collegamenti seguenti per istruzioni specifiche di distribuzione:See the following links for distribution specific instructions:

    Importante

    Gli ambienti di produzione richiedono un agente di geofencing, ad esempio STONITH per la disponibilità elevata.Production environments require a fencing agent, like STONITH for high availability. Dimostrazione di questa documentazione non utilizzano agenti fencing.The demonstrations in this documentation do not use fencing agents. Dimostrazioni sono per i test e convalida solo.The demonstrations are for testing and validation only.

    Un cluster Linux Usa fencing per restituire il cluster a uno stato noto.A Linux cluster uses fencing to return the cluster to a known state. Il modo per configurare fencing varia a seconda della distribuzione e l'ambiente.The way to configure fencing depends on the distribution and the environment. Fencing non è attualmente disponibile in alcuni ambienti cloud.Currently, fencing is not available in some cloud environments. Per ulteriori informazioni, vedere criteri di supporto per RHEL cluster disponibilità elevata - piattaforme di virtualizzazione.For more information, see Support Policies for RHEL High Availability Clusters - Virtualization Platforms.

    Per SLES, vedere estensione disponibilità elevata di SUSE Linux Enterprise.For SLES, see SUSE Linux Enterprise High Availability Extension.

  4. Aggiungere il gruppo di disponibilità come una risorsa del cluster.Add the availability group as a resource in the cluster.

    La modalità per aggiungere il gruppo di disponibilità come una risorsa del cluster dipende dalla distribuzione di Linux.The way to add the availability group as a resource in the cluster depends on the Linux distribution. Vedere i collegamenti seguenti per istruzioni specifiche di distribuzione:See the following links for distribution specific instructions:

PrerequisitiPrerequisites

Prima di creare il gruppo di disponibilità, è necessario:Before you create the availability group, you need to:

  • Impostare l'ambiente in modo che possano comunicare tutti i server che ospiteranno le repliche di disponibilitàSet your environment so all servers that will host availability replicas can communicate
  • Installare SQL ServerInstall SQL Server
Nota

In Linux, è necessario creare un gruppo di disponibilità prima di aggiungerlo come risorsa cluster da gestire con il cluster.On Linux, you must create an availability group before adding it as a cluster resource to be managed by the cluster. Questo documento viene fornito un esempio che crea il gruppo di disponibilità.This document provides an example that creates the availability group. Per la distribuzione istruzioni specifiche per creare il cluster e aggiungere il gruppo di disponibilità come risorsa cluster, vedere i collegamenti in passaggi successivi.For distribution specific instructions to create the cluster and add the availability group as a cluster resource, see the links under Next steps.

  1. Aggiornare il nome del computer per ogni hostUpdate the computer name for each host

    Ogni nome di SQL Server deve essere:Each SQL Server name must be:

    • 15 caratteri o meno15 characters or less
    • Univoco all'interno della reteUnique within the network

    Per impostare il nome del computer, modificare /etc/hostname.To set the computer name, edit /etc/hostname. Lo script seguente consente di modificare /etc/hostname con vi.The following script lets you edit /etc/hostname with vi.

    sudo vi /etc/hostname
    
  2. Configurare il file hostsConfigure the hosts file

Nota

Se i nomi host sono registrati con i relativi IP nel server DNS, non è necessario eseguire la procedura seguente.If hostnames are registered with their IP in the DNS server, there is no need to do the steps below. Verificare che tutti i nodi che sono faranno parte della configurazione del gruppo di disponibilità possono comunicare tra loro (esecuzione del ping il nome host deve rispondere con l'indirizzo IP corrispondente).Validate that all nodes that are going to be part of the availability group configuration can communicate with each other (pinging the hostname should reply with the corresponding IP address). Inoltre, assicurarsi che il file /etc/hosts non contiene un record che esegue il mapping di indirizzi IP di localhost 127.0.0.1 con il nome host del nodo.Also, make sure that /etc/hosts file does not contain a record that maps localhost IP address 127.0.0.1 with the hostname of the node.

Il file hosts in ogni server contiene gli indirizzi IP e nomi di tutti i server che farà parte del gruppo di disponibilità.The hosts file on every server contains the IP addresses and names of all servers that will participate in the availability group.

Il comando seguente restituisce l'indirizzo IP del server corrente:The following command returns the IP address of the current server:

sudo ip addr show

Aggiornamento /etc/hosts.Update /etc/hosts. Lo script seguente consente di modificare /etc/hosts con vi.The following script lets you edit /etc/hosts with vi.

sudo vi /etc/hosts

L'esempio seguente illustra /etc/hosts su node1 con aggiunte per node1, node2 e node3.The following example shows /etc/hosts on node1 with additions for node1, node2, and node3. In questo documento node1 si riferisce al server che ospita la replica primaria.In this document node1 refers to the server hosting the primary replica. node2 e node3 si riferiscono ai server che ospitano le repliche secondarie.node2, and node3 refer to servers hosting secondary replicas.

127.0.0.1   localhost localhost4 localhost4.localdomain4
::1       localhost localhost6 localhost6.localdomain6
10.128.18.12 node1
10.128.16.77 node2
10.128.15.33 node3

Installare SQL ServerInstall SQL Server

Installare SQL Server.Install SQL Server. I collegamenti seguenti puntano alle istruzioni di installazione di SQL Server per distribuzioni diverse.The following links point to SQL Server installation instructions for various distributions.

Abilitare gruppi di disponibilità Always On e riavviare SQL ServerEnable Always On availability groups and restart sqlserver

Abilitare i gruppi di disponibilità Always On su ogni nodo che ospita un'istanza di SQL Server e riavviare mssql-server.Enable Always On availability groups on each node hosting a SQL Server instance, then restart mssql-server. Eseguire lo script riportato di seguito:Run the following script:

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1
sudo systemctl restart mssql-server

Abilitare la sessione di eventi AlwaysOn_healthEnable AlwaysOn_health event session

Facoltativamente, è possibile abilitare gli eventi estesi dei gruppi di disponibilità Always On per diagnosticare più facilmente la causa radice durante la risoluzione dei problemi che interessano un gruppo di disponibilità.You can optionally enable Always On availability groups extended events to help with root-cause diagnosis when you troubleshoot an availability group. Eseguire il comando seguente in ogni istanza di SQL Server.Run the following command on each each instance of SQL Server.

ALTER EVENT SESSION  AlwaysOn_health ON SERVER WITH (STARTUP_STATE=ON);
GO

Per ulteriori informazioni sulla sessione XE, vedere sempre in eventi estesi.For more information about this XE session, see Always On Extended Events.

Creare l'utente dell'endpoint di mirroring del databaseCreate db mirroring endpoint user

Lo script di Transact-SQL seguente crea un account di accesso denominato dbm_logine un utente denominato dbm_user.The following Transact-SQL script creates a login named dbm_login, and a user named dbm_user. Aggiornare lo script con una password complessa.Update the script with a strong password. Eseguire il comando seguente in tutte le istanze di SQL per creare l'utente dell'endpoint di mirroring del database.Run the following command on all SQL Server instances to create the database mirroring endpoint user.

CREATE LOGIN dbm_login WITH PASSWORD = '**<1Sample_Strong_Password!@#>**';
CREATE USER dbm_user FOR LOGIN dbm_login;

Creare un certificatoCreate a certificate

Il servizio SQL Server in Linux usa i certificati per autenticare la comunicazione tra gli endpoint del mirroring.The SQL Server service on Linux uses certificates to authenticate communication between the mirroring endpoints.

Lo script Transact-SQL seguente crea una chiave master e certificato.The following Transact-SQL script creates a master key and certificate. Quindi eseguito il backup del certificato e consente di proteggere il file con una chiave privata.It then backs the certificate up and secures the file with a private key. Aggiornare lo script con una password complessa.Update the script with strong passwords. Connettersi all'istanza di Server SQL primaria ed eseguire lo Transact-SQL seguente per creare il certificato:Connect to the primary SQL Server instance and run the following Transact-SQL to create the certificate:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '**<Master_Key_Password>**';
CREATE CERTIFICATE dbm_certificate WITH SUBJECT = 'dbm';
BACKUP CERTIFICATE dbm_certificate
   TO FILE = '/var/opt/mssql/data/dbm_certificate.cer'
   WITH PRIVATE KEY (
           FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
           ENCRYPTION BY PASSWORD = '**<Private_Key_Password>**'
       );

A questo punto la replica di SQL Server primaria dispone di un certificato in /var/opt/mssql/data/dbm_certificate.cer un at chiave privata e var/opt/mssql/data/dbm_certificate.pvk.At this point your primary SQL Server replica has a certificate at /var/opt/mssql/data/dbm_certificate.cer and a private key at var/opt/mssql/data/dbm_certificate.pvk. Copiare questi due file nello stesso percorso in tutti i server che ospiterà le repliche di disponibilità.Copy these two files to the same location on all servers that will host availability replicas. Usare l'utente mssql o concedere l'autorizzazione all'utente mssql per accedere a tali file.Use the mssql user or give permission to mssql user to access these files.

Nel server di origine, ad esempio il comando seguente copia i file nel computer di destinazione.For example on the source server, the following command copies the files to the target machine. Sostituire il valori con i nomi delle istanze di SQL Server che ospiteranno le repliche.Replace the values with the names of the SQL Server instances that will host the replicas.

cd /var/opt/mssql/data
scp dbm_certificate.* root@**<node2>**:/var/opt/mssql/data/

Nel server di destinazione assegnare l'autorizzazione per accedere al certificato all'utente mssql.On each target server, give permission to mssql user to access the certificate.

cd /var/opt/mssql/data
chown mssql:mssql dbm_certificate.*

Creare il certificato nel server secondarioCreate the certificate on secondary servers

Lo script Transact-SQL seguente crea una chiave master e certificato da backup creati nella replica primaria di SQL Server.The following Transact-SQL script creates a master key and certificate from the backup that you created on the primary SQL Server replica. Inoltre, il comando autorizza l'utente per accedere al certificato.The command also authorizes the user to access the certificate. Aggiornare lo script con una password complessa.Update the script with strong passwords. La password di decrittografia è la stessa password utilizzata per creare il file PVK in un passaggio precedente.The decryption password is the same password that you used to create the .pvk file in a previous step. Eseguire lo script seguente in tutti i server secondari per creare il certificato.Run the following script on all secondary servers to create the certificate.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '**<Master_Key_Password>**';
CREATE CERTIFICATE dbm_certificate   
    AUTHORIZATION dbm_user
    FROM FILE = '/var/opt/mssql/data/dbm_certificate.cer'
    WITH PRIVATE KEY (
    FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
    DECRYPTION BY PASSWORD = '**<Private_Key_Password>**'
            );

Creare endpoint in tutte le repliche di mirroring del databaseCreate the database mirroring endpoints on all replicas

Gli endpoint del mirroring del database utilizzano il protocollo TCP (Transmission Control Protocol) per inviare e ricevere messaggi tra istanze del server che fanno parte di sessioni di mirroring del database o ospitano repliche di disponibilità.Database mirroring endpoints use Transmission Control Protocol (TCP) to send and receive messages between the server instances participating database mirroring sessions or hosting availability replicas. L'endpoint del mirroring del database è in attesa su un numero di porta TCP univoco.The database mirroring endpoint listens on a unique TCP port number.

L'istruzione Transact-SQL seguente crea un endpoint di ascolto denominato Hadr_endpoint per il gruppo di disponibilità.The following Transact-SQL creates a listening endpoint named Hadr_endpoint for the availability group. Avviare l'endpoint e dell'autorizzazione di connessione consente all'utente che ha creato.It starts the endpoint, and gives connect permission to the user that you created. Prima di eseguire lo script, sostituire i valori compresi tra **< ... >**.Before you run the script, replace the values between **< ... >**.

Nota

Per questa versione, non utilizzare un indirizzo IP diverso per l'indirizzo IP del listener.For this release, do not use a different IP address for the listener IP. Stiamo lavorando su una correzione per questo problema, ma l'unico valore accettabile per il momento è '0.0.0.0'.We are working on a fix for this issue, but the only acceptable value for now is '0.0.0.0'.

Aggiornare il codice Transact-SQL per l'ambiente in tutte le istanze di SQL Server:Update the following Transact-SQL for your environment on all SQL Server instances:

CREATE ENDPOINT [Hadr_endpoint]
    AS TCP (LISTENER_IP = (0.0.0.0), LISTENER_PORT = **<5022>**)
    FOR DATA_MIRRORING (
        ROLE = ALL,
        AUTHENTICATION = CERTIFICATE dbm_certificate,
        ENCRYPTION = REQUIRED ALGORITHM AES
        );
ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED;
GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [dbm_login];
Importante

La porta TCP sul firewall deve essere aperta per la porta del listener.The TCP port on the firewall needs to be open for the listener port.

Importante

In SQL Server 2017 l'unico metodo di autenticazione supportato per l'endpoint di mirroring del database è CERTIFICATE.For SQL Server 2017 release, the only authentication method supported for database mirroring endpoint is CERTIFICATE. L'opzione WINDOWS sarà abilitata in una versione futura.WINDOWS option will be enabled in a future release.

Per ulteriori informazioni, vedere l'Endpoint del Mirroring Database (SQL Server).For complete information, see The Database Mirroring Endpoint (SQL Server).

Creare il gruppo di disponibilitàCreate the availability group

Esistono due configurazioni di gruppo di disponibilità supportate per SQL Server in Linux.There are two supported availability group configurations for SQL Server on Linux.

Per informazioni, vedere elevata disponibilità e protezione dei dati per le configurazioni di gruppo di disponibilità.For information, see High availability and data protection for availability group configurations.

Creare il gruppo di disponibilità per la disponibilità elevata in Linux.Create the availability group for high availability on Linux. Utilizzare il Crea gruppo di disponibilità con CLUSTER_TYPE = EXTERNAL.Use the CREATE AVAILABILITY GROUP with CLUSTER_TYPE = EXTERNAL.

  • Gruppo di disponibilità - CLUSTER_TYPE = EXTERNAL specifica che un'entità esterna cluster gestisce il gruppo di disponibilità.Availability group - CLUSTER_TYPE = EXTERNAL Specifies that an external cluster entity manages the availability group. Pacemaker è riportato un esempio di un'entità esterna.Pacemaker is an example of an external cluster entity. Quando il tipo di cluster di gruppo di disponibilità è esterno,When the availability group cluster type is external,

  • Set di repliche primarie e secondarie FAILOVER_MODE = EXTERNAL.Set Primary and secondary replicas FAILOVER_MODE = EXTERNAL. Specifica che la replica interagisce con una gestione di cluster esterno, ad esempio Pacemaker.Specifies that the replica interacts with an external cluster manager, like Pacemaker.

Gli script Transact-SQL seguenti crea un gruppo di disponibilità per la disponibilità elevata denominato ag1.The following Transact-SQL scripts creates an availability group for high availability named ag1. Lo script consente di configurare le repliche del gruppo di disponibilità con SEEDING_MODE = AUTOMATIC.The script configures the availability group replicas with SEEDING_MODE = AUTOMATIC. Questa impostazione, SQL Server creare automaticamente il database in ciascun server secondario.This setting causes SQL Server to automatically create the database on each secondary server. Aggiornare lo script seguente per l'ambiente.Update the following script for your environment. Sostituire il **<node1>**, e **<node2>** valori con i nomi delle istanze di SQL Server che ospitano le repliche.Replace the **<node1>**, and **<node2>** values with the names of the SQL Server instances that host the replicas. Sostituire il **<5022>** con la porta è impostata per i dati dell'endpoint del mirroring.Replace the **<5022>** with the port you set for the data mirroring endpoint. Per creare il gruppo di disponibilità, eseguire l'istruzione Transact-SQL seguente sull'istanza di SQL Server che ospita la replica primaria.To create the availability group, run the following Transact-SQL on the SQL Server instance that hosts the primary replica.

Eseguire sola degli script di seguito:Run only one of the following scripts:

  • Creare il gruppo di disponibilità con tre repliche sincrone.Create availability group with three synchronous replicas.

    CREATE AVAILABILITY GROUP [ag1]
        WITH (DB_FAILOVER = ON, CLUSTER_TYPE = EXTERNAL)
        FOR REPLICA ON
            N'**<node1>**' 
             WITH (
                ENDPOINT_URL = N'tcp://**<node1>:**<5022>**',
                AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
                FAILOVER_MODE = EXTERNAL,
                SEEDING_MODE = AUTOMATIC
                ),
            N'**<node2>**' 
             WITH ( 
                ENDPOINT_URL = N'tcp://**<node2>**:**<5022>**', 
                AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
                FAILOVER_MODE = EXTERNAL,
                SEEDING_MODE = AUTOMATIC
                ),
            N'**<node3>**'
            WITH( 
               ENDPOINT_URL = N'tcp://**<node3>**:**<5022>**', 
               AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
               FAILOVER_MODE = EXTERNAL,
               SEEDING_MODE = AUTOMATIC
               );
    
    ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
    
    Importante

    Dopo aver eseguito lo script precedente per creare un gruppo di disponibilità con tre repliche sincrone, non eseguire lo script seguente:After you run the preceding script to create an availability group with three synchronous replicas, do not run the following script:

  • Creare un gruppo di disponibilità con due repliche sincroneCreate availability group with two synchronous replicas

    Includere le due repliche con modalità di disponibilità sincrono.Include two replicas with synchronous availability mode. Ad esempio, lo script seguente crea un gruppo di disponibilità denominato ag1.For example, the following script creates an availability group called ag1. node1e node2 le repliche in modalità sincrona, con seeding automatico e il failover automatico.node1 and node2 host replicas in synchronous mode, with automatic seeding and automatic failover.

    Importante

    Eseguire solo lo script seguente per creare un gruppo di disponibilità con due repliche sincrone.Only run the following script to create an availability group with two synchronous replicas. Impossibile eseguire lo script seguente se è stato eseguito lo script precedente.Do not run the following script if you ran the preceding script.

    CREATE AVAILABILITY GROUP [ag1]
       WITH (CLUSTER_TYPE = EXTERNAL)
       FOR REPLICA ON
       N'node1' WITH (
          ENDPOINT_URL = N'tcp://node1:5022',
          AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
          FAILOVER_MODE = EXTERNAL,
          SEEDING_MODE = AUTOMATIC
       ),
       N'node2' WITH ( 
          ENDPOINT_URL = N'tcp://node2:5022', 
          AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
          FAILOVER_MODE = EXTERNAL,
          SEEDING_MODE = AUTOMATIC
       );
    
    ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
    

È inoltre possibile configurare un gruppo di disponibilità con CLUSTER_TYPE=EXTERNAL con SQL Server Management Studio o PowerShell.You can also configure an availability group with CLUSTER_TYPE=EXTERNAL using SQL Server Management Studio or PowerShell.

Creare un join delle repliche secondarie al gruppo di disponibilitàJoin secondary replicas to the availability group

Lo script Transact-SQL seguente crea un join tra un'istanza di SQL Server a un gruppo di disponibilità denominato ag1.The following Transact-SQL script joins a SQL Server instance to an availability group named ag1. Aggiornare lo script per l'ambiente.Update the script for your environment. In ogni istanza di SQL Server che ospita una replica secondaria, eseguire Transact-SQL seguente per aggiungere il gruppo di disponibilità.On each SQL Server instance that hosts a secondary replica, run the following Transact-SQL to join the availability group.

ALTER AVAILABILITY GROUP [ag1] JOIN WITH (CLUSTER_TYPE = EXTERNAL);

ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;

Aggiungere un database al gruppo di disponibilitàAdd a database to the availability group

Verificare che il database che si aggiunge al gruppo di disponibilità è in modalità di recupero con registrazione completa e dispone di un backup del log valido.Ensure the database you are adding to the Availability group is in full recovery mode and has a valid log backup. Se si tratta di un database di prova o creato un nuovo database, eseguire un backup del database.If this is a test database or a new database created, take a database backup. Nel Server SQL primario, eseguire Transact-SQL seguente per creare ed eseguire il backup di un database denominato db1.On the primary SQL Server, run the following Transact-SQL to create and back up a database called db1.

CREATE DATABASE [db1];
ALTER DATABASE [db1] SET RECOVERY FULL;
BACKUP DATABASE [db1] 
   TO DISK = N'/var/opt/mssql/data/db1.bak';

Nella replica primaria di SQL Server, eseguire Transact-SQL seguente per aggiungere un database denominato db1 a un gruppo di disponibilità denominato ag1.On the primary SQL Server replica, run the following Transact-SQL to add a database called db1 to an availability group called ag1.

ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1];

Verificare che il database viene creato nei server secondariVerify that the database is created on the secondary servers

In ogni replica secondaria di SQL Server, eseguire la query seguente per verificare se il db1 database è stato creato ed è sincronizzato.On each secondary SQL Server replica, run the following query to see if the db1 database has been created and is synchronized.

SELECT * FROM sys.databases WHERE name = 'db1';
GO
SELECT DB_NAME(database_id) AS 'database', synchronization_state_desc FROM sys.dm_hadr_database_replica_states;
Importante

Dopo aver creato il gruppo di disponibilità, è necessario configurare l'integrazione con una tecnologia di cluster come Pacemaker per la disponibilità elevata.After you create the availability group, you must configure integration with a cluster technology like Pacemaker for high availability. Per una configurazione di scalabilità orizzontale lettura utilizzando i gruppi di disponibilità, a partire da SQL Server 2017SQL Server 2017, configurazione di un cluster non è necessaria.For a read scale-out configuration using availability groups, starting with SQL Server 2017SQL Server 2017, setting up a cluster is not required.

Se è stata seguita la procedura in questo documento, è necessario un gruppo di disponibilità che non è ancora in cluster.If you followed the steps in this document, you have an availability group that is not yet clustered. Il passaggio successivo consiste nell'aggiungere il cluster.The next step is to add the cluster. Questa configurazione è valida per scenari di bilanciamento del carico scale-out/load letti, non è completa per la disponibilità elevata.This configuration is valid for read scale-out/load balancing scenarios, it is not complete for high availability. Per la disponibilità elevata, è necessario aggiungere il gruppo di disponibilità come risorsa cluster.For high availability, you need to add the availability group as a cluster resource. Vedere passaggi successivi per le istruzioni.See Next steps for instructions.

NoteNotes

Importante

Dopo la configurazione del cluster e aggiungere il gruppo di disponibilità come risorsa cluster, è possibile usare Transact-SQL per il failover delle risorse del gruppo di disponibilità.After you configure the cluster and add the availability group as a cluster resource, you cannot use Transact-SQL to fail over the availability group resources. Risorse del cluster di SQL Server in Linux non sono collegate come strettamente con il sistema operativo come se fossero in un Windows Server Failover Cluster (WSFC).SQL Server cluster resources on Linux are not coupled as tightly with the operating system as they are on a Windows Server Failover Cluster (WSFC). Servizio SQL Server non riconosce la presenza del cluster.SQL Server service is not aware of the presence of the cluster. Tutte le orchestrazioni viene eseguita tramite gli strumenti di gestione di cluster.All orchestration is done through the cluster management tools. RHEL o Ubuntu utilizzare pcs.In RHEL or Ubuntu use pcs. In SLES utilizzare crm.In SLES use crm.

Importante

Se il gruppo di disponibilità è una risorsa cluster, si verifica un problema noto nella versione corrente, in cui il failover forzato con perdita di dati a una replica asincrona non funziona.If the availability group is a cluster resource, there is a known issue in current release where forced failover with data loss to an asynchronous replica does not work. Questo problema verrà risolto nella prossima versione.This will be fixed in the upcoming release. Failover manuale o automatico in una replica sincrona ha esito positivo.Manual or automatic failover to a synchronous replica succeeds.

Passaggi successiviNext steps

Configurare i Cluster di Red Hat Enterprise Linux per le risorse Cluster il gruppo di disponibilità di SQL ServerConfigure Red Hat Enterprise Linux Cluster for SQL Server Availability Group Cluster Resources

Configurare i Cluster di SUSE Linux Enterprise Server per le risorse Cluster il gruppo di disponibilità di SQL ServerConfigure SUSE Linux Enterprise Server Cluster for SQL Server Availability Group Cluster Resources

Configurare il Cluster Ubuntu per le risorse Cluster il gruppo di disponibilità di SQL ServerConfigure Ubuntu Cluster for SQL Server Availability Group Cluster Resources