Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come risolvere il problema in cui i backup del servizio Copia Shadow del volume (VSS) non componente, ad esempio i processi di Azure Site Recovery (ASR) hanno esito negativo nei server che ospitano istanze di SQL Server con AUTO-CLOSE database.
Versione originale del prodotto: SQL Server 2017 in Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server in VM - Windows
Numero KB originale: 4504104
Sintomi
Prendi in considerazione lo scenario seguente:
- Si dispone di un server che esegue qualsiasi versione di Microsoft SQL Server.
- Questa istanza di SQL Server ospita i database con l'opzione AUTO-CLOSE impostata.
- Si esegue un backup vss non componente (ad esempio, usando l'agente ASR) su volumi di questo server che ospitano file di database di SQL Server.
In questo caso, si noterà che il backup del Servizio Copia Shadow del database non riesce e attiva la voce seguente nel log applicazioni:
Un writer vss ha rifiutato un evento con errore 0x800423f4, il writer ha riscontrato un errore non temporaneo. Se si ritenta il processo di backup, è probabile che l'errore si verifichi di nuovo. Le modifiche apportate dal writer ai componenti del writer durante la gestione dell'evento non saranno disponibili per il richiedente. Controllare il registro eventi per verificare la presenza di eventi correlati dall'applicazione che ospita il writer vss.
Operazione:
PostSnapshot, evento
Contesto:
Contesto di esecuzione: Writer
ID classe writer: {ID}
Nome writer: SqlServerWriter
Nome istanza writer: Microsoft SQL Server 2012:SQLWriter
ID istanza writer: {ID}
Riga di comando: ""C:\Programmi\Microsoft SQL Server\90\Shared\sqlwriter.exe""
ID processo: xxx"
Causa
Questo problema si verifica perché SQL Server SQLWriter attualmente non gestisce correttamente i database AUTO-CLOSE in modalità non componente richieste di backup vss.
Soluzione alternativa
Come mitigazione a breve termine, è consigliabile disabilitare l'opzione AUTO-CLOSE in tutti i database di tutte le istanze di SQL Server ospitate in server che ricevono backup vss non componenti. In genere, le macchine virtuali di Azure che eseguono SQL Server sono interessate perché ASR Agent esegue tali backup non componenti.
Ulteriori informazioni
Per impostazione predefinita, la
AUTO_CLOSEproprietà è impostata su OFF in SQL Server Understanding SQL Express behavior: Idle time resource usage, AUTO_CLOSE and User Instances ( Informazioni sul comportamento di SQL Server Express: utilizzo delle risorse inattive, AUTO_CLOSE e istanze utente). Se si è certi che questa impostazione non è stata abilitata manualmente nei server che potrebbero essere interessati da questo problema, esaminare eventuali istanze di SQL Server Express che potrebbero essere state installate automaticamente come componenti di altre applicazioni.Per ottenere un elenco di database con
AUTO_CLOSEmodalità abilitata, eseguire la query su una determinata istanza di SQL Server:select name,database_id,is_auto_close_on from sys.databases where is_auto_close_on=1.Per modificare l'impostazione, vedere la
AUTO_CLOSEsezione opzioni ALTER DATABASE SET nella documentazione online per TSQL.Per attivare o disattivare questa opzione, eseguire il comando seguente nel sqlcmd.exe client predefinito, ad esempio per il database del database personale:
alter database <myDatabase> set auto_close OFFLa modifica diventa effettiva immediatamente. Per ripristinare questa modifica, eseguire il comando seguente:
alter database <myDatabase> set auto_close ON
Se si preferisce un metodo GUI, usare Opzioni proprietà>database in SQL Server Management Studio.