Modello di recupero semplice di SQL Server 2012 con LOG_BACKUP log_reuse_wait_desc


11

Mentre sto facendo le mie indagini, qualcuno sa perché un database nel SIMPLEmodello di recupero ha LOG_BACKUPper log_reuse_wait_desc?

SQL Server 2012 SP1. Database creato solo poche settimane fa. Nessuna replica, nessun mirroring, nessuna distribuzione dei log e mai avuto nessuno di questi.

Abbiamo fatto il backup del database e il ripristino ad un altro esempio, mostra SIMPLEe NOTHINGin log_reuse_waitsu l'altra istanza. Ma non credo che il ripristino in un'altra istanza sia un buon modo per riprodurre il problema mentre l'operazione di ripristino esegue il roll-forward / rollback delle transazioni.

Risposte:


11

Bene, ho trascorso ieri giorno e notte a indagare, testare e provare a riprodurre il problema. Trovato la causa principale:

MODELdatabase impostato sul SIMPLEmodello di recupero.

Se il database del modello è stato impostato sul SIMPLEmodello di recupero e i database utente vengono creati con il SIMPLEmodello di recupero, SQL Server in qualche modo lo considera come se fosse nel FULLmodello di recupero. Quindi in attesa LOG_BACKUPdi troncare il registro.

Ho elencato i passaggi in questo link per mostrare come ho riprodotto il problema.

Penso che la causa principale sia se un database utente è stato creato (non alterare dopo) con un semplice modello di recupero, quindi ha questo problema. Lo biasimo sul database del modello in quanto è l'unico modo per creare un database utente con il modello di recupero definito.

Questo è documentato nell'articolo della Microsoft Knowledge Base 2830400 ed è stato risolto in SQL Server 2012 SP1 CU4 e RTM CU7:

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.