Microsoft SQL Server 2017 on Linux

Merhaba,

Sonunda Active Directory olmadan, WSFC olmadan, Windows işletim sistemi olmadan Linux üzerinde MS SQL Server 2017 kurmak ve Availability Group oluşturmak mümkün sadece bazı desteklenmeyen özellikler ve servisler dışında ki MS SQL Server 2019 Preview’de gözüken bu engellerin çoğunun kalkıyor olması.

AD olmaması ve WSFC olmaması güzel fakat bir sonraki Availability Group kurulumlarında göreceksiniz ki bize ekstra birkaç kuruluma sebebiyet verecek.

Dikkat edilmesi gereken konulardan biri yedekleme, burada DPM gibi Veeam gibi Microsoft’un VSS’ini kullanan teknolojiler buraya uymuyor. Yedekleme metodlarınızı gözden geçirmelisiniz.

Screen Shot 2018-10-10 at 11.32.46

Lisanslama olarak bir değişiklik yok, ilgili sayfadan Read the SQL Server 2017 licensing guide‘ı indirip kontrol edebilirsiniz.

Screen Shot 2018-10-10 at 11.33.20

Kurmadan Önce

Desteklenen işletim sistemleri RHEL,Suse ve Ubuntu. CentOS listede yok ama çalışıyor, benim tüm kurulumlarım CentOS üzerinde.

Desteklenen dosya sistemleri xfs ve ext4. CentOS 7 üzerinde varsayılı olarak xfs geliyor.

Release note için buraya bakabilirisiniz.

Hızlıca Kuralım

Microsoft SQL Server Repo’sunu ekleyelim ..

curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

Nedense sqlcmd, ODBC  gibi araçların ve driver’ların olduğu repo farklı onun için ilgili repo’yuda hemen ekleyelim

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo

Dilerseniz aşağıdaki komutu çalıştırarak hangi repo’lar eklenmiş görebilirsiniz

yum repolist

Şimdi hem mssql hemde mssql-tool’u kuralım

yum install -y mssql-server
yum install -y mssql-tools

Tüm kurulumlar bittikten sonra göreceksiniz ki tüm çalıştırılabilir dosyalar /opt/ dizini altında olacak, Microsoft herhalde Linux file system hierarchy‘i göz gezdirmiş ve buraya koymuş.

[root@mssqlonlinux3 ~]# cd /opt/m

microsoft/   mssql/       mssql-tools/

*Dikkat /opt dizini PATH değişkeninde varsayılı olarak export edilmediğinden komutları tam yoluyla yada PATH değişkenini güncellemenizi öneririm.

Sıra geldi veritabanın konfigürasyonumuza şu ana kadar herhangi bir işlem yapmadık, sadece paket’i kurduk, herhangi bir master database oluşmadı gibi gibi …

[root@mssqlonlinux3 ~]# /opt/mssql/bin/mssql-conf setup

Choose an edition of SQL Server:

  1) Evaluation (free, no production use rights, 180-day limit)

  2) Developer (free, no production use rights)

  3) Express (free)

  4) Web (PAID)

  5) Standard (PAID)

  6) Enterprise (PAID)

  7) Enterprise Core (PAID)

  8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at

https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.

Enter your edition(1-8):

Ben burada “3” nolu seçeneği seçiyorum, burada istediğiniz size uygun olan opsiyonu seçebilirsiniz. Benim üçüncü seçeneği seçmemdeki neden bir sonraki makaledeki yüksek devamlılık ayarlaması için configuration only node olarak kullanmak.

Arkasından size lisanslamayı kabul edip etmediğinizi soracak “Yes” diyerek geçelim.

Sizden SA şifresini isteyecek, büyüklü küçüklü rakamlı sembollü bir tane atayın.

Configuring SQL Server…

The licensing PID was successfully processed. The new edition is [Express Edition].

ForceFlush is enabled for this instance.

ForceFlush feature is enabled for log durability.

Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.

Setup has completed successfully. SQL Server is now starting.

Evet, sql çalışıyormuş , kontrol edelim …

systemctl status mssql

mssql-server.service – Microsoft SQL Server Database Engine

   Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)

   Active: active (running) since Wed 2018-10-10 17:01:43 +03; 1min 56s ago

Veritabanı yolu …

[root@mssqlonlinux3 ~]# /var/opt/mssql/

data/    log/     secrets/ .system/

Ya sqlcmd yada Azure Data Studio kurulu ise buradan ekleyip kontrol edelim …

Screen Shot 2018-10-10 at 17.06.37

Güzel, version’u kontrol edelim 14.0.3038.14, buna göre son CU11’i içeren bir paket’i kurmuşuz.

Bunun üzerine istediğiniz gibi test’lere başlayabilirsiniz.

Son olarak bir iki şey daha belirtmek isterim;

Microsoft hem Linux hemde Windows üzerinde MSSQL çalıştırmak için ayrı ayrı binary’ler koşturmuyor, her ikisi içinde tek bir geliştirme yaptığını söylüyor. Belki yanlış olabilir ama Linux üzerinde Linux Host Extension diye birşey üzerinde çalışıyor MSSQL ve kendisini Windows’daymış gibi zannediyor ve tamen uygulama çalıştığı işletim sistemi altyapısından ayrılmış oluyor. Daha fazla bilgi için bakın

Performans olarak bir farklılık yok diyorlar henüz içeride test etmedik ama adamların superdom üzerinde 480 core HT , 12 TB ram ve 30TB veri üzerinde TPC testlerinde gerekeni gösteriyor.

VM

 

Advertisements

Posted on 10/10/2018, in Database, MSSQL 2017 on Linux and tagged , , , , , , , , , , , , , . Bookmark the permalink. 1 Comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: