Condividi tramite


Esempio: Impostazione del mirroring del database tramite l'autenticazione di Windows (Transact-SQL)

In questo esempio vengono illustrate tutte le fasi necessarie per creare una sessione di mirroring del database con un server di controllo del mirroring con l'autenticazione di Windows. Negli esempi di questo argomento viene utilizzato Transact-SQL. Si osservi che per impostare il mirroring del database è possibile utilizzare, in alternativa alle procedure di Transact-SQL, la Configurazione guidata sicurezza mirroring del database. Per ulteriori informazioni, vedere Stabilire una sessione di mirroring del database tramite autenticazione di Windows (SQL Server Management Studio).

Prerequisiti

Nell'esempio viene utilizzato il database di esempio AdventureWorks, in cui, per impostazione predefinita, viene utilizzato il modello di recupero con registrazione minima. Per utilizzare il mirroring del database con questo database, è necessario modificarlo in modo che venga utilizzato il modello di recupero con registrazione completa. Per eseguire questa operazione in Transact-SQL, utilizzare l'istruzione ALTER DATABASE, come segue:

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

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

Autorizzazioni

È richiesta l'autorizzazione ALTER per il database e l'autorizzazione CREATE ENDPOINT o l'appartenenza al ruolo predefinito del server sysadmin.

Esempio

In questo esempio i due partner e il server di controllo del mirroring sono le istanze predefinite del server in tre sistemi. Le tre istanze del server sono eseguite nello stesso dominio Windows, ma per l'istanza del server di controllo del mirroring l'account utente (utilizzato come account del servizio di avvio) è diverso.

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

Ruolo di mirroring iniziale

Sistema host

Account utente di dominio

Server principale

PARTNERHOST1

<Mydomain>\<dbousername>

Server mirror

PARTNERHOST5

<Mydomain>\<dbousername>

Server di controllo del mirroring

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 nell'istanza del server di controllo del mirroring, ovvero l'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 ulteriori informazioni, vedere Preparazione di un database mirror per il mirroring (SQL Server).

  5. Nell'istanza del server mirror in PARTNERHOST5 impostare l'istanza del server in PARTNERHOST1 come partner, rendendola l'istanza del server principale iniziale.

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

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

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

Attività correlate

Icona freccia utilizzata con il collegamento Torna all'inizio[Torna all'inizio]

Vedere anche

Riferimento

ALTER DATABASE (Transact-SQL)

Concetti

Endpoint del mirroring del database (SQL Server)

Sicurezza trasporto per il mirroring del database e i gruppi di disponibilità AlwaysOn (SQL Server)

Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server)

Sicurezza e protezione (Motore di database)