MSSQLSERVER_17053

Si applica a:SQL Server

Dettagli

Attributo Valore
Nome prodotto SQL Server
ID evento 17053
Origine evento MSSQLSERVER
Componente SQLEngine
Nome simbolico OS_ERROR
Testo del messaggio %ls: è stato rilevato l'errore del sistema operativo %ls.

Spiegazione

Si è verificato un errore del sistema operativo generico. Il messaggio di errore esegue il wrapping di un errore del sistema operativo più specifico, che può essere usato per diagnosticare l'errore. Gli esempi includono letture o scritture in file di dati o di log che hanno esito negativo, operazioni di lettura/scrittura del Registro di sistema o altri errori imprevisti delle chiamate API Win32.
Questo errore viene visualizzato spesso insieme ad altri messaggi di errore nel log degli errori di SQL Server. Gli errori del sistema operativo vengono visualizzati con il relativo valore numerico, seguito dal messaggio di testo dell'errore.

Azione utente

Ecco alcuni esempi di come viene visualizzato l'errore 17053 insieme ad altri errori. Ogni esempio fornisce idee su come affrontare lo scenario specifico.

Esempio con errore del sistema operativo 665

In questo caso, l'errore del sistema operativo sottostante 665 indica che è stata rilevata una limitazione del file system durante la scrittura o la lettura del file.

Error: 17053, Severity: 16, State: 1.
K:\DATA\MyDB.MDF_MSSQL_DBCC11: Operating system error 665(The requested operation could not be completed due to a file system limitation) encountered.

The operating system returned error 665(The requested operation could not be completed due to a file system limitation) to SQL Server during a write at offset 0x00031397ce2000 in file 'K:\DATA\MyDB.MDF_MSSQL_DBCC11'.

Risoluzione:

Se si verifica questo scenario, seguire la procedura descritta in questo articolo per risolvere: gli errori del sistema operativo 665 e 1450 vengono segnalati per i file di SQL Server

Esempio con l'errore di SQL Server 9001 e gli errori del sistema operativo sottostanti 1117 e 21

In questo caso, l'errore del sistema operativo sottostante 1117 indica che il dispositivo del disco presenta un errore o è danneggiato fisicamente.

Error: 17053, Severity: 16, State: 1.
SQLServerLogMgr::LogWriter: Operating system error 1117(The request could not be performed because of an I/O device error.) encountered.

Write error during log flush.

Error: 9001, Severity: 21, State: 5.
The log for database 'SQLContoso' is not available. Check the operating system error log for related error messages. Resolve any errors and restart the database.

In questo caso l'errore del sistema operativo sottostante è 21, che indica che il dispositivo disco è offline e non è disponibile per il sistema operativo e SQL Server da usare.

Error: 17053, Severity: 16, State: 1.
SQLServerLogMgr::LogWriter: Operating system error 21(The device is not ready.) encountered.
Write error during log flush.

Error: 9001, Severity: 21, State: 4.
The log for database 'ContosoDB' is not available. Check the operating system error log for related error messages. Resolve any errors and restart the database.

Risoluzione:

Se si verifica uno scenario simile, risolvere l'errore del sistema operativo sottostante. In questo caso rivolgersi all'amministratore di sistema e al fornitore dell'hardware per assicurarsi che il dispositivo del disco sia online, che funzioni correttamente e che non siano presenti errori e danni segnalati. In casi come questo, potrebbe essere necessario controllare l'integrità fisica dei database dopo il ripristino del dispositivo disco eseguendo DBCC CHECKDB. Se vengono segnalati danni al database, ripristinare un ultimo backup valido del database noto.

Esempio con l'errore di SQL Server 9001 e gli errori del sistema operativo sottostanti 170

In questo caso, l'errore del sistema operativo sottostante 170 indica che i file sul disco vengono usati o bloccati da un altro programma, in genere un driver di filtro del file system.

Error: 17053, Severity: 16, State: 1.
SQLServerLogMgr::LogWriter: Operating system error 170(The requested resource is in use.) encountered.

Write error during log flush.

Error: 9001, Severity: 21, State: 5.
The log for database 'SQLContoso' is not available. Check the operating system error log for related error messages. Resolve any errors and restart the database.

Risoluzione:

Se si verifica uno scenario simile, risolvere l'errore del sistema operativo sottostante. In questo caso collaborare con l'amministratore di sistema per assicurarsi che i file di database e di log non siano bloccati da altri programmi. Più comunemente antivirus o software di protezione host, software di deframmentazione o software di backup che contiene blocchi sui file per molto tempo può causare questo errore del sistema operativo. Assicurarsi di escludere i file di database dall'analisi o dall'uso; Vedere Come scegliere il software antivirus da eseguire nei computer che eseguono SQL Server.

