Bu makalede mssql server üzerinde yanlış sql sever version yüklenmesinden dolayı sql server’ın kullanmış olduğu cpu değerinin kısıtlandığı ve bunun sonucunda sql server full lisan özelliğine sahip sürümüne upgrade yapılması amaçlanmaktadır.
Aşağıdaki komut ile 3 node’lu systemde bulunan scheduler count değerlerini görmüş oluyoruz.
SELECT
scheduler_count AS [Scheduler Count],
cpu_count AS [CPU Count],
hyperthread_ratio AS [Hyperthread Ratio]
FROM sys.dm_os_sys_info;

Yukarıdaki resimde 1. node scheduler count değeri 128 olması gerekirken kısıtlamadan dolayı bu değerin 40 olduğu görülmektedir. Kısacası maksimum kullanıcın fiziksel cpu sayısının 20 olduğunu hyper tread ile bu değerin 40 olduğu görülmektedir.
Aşağıdaki resimde 1. node üzerinde bulunan 1 numanode1 üzerinde cpu sayısının 64 olduğu ama sql server’ın bunun tamamını kullanamadığını yukarıda resimde görmüş olduk.

SQL Server 2017’nin farklı sürümlerine göre maksimum desteklenen CPU çekirdek sayısı aşağıdaki gibidir:
SQL Server 2017 Sürümü | Maksimum Desteklenen CPU Sayısı |
---|---|
Enterprise Edition | İşletim sistemi limitine kadar (sınırsız) |
Standard Edition | 4 socket veya 24 çekirdek (hangisi daha azsa) |
Web Edition | 4 socket veya 16 çekirdek |
Express Edition | 1 socket veya 4 çekirdek |
Developer Edition | Enterprise ile aynı (sınırsız) |
Özellik | 2017 | 2019 | 2022 |
---|---|---|---|
Enterprise | Sınırsız | Sınırsız | Sınırsız |
Standard | 24 çekirdek | 24 çekirdek | 24 çekirdek |
Web | 16 çekirdek | 16 çekirdek | 16 çekirdek |
Express | 4 çekirdek | 4 çekirdek | 4 çekirdek |
Aşağıda, sunucunuzdaki CPU bilgilerini görüntüleyebileceğiniz basit bir T-SQL sorgusu bulunmaktadır:
SELECT
cpu_count AS [Çekirdek Sayısı],
hyperthread_ratio AS [Hyperthread Oranı],
cpu_count/hyperthread_ratio AS [Fiziksel CPU Sayısı],
(SELECT CAST(value_in_use AS INT) FROM sys.configurations WHERE name = 'max degree of parallelism') AS [MaxDOP]
FROM
sys.dm_os_sys_info;
Hangi SQL Server sürümünü kullandığınızı ve CPU bilgilerini öğrenmek için:
SELECT
@@VERSION AS [SQL Server Sürümü],
cpu_count AS [Toplam Çekirdek Sayısı],
hyperthread_ratio AS [Hyperthread Oranı],
cpu_count/hyperthread_ratio AS [Fiziksel CPU Sayısı]
FROM
sys.dm_os_sys_info;
Araştırmalar sonu sql server’ın sınırlı sayıda cpu kullanmasının sebebi yüklemiş olduğumuz sql server version yapısından kaynaklandığını görmüş oluyoruz. Sunucu üzerine yüklenen sql server sürümü 2017 enterprice edititon olduğu ama tüm cpu değerlerini kullana bilmemiz için enterprice edititon core based sürümün olması gerektiğini yaptığımız araştırmalar sonucu bulmuş olduk.
Şimdi ilgili sürüme upgrade işlemini yapalım. Upgrade yapılacak iso dosyasının indirilmesi gerekmektedir. Kısacası yanlış yüklenen iso dosyası. Yeni indirilen iso dosyasının maintenance bölümünde Edition Upgrade işleminin yeni sql server versiyonu ile yapılması gerekmektedir.

Burada sql server’ın edition sürümünden core based sürümüne gelmesi için sql server lisans anahtarının yeni olan core based lisans anahtarı ile değiştirilmesi gerekmektedir. TD ile başlıyan key eski olan yanlış yüklenen sql server sürümünün key değeridir.

Aşağıdaki resimde görünen key değerini yukarıda kurulu olan sql server setup bölümünde bulunan maintenance bölümüne ekliyoruz. Bu key değerini almak için core based setup dosyasından alınmaktadır. Edition sürümünde setup dosyasını açtığımızda upgrade bölümünde yeni key değerinin eklenmesi mevcut sürüme geçmemizi sağlayacaktır. Aşağıdaki key geçilmesi istenen sürüm ile ilgili key değeridir.

Yukarıda yapılan işlem sadece upgrade işleminin bir yöntemidir.
Sql server 2017 versiyonunda tam tersi işlemde gerçekleşmektedir. Yani core based dan enterprice edititon a geçilebilir. Sadece geçiş yapılacak edition’ın setup dosyasının olması gerekmektedir. Key değeri alabilmek için Bu sadece yapılacak yollardan bir tanesidir Birden fazla biçimle upgrade işlemi yapılmaktadır.

Yukarıdaki setup dosyasını çalıştırıyoruz. Bu cpu sayısının 20 olarak sınırlandığı edititon’un setup dosyasıdır. New SQL Server stand-alone.. bölümünden de yapılmaktadır.

Yeni edition sürümünün key değeri eklenmektedir.


İlgili instance seçimi yapıldıktan sonra upgrade işlemi başarılı bir şekilde yapılmaktadır.


Geçi yaptıktan sonra aşağıdaki komut ile sql server’ın tüm cpu değerlerini kullanıp kullanmadığını görebiliriz.
SELECT SERVERPROPERTY('Edition') AS Edition;
SELECT
scheduler_count AS [Scheduler Count],
cpu_count AS [CPU Count],
hyperthread_ratio AS [Hyperthread Ratio]
FROM sys.dm_os_sys_info;

Bu makalede yanlış yüklenmiş sql server sürümünün cpu üzerinde etkisini ve version değişikliğiyle nasıl düzeltileceğini görmüş olduk.
Aşağıdaki komut ile aktif olan scheduler değerlerini görebiliriz.
select * from sys.dm_os_schedulers where status ='VISIBLE ONLINE'
Başka makalede görüşmek dileğiyle..
Kim bir iyilikle gelirse, kendisine bunun on katı vardır, kim bir kötülükle gelirse, onun mislinden başkasıyla cezalandırılmaz ve onlar haksızlığa uğratılmazlar. En’am Suresi, 160. Ayet