Udostępnij za pomocą


Niepowodzenie wdrażania SQL Server na maszynie wirtualnej Azure lub instancja SQL Server nie uruchamia się.

Ten artykuł ułatwia rozwiązanie następujących scenariuszy:

  • Nie można wdrożyć obrazu programu SQL Server na maszynie wirtualnej platformy Azure z witryną Azure Marketplace.
  • Wystąpienie SQL Server nie uruchamia się po ponownym uruchomieniu lub deaktywacji maszyny wirtualnej Azure.

Dotyczy: program SQL Server na maszynach wirtualnych platformy Azure

Uwaga

Badanie tego problemu jest aktywnie prowadzone. Informacje zawarte w tym artykule mogą ulec zmianie w miarę udostępniania nowych szczegółów.

Symptomy

Jeśli wystąpi ten problem, prawdopodobnie zobaczysz:

  • Wdrażanie SQL Server na maszynie wirtualnej w Azure kończy się niepowodzeniem podczas korzystania z obrazu Azure Marketplace.
  • Program SQL Server nie wchodzi do trybu online po ponownym uruchomieniu maszyny wirtualnej Azure dla ręcznie zainstalowanych instancji programu SQL Server.

Wdrażanie programu SQL Server na maszynie wirtualnej platformy Azure kończy się niepowodzeniem

Podczas próby wdrożenia programu SQL Server na obrazie maszyny wirtualnej platformy Azure z witryny Azure Marketplace wdrożenie kończy się niepowodzeniem ze stanem Conflict i następującym błędem:

Systemowy dysk zwrócił status "niegotowy do użycia".

Jeśli na przykład wdrażasz obraz z witryny Azure Portal, może zostać wyświetlony następujący błąd wdrożenia w dzienniku aktywności:

Zrzut ekranu przedstawiający błąd wdrożenia w witrynie Azure Portal.

Ostrzeżenie

W przypadku wystąpienia tego błędu wdrożenie maszyny wirtualnej platformy Azure zakończy się pomyślnie, ale instalacja programu SQL Server zakończy się niepowodzeniem. Aby uniknąć naliczania opłat, musisz usunąć maszynę wirtualną. Ponownie wdróż maszynę wirtualną przy użyciu jednej z metod opisanych w sekcjach Rozwiązywanie lub Obejścia .

Program SQL Server nie może być w trybie online po ponownym uruchomieniu maszyny wirtualnej

Problem ten może wystąpić po wykonaniu tej sekwencji zdarzeń:

  1. Wdrażasz maszynę wirtualną platformy Azure z listy maszyn wirtualnych, których dotyczy problem .
  2. Ręcznie zainstalujesz wystąpienie programu SQL Server na maszynie wirtualnej Azure.
  3. Możesz skonfigurować swoją bazę danych programu SQL Server tempdb tak, aby korzystała z lokalnego magazynu efemerycznego SSD (zazwyczaj z dysku D:).
  4. Twoja maszyna wirtualna została ponownie uruchomiona lub zdezaktywowana.
  5. Wystąpienie programu SQL Server nie uruchamia się.

Jeśli wystąpi ten problem, może zostać wyświetlony następujący błąd w dzienniku błędów programu 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.

Przyczyna

Niektóre z najświeższych rozmiarów maszyn wirtualnych platformy Azure oferują lokalny wolumin SSD w formacie RAW do magazynu efemerycznego, skonfigurowany za pomocą interfejsu NVMe (Non-Volatile Memory Express). Ta konfiguracja powoduje błędy, ponieważ program SQL Server próbuje umieścić tempdb bazę danych w magazynie efemerycznym i kończy się niepowodzeniem, ponieważ lokalny wolumin SSD nie jest dostępny. Ponadto pamięć tymczasowa jest pokazywana jako RAW po zwolnieniu maszyny.

