I database con mirroring vengono disconnessi dopo il riavvio del mirroring del database in SQL Server

Questo articolo consente di risolvere il problema in cui i database con mirroring vengono lasciati in stato Disconnesso o In ripristino .

Versione originale del prodotto: SQL Server
Numero KB originale: 2490051

Sintomo

Considerare lo scenario descritto di seguito:

  • Si dispone di un computer che esegue un'istanza secondaria di Microsoft SQL Server in un mirror di database a due server.

  • L'utilizzo della CPU raggiunge il 100% nel computer e non è possibile arrestare il servizio SQL Server usando SQL Server Strumenti di gestione.

  • È possibile terminare il processo dell'istanza secondaria SQL Server usando Gestione attività.

  • Riavviare l'istanza secondaria di SQL Server.

In questo scenario, tutti i database con mirroring si trovano in uno stato Disconnesso o In ripristino . Inoltre, viene registrato un messaggio di errore simile al seguente nel log degli errori SQL Server per ogni database:

Ignorando il ripristino per il database 'Nome database' perché è contrassegnato come database di mirroring del database inaccessibile. Esiste un problema con la sessione di mirroring. La sessione non dispone di un quorum o i collegamenti di comunicazione sono interrotti a causa di problemi con i collegamenti, la configurazione dell'endpoint o le autorizzazioni (per l'account server o il certificato di sicurezza). Per ottenere l'accesso al database, individuare le modifiche apportate alla configurazione della sessione e annullare la modifica.

Causa

Questo problema si verifica a causa di problemi negli endpoint di mirroring del database SQL Server.

Risoluzione

Per risolvere questo problema, usare i metodi seguenti. Se il primo metodo non risolve il problema, usare il secondo metodo.

Metodo 1

Riciclare l'endpoint nel mirroring del database. A tal fine, attenersi alla seguente procedura:

  1. Nel database principale eseguire lo script SQL seguente per arrestare l'endpoint:

    ALTER ENDPOINT <Endpoint Name> STATE=STOPPED
    
  2. Eseguire lo script SQL seguente per riavviare l'endpoint:

    ALTER ENDPOINT <Endpoint Name> STATE=STARTED
    

    Nota

    Se la comunicazione tra gli endpoint non viene riavviato dopo l'esecuzione degli script, eseguire gli script nel mirroring del database. Dopo questa operazione, tuttavia, il database potrebbe immettere uno stato Sospeso . Se si verifica questo problema, eseguire lo script SQL seguente:

    ALTER DATABASE <Database Name> SET PARTNER RESUME
    

Metodo 2

Eliminare e ricreare gli endpoint di mirroring del database in entrambi i server.