Negli ambienti WSFC (clustering), se le unità non sono configurate correttamente nel back-end, potrebbero bloccare i file di database quando non devono essere configurate correttamente. Per altre informazioni sull'archiviazione per WSFC, vedere Soluzione hardware clustering di failover e Istanze del cluster di failover con SQL Server in Azure Macchine virtuali - Archiviazione

Esempio con errore di SQL Server 9002 e errore del sistema operativo sottostante 112

In questo caso, l'errore del sistema operativo sottostante 112 indica che il volume del disco non è disponibile.

Error: 17053, Severity: 16, State: 1.
L:\SQLLOG\Contoso.LDF: Operating system error 112(There is not enough space on the disk.) encountered.

Error: 9002, Severity: 17, State: 5.
The transaction log for database 'ContosoDb' is full due to 'DATABASE_MIRRORING'.

Error: 5149, Severity: 16, State: 3.
MODIFY FILE encountered operating system error 112(There is not enough space on the disk.) while attempting to expand the physical file 'L:\SQLLOG\Contoso.LDF'.

Risoluzione:

Se si verifica uno scenario simile, risolvere l'errore del sistema operativo 112 sottostante. In questo caso, lavora con l'amministratore di sistema per liberare spazio su disco sul dispositivo e poi prova ad indirizzare l'intero registro delle transazioni. Per informazioni dettagliate sulla risoluzione degli errori 9002, vedere Risolvere i problemi relativi a un log delle transazioni completo (errore di SQL Server 9002).

Esempio con errore 17053 e 5173

In questo caso, l'errore operativo sottostante 112 viene segnalato all'avvio perché un file di database (frequentemente tempdb) è configurato con una dimensione iniziale superiore allo spazio libero sul suo disco. SQL Server non può creare o far crescere il file, e l'istanza non si avvia. Poiché SQL Server non può avviarsi, non puoi sistemare la dimensione del file tramite una connessione normale. Prima devi portare SQL Server in funzione con una configurazione minima.

2026-07-19 17:18:46.70 spid21s     Error: 17053, Severity: 16, State: 1.
2026-07-19 17:18:46.70 spid21s     D:\SQLTemp\Log\tempdb.ldf: Operating system error 112(There is not enough space on the disk.) encountered.

2026-07-19 17:18:46.72 spid21s     Error: 5173, Severity: 16, State: 1.
2026-07-19 17:18:46.72 spid21s     One or more files do not match the primary file of the database. If you are attempting to attach a database, retry the operation with the correct files. If this is an existing database, the file may be corrupted and should be restored from a backup.

2026-07-19 17:18:46.72 spid21s     Error: 1802, Severity: 16, State: 4.
2026-07-19 17:18:46.72 spid21s     CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

Risoluzione:

Se SQL Server non si avvia e va ripetutamente in crash perché la dimensione iniziale configurata di un file di database supera lo spazio libero del disco:

  1. Avvia il servizio SQL Server con una configurazione minima (-fparametro di avvio). Questo avvia SQL Server con un minimo tempdb e ti permette di connetterti tramite la connessione amministratore dedicata (DAC).

  2. Ispezionare la dimensione iniziale configurata dei file del database utente:

    SELECT
        DB_NAME(database_id) AS DatabaseName,
        name AS LogicalFileName,
        type_desc AS FileType,       -- ROWS = Data file, LOG = Log file
        size * 8 / 1024 AS SizeMB    -- Initial size in MB
    FROM sys.master_files
    WHERE database_id > 4            -- Exclude system databases
    ORDER BY DatabaseName, FileType;
    
  3. Per qualsiasi file la cui dimensione iniziale è maggiore dello spazio disponibile su disco, riducilo a un valore che si adatti a:

    ALTER DATABASE YourDatabaseName
    MODIFY FILE
    (
        NAME = YourDataFileLogicalName,
        SIZE = 512MB                 -- new initial size
    );
    
  4. Chiudi la connessione DAC e riavvia il servizio SQL Server normalmente da Gestione configurazione SQL Server o dalla console Services.

Per tempdb, si applica lo stesso principio: ridurre la dimensione iniziale configurata dei tempdb dati o dei file di log in modo che si adattino al disco, poi riavviare SQL Server. Per maggiori informazioni sulle dimensionitempdb, vedi Ottimizza le prestazioni tempdb in SQL Server.