Lokalny wolumin SSD RAW powoduje niepowodzenie wdrożenia SQL VM i uniemożliwia uruchomienie ręcznie zainstalowanych wystąpień SQL Server po ponownym uruchomieniu maszyny wirtualnej. W obu przypadkach program SQL Server próbuje zainicjować tempdb bazę danych w magazynie efemerycznym, który nie jest dostępny. Wdrożenie kończy się niepowodzeniem, ponieważ program SQL Server jest zainstalowany podczas wdrażania maszyny wirtualnej platformy Azure, a magazyn efemeryczny nie jest dostępny. Podobnie ręcznie zainstalowane wystąpienia programu SQL Server nie mogą przejść w tryb online po ponownym uruchomieniu maszyny wirtualnej, ponieważ magazyn efemeryczny nie jest dostępny, gdy program SQL Server próbuje utworzyć tempdb bazę danych.

Rozwiązanie

Ten problem występuje z powodu wybranego rozmiaru maszyny wirtualnej platformy Azure. Aby rozwiązać ten problem, użyj jednej z następujących metod:

  • Jeśli to możliwe, użyj innej jednostki SKU maszyny wirtualnej, takiej jak jednostki SKU wymienione w najlepszych rozwiązaniach dotyczących rozmiaru maszyny wirtualnej.
  • Jeśli chcesz użyć określonej maszyny wirtualnej, która znajduje się na liście maszyn wirtualnych, której dotyczy problem , użyj maszyny bez małych liter d w nazwie, która znajduje się tempdb w tym samym magazynie co pliki danych programu SQL Server. Na przykład użyj rozmiaru maszyny FXmsv2 wirtualnej zamiast FXmdsv2. Ten ostatni używa niezainicjowanego magazynu efemerycznego, jak wskazano d w nazwie.

Rozwiązanie

Jeśli nie możesz użyć innego SKU maszyny wirtualnej bez lokalnego dysku SSD w formacie RAW, rozważ następujące rozwiązania alternatywne:

  • Wdróż maszynę wirtualną przy użyciu obrazu tylko systemu Windows Server, sformatuj i zainicjuj tymczasowy dysk NVMe, a następnie ręcznie zainstaluj program SQL Server.

    • Jeśli zdecydujesz się umieścić tempdb na lokalnym dysku SSD, należy ponownie zainicjować dysk przed uruchomieniem programu SQL Server za każdym razem, gdy maszyna wirtualna zostanie ponownie uruchomiona lub cofnięto przydział.
  • Wdróż obraz maszyny wirtualnej z programem SQL Server, ale skonfiguruj go tempdb do używania innego dysku niż magazyn efemeryczny podczas wdrażania. Można na przykład skonfigurować tempdb do używania dysku C: lub dysku magazynu zdalnego.

    1. To ustawienie można skonfigurować na stronie ustawień programu SQL Server w witrynie Azure Portal podczas wdrażania obrazu maszyny wirtualnej z programem SQL Server.

    2. W obszarze Konfiguracja magazynu wybierz pozycję Zmień konfigurację , aby otworzyć okienko Konfigurowanie magazynu .

    3. Rozwiń magazyn bazy danych tempdb i wybierz dowolną opcję inną niżUse local SSD drive:

      Zrzut ekranu przedstawiający konfigurację magazynu bazy danych tempdb w witrynie Azure Portal podczas wdrażania obrazu maszyny wirtualnej SQL.

Dotknięte maszyny wirtualne

Ten problem występuje w przypadku maszyn wirtualnych, które wdrażają niezainicjowany dysk tymczasowy, na przykład następujące rozmiary maszyn wirtualnych:

Intel Gen 10.2 AMD Gen 9.1
Dldsv6 Daldsv6
Ddsv6 Dadsv6
Edsv6 Eadsv6
Lsv3 — wszystkie maszyny wirtualne platformy Azure
Fxmdsv2

Uwaga

Przed zainstalowaniem programu SQL Server upewnij się, że maszyna wirtualna nie jest skonfigurowana przy użyciu rozmiaru sektora większego niż 4 KB .