Condividi tramite


Aggiungere un server di controllo del mirroring del database tramite l'autenticazione di Windows (Transact-SQL)

Per installare un server di controllo per un database, il proprietario del database assegna un'istanza di Motore di database al ruolo di server di controllo. L'istanza del server di controllo può essere eseguita sullo stesso computer dell'istanza del server principale o mirror, ma questo riduce in modo significativo l'affidabilità del failover automatico.

È fortemente consigliabile che il server di controllo risieda su un computer separato. Un determinato server può prendere parte a più sessioni di mirroring del database simultanee con lo stesso o diversi partner. Un determinato server può essere partner in alcune sessioni e server di controllo in altre.

Il server di controllo del mirroring è destinato unicamente alla modalità a sicurezza elevata con failover automatico. Prima di impostare un server di controllo del mirroring, è consigliabile verificare che la proprietà SAFETY sia impostata su FULL.

Nota importanteImportante

Si consiglia di configurare il mirroring del database durante le fasce orarie di minore attività, dato che la configurazione può influire sulle prestazioni.

Per creare un server di controllo

  1. Sull'istanza del server di controllo, assicurarsi che sia presente un endpoint per il mirroring del database. Indipendentemente dal numero di sessioni di mirroring da supportare, è necessario che l'istanza del server disponga di un unico endpoint di mirroring del database. Se si desidera utilizzare l'istanza del server esclusivamente come server di controllo nelle sessioni di mirroring del database, assegnare il ruolo di server di controllo all'endpoint (ROLE**=**WITNESS). Se si desidera utilizzare l'istanza del server come partner in una o più sessioni di mirroring del database, assegnare il ruolo di server dell'endpoint come ALL.

    Per eseguire un'istruzione SET WITNESS, è necessario che la sessione di mirroring del database sia già iniziata (tra i partner) e che il valore STATE dell'endpoint del server di controllo sia impostato su STARTED.

    Per informazioni sulle situazioni in cui l'istanza del server di controllo del mirroring dispone di un endpoint del mirroring del database e sul suo ruolo e stato, eseguire l'istruzione Transact-SQL seguente sull'istanza:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    
    Nota importanteImportante

    Se un endpoint di mirroring del database è presente e già in uso, è consigliabile utilizzarlo per ogni sessione sull'istanza del server. L'eliminazione di un endpoint in uso determina la chiusura di tutte le connessioni delle sessioni esistenti. Se un server di controllo del mirroring è stato impostato per una sessione, l'eliminazione dell'endpoint del mirroring del database può determinare la perdita del quorum da parte del server principale della sessione. Se questo si verifica, il database viene portato offline e i suoi utenti vengono disconnessi. Per ulteriori informazioni, vedere Quorum: Impatto di un server di controllo del mirroring sulla disponibilità del database (mirroring del database).

    Se per il server di controllo manca un endpoint, vedere Creare un endpoint del mirroring del database per l'autenticazione Windows (Transact-SQL).

  2. Se le istanze dei partner sono in esecuzione con account utente di dominio diversi, creare un account di accesso per i diversi account sul database master di ogni istanza. Per ulteriori informazioni, vedere Concessione dell'accesso alla rete a un endpoint per il mirroring del database utilizzando l'autenticazione di Windows (SQL Server).

  3. Connettersi al server principale ed eseguire la seguente istruzione:

    ALTER DATABASE <database_name> SET WITNESS = <server_network_address>

    dove <database_name> è il nome del database di cui eseguire il mirroring (tale nome è lo stesso per entrambi i partner) e <server_network_address> è l'indirizzo di rete del server dell'istanza del server di controllo del mirroring.

    La sintassi per un indirizzo di rete del server presenta la seguente struttura:

    TCP**://<system-address>:**<port>

    dove <system-address> è una stringa che identifica in maniera univoca il computer di destinazione e <port> è il numero di porta utilizzato dall'endpoint del mirroring dell'istanza del server partner. Per ulteriori informazioni, vedere Specificare un indirizzo di rete del server (Mirroring del database).

    Ad esempio, sull'istanza del server principale l'istruzione ALTER DATABASE seguente imposta il server di controllo del mirroring. Il nome del database è AdventureWorks, l'indirizzo del sistema è DBSERVER3, ovvero il nome del server di controllo del mirroring, e la porta utilizzata dall'endpoint del mirroring del database del server di controllo del mirroring è 7022:

    ALTER DATABASE AdventureWorks 
      SET WITNESS = 'TCP://DBSERVER3:7022'
    

Esempio

Nell'esempio seguente viene creato un server di controllo del mirroring dei dati. Sull'istanza del server di controllo (istanza predefinita in WITNESSHOST4):

  1. Creare un endpoint per questa istanza del server solo per il ruolo WITNESS utilizzando la porta 7022.

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=WITNESS)
    GO
    
  2. Creare un account di accesso per l'account utente di dominio delle istanze dei partner, se diverso. Ad esempio, supporre che il server di controllo del mirroring sia in esecuzione come SOMEDOMAIN\witnessuser, ma che i partner siano in esecuzione come MYDOMAIN\dbousername. Creare un account di accesso per i partner, come segue:

    --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
    
  3. Su ciascuna delle istanze del server partner creare un account di accesso per l'istanza del server di controllo:

    --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 partners
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [SOMEDOMAIN\witnessuser];
    GO
    
  4. Sul server principale impostare il server di controllo del mirroring, che si trova in WITNESSHOST4:

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

[!NOTA]

L'indirizzo di rete del server indica l'istanza del server di destinazione attraverso il numero di porta, che esegue il mapping dell'endpoint di mirroring dell'istanza.

Per un esempio completo sulla configurazione della sicurezza, la preparazione del database mirror, la configurazione dei partner e l'aggiunta di un server di controllo del mirroring, vedere Impostazione del mirroring del database (SQL Server).

Vedere anche

Attivitá

Concessione dell'accesso alla rete a un endpoint per il mirroring del database utilizzando l'autenticazione di Windows (SQL Server)

Stabilire una sessione di mirroring del database tramite autenticazione di Windows (Transact-SQL)

Riferimento

ALTER DATABASE (Transact-SQL)

Concetti

Creare un endpoint del mirroring del database per l'autenticazione Windows (Transact-SQL)

Rimuovere il server di controllo del mirroring da una sessione di mirroring del database (SQL Server)

Server di controllo del mirroring del database