Aracılığıyla paylaş


Azure VM'de SQL Server dağıtılamıyor veya SQL Server örneği çevrimiçi olaamıyor

Bu makale aşağıdaki senaryoları çözmenize yardımcı olur:

  • Azure sanal makinesi (VM) üzerinde bir SQL Server Azure Marketplace görüntüsü dağıtılamıyor.
  • Azure VM yeniden başlatıldıktan veya tahsis edilmesi sona erdirildikten sonra bir SQL Server örneği çevrimiçi olamaz.

Şunlar için geçerlidir: Azure VM'lerinde SQL Server

Uyarı

Bu sorunun araştırması etkin bir şekilde devam etmektedir. Bu makaledeki bilgiler, yeni ayrıntılar kullanılabilir hale geldikçe değiştirilebilir.

Belirtiler

Bu sorunla karşılaşırsanız büyük olasılıkla şunları görürsünüz:

  • Azure Market görüntüsü kullanılırken Azure VM'de SQL Server dağıtımları başarısız oluyor.
  • SQL Server'ın el ile yüklenen örnekleri için bir Azure VM yeniden başlatıldıktan sonra SQL Server çevrimiçi olamıyor.

Azure VM'de SQL Server dağıtımı başarısız oluyor

Azure Marketplace'ten Azure VM resminde bir SQL Server dağıtmaya çalıştığınızda, dağıtım Conflict durumu ile sonuçlanır ve aşağıdaki hatayla başarısız olur:

Sistem Sürücüsü kullanıma hazır değil olarak bildirildi.

Örneğin, Azure portalından bir görüntü dağıtıyorsanız , Etkinlik günlüğünde dağıtım için aşağıdaki hatayı görebilirsiniz:

Azure portalındaki dağıtım hatasının ekran görüntüsü.

Uyarı

Bu hata oluştuğunda Azure VM dağıtımı başarılı olur, ancak SQL Server yüklemesi başarısız olur. Ücret yansıtılmasını önlemek için VM'yi silmeniz gerekir. Çözüm veya Geçici Çözümler bölümlerinde açıklanan yöntemlerden birini kullanarak VM'yi yeniden dağıtın.

VM yeniden başlatıldıktan sonra SQL Server çevrimiçi olamaz.

Bu olay dizisini takip ettikten sonra bu sorunu görebilirsiniz:

  1. Etkilenen VM listesinden bir Azure VM dağıtırsınız.
  2. Sql Server örneğini Azure VM'ye el ile yüklersiniz.
  3. SQL Server tempdb veritabanınızı yerel SSD kısa ömürlü depolama alanını (genellikle D: sürücü) kullanacak şekilde yapılandırabilirsiniz.
  4. Sanal Makineniz yeniden başlatıldı veya ayrıldı.
  5. SQL Server örneğiniz çevrimiçi olamz.

Bu sorunla karşılaşırsanız SQL Server hata günlüğünde aşağıdaki hatayı görebilirsiniz:

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.

Neden

En yeni Azure VM boyutlarından bazıları Geçici Olmayan Bellek Express (NVMe) arabirimiyle yapılandırılmış kısa ömürlü depolama için bir RAW yerel SSD birimi sunar. SQL Server, tempdb veritabanını geçici depolamaya yerleştirmeye çalıştığı ve yerel SSD birimi mevcut olmadığı için başarısız olduğundan, bu yapılandırma hatalarla sonuçlanır. Ayrıca, geçici depolama, makinenin tahsisi kaldırıldıktan sonra RAW olarak gösterilir.

RAW yerel SSD birimi, SQL VM dağıtımının başarısız olmasına neden olur ve el ile yüklenen SQL Server örneklerinin VM yeniden başlatıldıktan sonra çevrimiçi olmasını engeller. Her iki durumda da SQL Server, geçici depolamada veritabanını başlatmaya çalışır, ancak bu kullanılabilir değildir. Azure VM dağıtımı sırasında SQL Server yüklendiğinden ve kısa ömürlü depolama kullanılamadığından dağıtım başarısız olur. Benzer şekilde, SQL Server'ın el ile yüklenen örnekleri, SQL Server tempdb veritabanını oluşturmaya çalıştığında efemer depolama kullanılamadığından VM yeniden başlatıldıktan sonra çevrimiçi hale gelemiyor.

Çözüm

Bu sorun, seçilen Azure VM boyutu nedeniyle oluşur. Sorunu çözmek için aşağıdaki yöntemlerden birini kullanın:

  • Mümkünse, VM boyutu en iyi uygulamaları'nda listelenen SKU'lar gibi başka bir VM SKU'su kullanın.
  • Etkilenen VM'ler listesinde yer alan belirli bir VM'yi kullanmak istiyorsanız, adında küçük harf d olmayan ve SQL Server veri dosyalarıyla aynı depolama alanına yer tempdb alan bir makine kullanın. Örneğin, FXmsv2 yerine FXmdsv2 VM boyutunu kullanın. İkincisi, d ile adında belirtildiği gibi başlatılmamış geçici depolama kullanır.

Geçici çözüm

RAW yerel SSD olmadan başka bir VM SKU'su kullanamıyorsanız aşağıdaki geçici çözümleri göz önünde bulundurun:

  • Vm'yi yalnızca Windows Server görüntüsü kullanarak dağıtın, geçici NVMe sürücüsünü biçimlendirip başlatın ve ardından SQL Server'ı el ile yükleyin.

    • Yerel SSD'yi takmayı tempdb seçerseniz, VM her yeniden başlatıldığında veya serbest bırakıldığında SQL Server'ı başlatmadan önce diski yeniden başlatmanız gerekir.
  • SQL Server VM görüntüsünü dağıtın, ancak dağıtım sırasında kısa ömürlü depolamadan farklı bir sürücü kullanacak şekilde yapılandırın tempdb . Örneğin, sürücüyü veya uzak depolama sürücüsünü kullanacak tempdb şekilde yapılandırabilirsinizC:.

    1. BU ayarı , SQL ServerVM görüntüsünü dağıtırken Azure portalındaki SQL Server ayarları sayfasında yapılandırabilirsiniz.

    2. Depolama yapılandırması'nın altında Yapılandırmayı değiştir'i seçerek Depolamayı yapılandır bölmesini açın.

    3. tempdb depolama alanını genişletin ve aşağıdakiler dışındaUse local SSD drive bir seçenek belirleyin:

      SQL VM görüntüsü dağıtılırken Azure portalında tempdb depolama yapılandırmasının ekran görüntüsü.

Etkilenen VM'ler

Bu sorun, aşağıdaki VM boyutları gibi başlatılmamış bir geçici sürücü dağıtan VM'lerde oluşur:

Intel 10.2 Nesil AMD 9.1 Gen
Dldsv6 Daldsv6
Ddsv6 Dadsv6
Edsv6 Eadsv6
Lsv3 - Tüm Azure VM'leri
Fxmdsv2

Uyarı

SQL Server'ı yüklemeden önce VM'nin 4 KB'tan büyük bir kesim boyutu kullanılarak yapılandırılmadığından emin olun.