Esempio: configurare il mirroring del database usando l'autenticazione di Windows (Transact-SQL)

Si applica a:SQL Server

In questo esempio vengono illustrate tutte le fasi necessarie per creare una sessione di mirroring del database con un witness mediante l'autenticazione di Windows. Gli esempi in questo argomento usano Transact-SQL. Si noti che, in alternativa all'uso di passaggi Transact-SQL, è possibile utilizzare la Configurazione guidata della sicurezza del mirroring del database per configurare il mirroring del database. Per altre informazioni, vedere Stabilire una sessione di mirroring del database tramite autenticazione di Windows (SQL Server Management Studio).

Prerequisito

Nell'esempio viene utilizzato il database di esempio AdventureWorks, che usa per impostazione predefinita il modello di recupero semplice. Per utilizzare il mirroring del database per questo database, è necessario modificarlo affinché utilizzi il modello di recupero completo. A tale scopo in Transact-SQL, usare l'istruzione ALTER DATABASE , come indicato di seguito:

USE master;  
GO  
ALTER DATABASE AdventureWorks   
SET RECOVERY FULL;  
GO  

Per informazioni sulla modifica del modello di recupero in SQL Server Management Studio, vedere Visualizzazione o modifica del modello di recupero di un database (SQL Server).

Autorizzazioni

Sono necessarie l'autorizzazione ALTER nel database e l'autorizzazione CREATE ENDPOINT, oppure l'appartenenza al ruolo predefinito del server sysadmin.

Esempio

In questo esempio, i due partner e il testimone sono le istanze server predefinite su tre sistemi informatici. Le tre istanze del server appartengono allo stesso dominio Windows, ma nell'istanza server witness dell'esempio l'account utente (usato come account di avvio del servizio) è diverso.

Nella tabella seguente sono riepilogati i valori utilizzati nell'esempio.

Ruolo di mirroring iniziale Sistema host Account utente di dominio
Principale PARTNERHOST1 <Mydomain>\<dbousername>
Specchia PARTNERHOST5 <Mydomain>\<dbousername>
Testimone WITNESSHOST4 <Somedomain>\<witnessuser>
  1. Creare un endpoint nell'istanza del server principale, ovvero l'istanza predefinita in PARTNERHOST1.

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=PARTNER)  
    GO  
    --Partners under same domain user; login already exists in master.  
    --Create a login for the witness server instance,  
    --which is running as Somedomain\witnessuser:  
    USE master ;  
    GO  
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;  
    GO  
    -- Grant connect permissions on endpoint to login account of witness.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  2. Creare un endpoint nell'istanza del server mirror, ovvero l'istanza predefinita in PARTNERHOST5.

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=ALL)  
    GO  
    --Partners under same domain user; login already exists in master.  
    --Create a login for the witness server instance,  
    --which is running as Somedomain\witnessuser:  
    USE master ;  
    GO  
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account of witness.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  3. Creare un endpoint sull'istanza del server testimone, ovvero sull'istanza predefinita in WITNESSHOST4.

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=WITNESS)  
    GO  
    --Create a login for the partner server instances,  
    --which are both running as Mydomain\dbousername:  
    USE master ;  
    GO  
    CREATE LOGIN [Mydomain\dbousername] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  4. Creare il database mirror. Per altre informazioni, vedere Preparazione di un database mirror per il mirroring (SQL Server).

  5. Nell'istanza del server di mirroring in PARTNERHOST5, configurare l'istanza del server in PARTNERHOST1 come partner, in modo che diventi l'istanza iniziale del server principale.

    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1.COM:7022'  
    GO  
    
  6. Nell'istanza del server principale su PARTNERHOST1 impostare l'istanza del server su PARTNERHOST5 come partner, in modo che diventi l'istanza iniziale del server mirror.

    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'  
    GO  
    
  7. Sul server principale, impostare il server di controllo, che si trova su WITNESSHOST4.

    ALTER DATABASE AdventureWorks   
        SET WITNESS =   
        'TCP://WITNESSHOST4.COM:7022'  
    GO  
    

Attività correlate

Vedi anche

ALTER DATABASE (Transact-SQL)
L'endpoint del mirroring del database (SQL Server)
Sicurezza del trasporto per il mirroring del database e i gruppi di disponibilità Always On (SQL Server)
Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server)
Centro sicurezza per il motore di Database di SQL Server e il Database SQL di Azure