Gli specchi di Microsoft SQL Server 2012 vanno disconnessi


8

Ho alcuni mirror di Microsoft SQL Server 2012, senza un testimone in modalità asincrona, che stanno sporadicamente andando in disconnessione. Sto eseguendo SQL Server 2012 11.0.5058. Vedo i tronchi sul lato specchio

Impossibile allocare BUF: FAIL_BUFFER_ALLOCATION 1

C'è un sacco di messaggi di memoryclerk

Errore: 802, gravità: 17, stato: 0.

Memoria insufficiente disponibile nel pool di buffer.

Errore: 1454, gravità: 16, stato: 1.

Il mirroring del database verrà sospeso. L'istanza del server "istanza" ha riscontrato l'errore 802, stato 0, gravità 17 quando fungeva da partner di mirroring per il "database" del database. I partner del mirroring del database potrebbero tentare di recuperare automaticamente dall'errore e riprendere la sessione di mirroring. Per ulteriori informazioni, visualizzare il registro errori per ulteriori messaggi di errore.

Qualsiasi aiuto su cosa controllare per scoprire perché i mirror vengono sospesi e quindi disconnessi seguendo questa catena di eventi sarebbe apprezzato. Posso ristabilire gli specchi dopo questo e funzionano bene per un paio di giorni e poi succede di nuovo tutto da capo.


Qual è la memoria massima impostata su? Usi anche il broker di servizi per caso?
Kin Shah,

Su mirror e primario, 2147483647 MB. Non si utilizza Service Broker.
John Wesley Gordon,

2
Ok ... questa è una cosa per renderlo non predefinito, altrimenti SQL Server utilizzerà tutta la memoria che affama il tuo sistema operativo. Puoi impostarlo su un valore ragionevole? Come buon punto di partenza puoi usare questo riferimento. Inoltre, puoi ricontrollare che la tua build di SQL Server 11.0.5048sembra errata?
Kin Shah,

Errore di battitura, era l'11.0.5058
John Wesley Gordon,

1
Quindi SP2 RTM, che ha un anno e mezzo - hai mai pensato di passare a SP3 (e facoltativamente CU1)? Non so se risolverà il tuo problema, ma ci sono molte altre correzioni che potrebbero essere utili.
Aaron Bertrand

Risposte:


1

Ho riscontrato un problema molto simile nella mia azienda precedente. Il miroring del database veniva periodicamente sospeso con lo stesso errore che si sta ottenendo. Il mirroring non si è mai riconnesso da solo, ma di solito sono riuscito a riprenderlo usando:

ALTER DATABASE <Database Name> SET PARTNER RESUME

Dopo alcune settimane abbiamo capito che anche se sul server era presente memoria sufficiente e memoria sufficiente è stata allocata all'istanza, il nostro carico di lavoro è stato distribuito in modo molto irregolare e talvolta è stato utilizzato il 100% della memoria. Dato che la maggior parte delle volte avevamo abbastanza memoria non eravamo autorizzati ad acquistarne di più. Ho finito per aumentare il file di estensione del pool di buffer e posizionarlo su uno degli SSD che avevano spazio sufficiente per adattarlo. Il problema con il mirroring non è più tornato. Non posso garantire che lo stesso funzionerà per te, condivido principalmente la mia esperienza.


0

Poche domande da porre e avviare la risoluzione dei problemi
1. Quanti database stai
eseguendo il mirroring 2. Quanta RAM è disponibile per il server sql
3. Qual è la dimensione del database con mirroring

Di seguito sono riportate le stime approssimative dei requisiti di mirroring quando il mirroring è abilitato

su Prinicipal:
4 MB per database per i buffer di invio DBM più 4 MB per i buffer di scrittura dei log

Sul mirror:
1 MB per i buffer di scrittura del log e 1 MB per il buffer REDO del log

È inoltre possibile controllare il consumo di memoria per DB sull'istanza mirror per vedere quale database è il collo di bottiglia e iniziare la risoluzione dei problemi

Utilizzo della memoria per database - SQL Server


Ho 3 database in fase di mirroring. Il server primario ha 16 GB di memoria e il mirror ha 20 GB di memoria. Il più grande utilizzo di memoria sul mirror in questo momento è di 3,8 MB per i mirror. Il database mirror ha le sue primarie. Il principale principale è 9301 MB. Il totale di tutti i database sul server mirror è 9593.75 MB. Questo non sembra avvicinarsi al segno da 20 GB. Il primario è ancora meno, usando solo 6765 MB.
John Wesley Gordon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.