Condividi tramite


Sql Server nella macchina virtuale di Azure non riesce a distribuire o l'istanza di SQL Server non riesce a essere online

Questo articolo consente di risolvere gli scenari seguenti:

  • Non riesce a essere distribuita un'immagine di Azure Marketplace di SQL Server in una macchina virtuale di Azure.
  • Un'istanza di SQL Server non riesce a essere online dopo il riavvio o la deallocazione di una macchina virtuale di Azure.

Si applica a: SQL Server in macchine virtuali di Azure

Annotazioni

L'indagine di questo problema è in corso attivamente. Le informazioni contenute in questo articolo sono soggette a modifiche man mano che diventano disponibili nuovi dettagli.

Sintomi

Se si verifica questo problema, è probabile che venga visualizzato quanto segue:

  • Le distribuzioni di SQL Server in macchine virtuali di Azure hanno esito negativo quando si usa un'immagine di Azure Marketplace.
  • SQL Server non riesce a essere online dopo il riavvio di una macchina virtuale di Azure per le istanze installate manualmente di SQL Server.

La distribuzione di SQL Server in una macchina virtuale di Azure ha esito negativo

Quando si tenta di distribuire un'immagine di SQL Server in una macchina virtuale di Azure da Azure Marketplace, la distribuzione ha esito negativo con lo stato Conflict e l'errore seguente:

Lo stato dell'unità di sistema è stato restituito come non pronto per l'uso.

Ad esempio, se si distribuisce un'immagine dal portale di Azure, è possibile che venga visualizzato l'errore seguente per la distribuzione nel log attività:

Screenshot dell'errore di distribuzione nel portale di Azure.

Avvertimento

Quando si verifica questo errore, la distribuzione della macchina virtuale di Azure ha esito positivo, ma l'installazione di SQL Server non riesce. È necessario eliminare la macchina virtuale per evitare addebiti. Ridistribuire la macchina virtuale usando uno dei metodi descritti nelle sezioni Risoluzione o Soluzioni alternative .

SQL Server non riesce a essere online dopo il riavvio della macchina virtuale

È possibile che questo problema venga visualizzato dopo aver seguito questa sequenza di eventi:

  1. Si distribuisce una macchina virtuale di Azure dall'elenco di macchine virtuali interessate .
  2. Installare manualmente un'istanza di SQL Server nella macchina virtuale di Azure.
  3. È possibile configurare il database di SQL Server tempdb in modo da usare l'archiviazione temporanea ssd locale (in genere l'unità D: ).
  4. La macchina virtuale viene riavviata o deallocata.
  5. L'istanza di SQL Server non riesce a essere online.

Se si verifica questo problema, è possibile che venga visualizzato l'errore seguente nel log degli errori di SQL Server:

CREATE FILE encountered operating system error 3(The system cannot find the path specified.) 
while attempting to open or create the physical file 'D:\SQLTemp\tempdb.mdf'.
Error: 17204, Severity: 16, State: 1. FCB::Open failed: Could not open 
file D:\SQLTemp\tempdb.mdf for file number 1. OS error: 
3(The system cannot find the path specified.).
Error: 5120, Severity: 16, State: 101.
Unable to open the physical file "D:\SQLTemp\tempdb.mdf". Operating system error 3:
"3(The system cannot find the path specified.)".
Error: 1802, Severity: 16, State: 4 CREATE DATABASE failed. 
Some file names listed could not be created. Check related errors.
Could not create tempdb. You may not have enough disk space available.
Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. 
Check for additional errors in the event log that may indicate why the 
tempdb files could not be initialized.

Causa

Alcune delle dimensioni più recenti delle macchine virtuali di Azure presentano un volume SSD locale RAW per l'archiviazione temporanea configurata con l'interfaccia NVMe (Non-Volatile Memory Express). Questa configurazione genera errori perché SQL Server tenta di posizionare il tempdb database nell'archiviazione temporanea e non riesce perché il volume SSD locale non è disponibile. Inoltre, l'archiviazione temporanea viene visualizzata in formato RAW dopo che la macchina è stata deallocata.

Il volume SSD locale RAW causa l'esito negativo della distribuzione della macchina virtuale SQL e impedisce che le istanze di SQL Server installate manualmente vengano online dopo il riavvio della macchina virtuale. In entrambi i casi, SQL Server tenta di inizializzare il tempdb database nell'archivio temporaneo, che non è disponibile. La distribuzione non riesce perché SQL Server viene installato durante la distribuzione della macchina virtuale di Azure e l'archiviazione temporanea non è disponibile. Analogamente, le istanze installate manualmente di SQL Server non riescono a essere online dopo il riavvio della macchina virtuale perché l'archiviazione temporanea non è disponibile quando SQL Server tenta di creare il tempdb database.

Risoluzione

Questo problema si verifica a causa delle dimensioni selezionate della macchina virtuale di Azure. Per risolvere il problema, usare uno dei metodi seguenti:

  • Se possibile, usare un altro SKU di macchina virtuale, ad esempio gli SKU elencati nelle procedure consigliate per le dimensioni della macchina virtuale.
  • Se si vuole usare una macchina virtuale specifica nell'elenco delle macchine virtuali interessate , usare un computer senza il minuscolo d nel nome, che si trova tempdb nella stessa risorsa di archiviazione dei file di dati di SQL Server. Ad esempio, usare le dimensioni della FXmsv2 macchina virtuale anziché FXmdsv2. Quest'ultimo utilizza un'archiviazione temporanea non inizializzata, come indicato da d nel nome.

Soluzione

Se non è possibile usare un altro SKU di macchina virtuale senza un'unità SSD locale RAW, prendere in considerazione le soluzioni alternative seguenti:

  • Distribuire la macchina virtuale usando un'immagine solo Windows Server, formattare e inizializzare l'unità NVMe temporanea e quindi installare manualmente SQL Server.

    • Se si sceglie di inserire tempdb l'unità SSD locale, è necessario reinizializzare il disco prima di avviare SQL Server ogni volta che la macchina virtuale viene riavviata o deallocata.
  • Distribuire l'immagine della macchina virtuale di SQL Server, ma configurare tempdb affinché utilizzi un'unità diversa dall'archiviazione temporanea durante la distribuzione. Ad esempio, è possibile configurare tempdb per usare l'unità C: oppure l'unità di archiviazione remota.

    1. È possibile configurare questa impostazione nella pagina delle impostazioni di SQL Server nel portale di Azure durante la distribuzione dell'immagine della macchina virtuale di SQL Server.

    2. In Configurazione archiviazione selezionare Modifica configurazione per aprire il riquadro Configura archiviazione .

    3. Espandere l'archiviazione tempdb e scegliere qualsiasi opzione diversa daUse local SSD drive:

      Screenshot della configurazione dell'archiviazione tempdb nel portale di Azure durante la distribuzione di un'immagine di macchina virtuale SQL.

Macchine virtuali interessate

Questo problema si verifica con le macchine virtuali che distribuiscono un'unità temporanea non inizializzata, ad esempio le dimensioni della macchina virtuale seguenti:

Intel Gen 10.2 AMD Gen 9.1
Dldsv6 Daldsv6
Ddsv6 Dadsv6
Edsv6 Eadsv6
Lsv3 - Tutte le macchine virtuali di Azure
Fxmdsv2

Annotazioni

Assicurarsi che la macchina virtuale non sia configurata usando dimensioni del settore superiori a 4 KB prima di installare SQL Server.