LINUX Sunucusuna MSSQL Server Kurulumu

Bu makalede Linux ortamına MSSQL Server kurulumuna değinmiş olacağız. Bunun için  ubuntu web sayfasından kuracağım ubuntu desktop sürümünü indirmiş oldum. Mssql server kurulumunu Linux sunucusu üzerinde  yapacağım. Sunucu üzerinde yapmayıp Xshell veya MobaXterm gibi programlar sayesinde Linux sunucusuna  bağlanılıp mssql kurulumu rahatlıkla yapılabilir. Bunun için bağlantı konfigürasyonların yapılması gerekmektedir. Belirtilen linkten Ubuntu resimdeki ubuntu sürümü indirilebilir. Not: Microsoft Ubuntu 20.04 ve 22.04 versiyonlarını destekliyor. Ubuntu 24.04 versiyonunu desteklemediği için hata mesajı almış oldum. Not: Ubuntu kurulumunda işletim sistemi dili Türkçe seçilmesi mssql server kurulum aşamalarında hata almamıza sebebiyet verecektir. MSSQL Server kurulumu yapabilmemiz için  Linux işletim sistemlerinin Docker engine, centos,ubuntu, Suse Linux Enterprise server sürümleri olması gerekmektedir. Linux işletim sistemi üzerinde mssql server kurulumuna geçebiliriz. Bunun  için Linux terminal’ini açıyorum. Aşağıdaki komutu kullanarak root kullanıcısına geçiş yapılır. Root bağlantısını yaptıktan sonra sırasıyla aşağıdaki adımlar uygulanır. Adım Genel depo GPG anahtarlarını içe aktarın: Microsoft web sitesinden genel depo GPG anahtarlarını içe aktarmak […]

LINUX Sunucusuna MSSQL Server Kurulumu

Bu makalede Linux ortamına MSSQL Server kurulumuna değinmiş olacağız. Bunun için  ubuntu web sayfasından kuracağım ubuntu desktop sürümünü indirmiş oldum. Mssql server kurulumunu Linux sunucusu üzerinde  yapacağım. Sunucu üzerinde yapmayıp Xshell veya MobaXterm gibi programlar sayesinde Linux sunucusuna  bağlanılıp mssql kurulumu rahatlıkla yapılabilir. Bunun için bağlantı konfigürasyonların yapılması gerekmektedir.

Belirtilen linkten Ubuntu resimdeki ubuntu sürümü indirilebilir.

Not: Microsoft Ubuntu 20.04 ve 22.04 versiyonlarını destekliyor. Ubuntu 24.04 versiyonunu desteklemediği için hata mesajı almış oldum.

Not: Ubuntu kurulumunda işletim sistemi dili Türkçe seçilmesi mssql server kurulum aşamalarında hata almamıza sebebiyet verecektir.

MSSQL Server kurulumu yapabilmemiz için  Linux işletim sistemlerinin Docker engine, centos,ubuntu, Suse Linux Enterprise server sürümleri olması gerekmektedir.

Linux işletim sistemi üzerinde mssql server kurulumuna geçebiliriz. Bunun  için Linux terminal’ini açıyorum.

Aşağıdaki komutu kullanarak root kullanıcısına geçiş yapılır.

Root bağlantısını yaptıktan sonra sırasıyla aşağıdaki adımlar uygulanır.

  1. Adım Genel depo GPG anahtarlarını içe aktarın:

Microsoft web sitesinden genel depo GPG anahtarlarını içe aktarmak için aşağıdaki komutu çalıştırın. İstendiğinde, sudo kullanıcısı için parolayı girilmesi gerekmektedir. Yukarıda başlangıç olarak root ile giriş yapmıştık.

curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

Yukarıdaki komut satırını çalıştırdığımızda bize öncelikle yüklememiz gereken ayarları gösteriyor. Önerildiği gibi yüklememizi yapıyoruz. Önerilen yüklemelerden birini yapmamız yeterli olacaktır. Bu yüklemeler curl ile başlayan komutların çalıştırılmasını sağlamaktadır.

sudo snap install curl # version 8.1.2
sudo apt install curl # version 8.5.0-2ubuntu10.4

Yüklemelerimizi yaptıktan  sonra ilgili GPG anahtarını aşağıdaki komut ile içe aktarmış oluyoruz.

curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

  1. Adım sql server ubuntu kaynağını sunucumuza kaydediyoruz. SQL Server 2022 için Microsoft SQL Server deposunu eklemek üzere aşağıdaki komutu çalıştırın.
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2022.list)"

Not: Kullanmış olduğum ubuntu sürümü 20.04 olmasına yukarıdaki komut satırında 20.04 yazabiliriz. Arama moturunda ilgili uzantıya gittiğimizde ilgili sql kaynağına ulaşılabiliriz. Microsoft 22.04 yapısınıda destekliyor. Ama ubuntu desktop 24.04 versiyonunu desteklememektedir.

Not: Başka bir ubuntu sürümü kullanmak istersek  aşağıdaki komutla güncelleme alabiliriz.  Bu komut sayesinde yukarıdaki 22.04  güncellemeyi almış oldum.

Sudo apt –get update

Bu komut aynı zamanda deponuzu en son sürüme güncelleme komutudur.

  1. Adım SQL Server kurulumunun yapılması gerekmektedir.
sudo apt-get install -y mssql-server

Yukarıdaki komut ile mssql kurulumu başlamış durumda

MSSQL Server setup dosyamız başarılı bir şekilde yüklenmiş oldu.

  1. Adım Linux ortamına yüklemiş olduğumuz mssql server yapımızı yapılandırma işleminde SQL Server’ı yapılandırmaya başlamak için aşağıdaki komutu çalıştırılır.
sudo /opt/mssql/bin/mssql-conf setup

Yukarıdaki komutu yazdıktan sonra gelen ekranda hangi sql server sürümünü kullanmak istiyorsak ilgili seçim yapılabilir.

Evulation: 180 gün boyunca tüm özellikleri kullanacağımız bir yapı olarak karşımıza çıkmaktadır.

Express: SQL Server’ın kısıtlı sürümünü kurmanızı sağlar. Database boyutu olarak en fazla 10 Gibabyte’a kadar desteklemektedir.

Developer: Geliştirme ve öğrenme süreçleriniz için ücretsiz sunulan Enterprise versiyonu özelliklerini taşıyan sürümdür. Sürekli kullanacağımız bir sürüm.

Eğer elimde bir lisans anahtarı olsaydı 8. Seçeneği seçmiş olurduk.

Developer seçeneğini seçip Enter tuşuna basıyorum.

Gelen ekranda lisans koşullarını kabul ediyor musun seçeneğine Yes diyiyorum.

Eğer işletim sistemi olarak Türkçe kullanıyorsanız kurulum adımında sql server dilini İngilizce yapabiliriz. Sunucu diliniz İngilizce ise böyle bir seçenek karşınıza gelmemektedir.

Lisans koşullarını kabul ettikten sonra bizden sql server administrator şifresi istiyor.

Şifre belirledikten sonra Sql server servisinin başarılı bir şekilde kurulduğunu görmekteyiz.

  1. Adım Aşağıdaki komut ile sql server’ın çalışıp çalışmadığını kontrol edebiliriz.
systemctl status mssql-server

Diğer komutlarla mssql servisini durdurup,çalıştırabilirsiniz.

  • sudo systemctl stop mssql-server
  • sudo systemctl start mssql-server
  • sudo systemctl restart mssql-server

Yukarıdaki ilk bölümde Linux işletim sistemi üzerine mssql server kurulumu yapmış olduk. Kurmuş olduğumuz bu mssql üzerinde veritabanı oluşturmak için, SQL Server’da Transact-SQL ifadelerini çalıştırabilen bir araçla bağlantı kurmanız gerekir. Aşağıdaki adımlar la SQL Server komut satırı araçlarını yüklememiz gerekmektedir. sqlcmd  ve  bcp SQL Server komut satırı araçlarını yüklemek için aşağıdaki adımları izlememiz gerekmektedir.

İlk olarak curl ifadelerin çalıştırılabilmesi için aşağıdaki ifadelerin çalıştırılması gerekmektedir. Makale başında mssql kurulumu içinde bu adımları tekrarlamıştık. Bunun için tekrardan çalıştırılmasına gerek yoktur.

sudo apt-get update
sudo apt install curl

Aşağıdaki resimde görüldüğü gibi makalenin başında yapmıştık.

  1. Adım GPG anahtarlarını içe aktarmanız gerekiyor.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

  1. Daha sonra aşağıdaki komutu çalıştırarak Ubuntu deposunu kaydetmeniz gerekiyor.
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list

Not: 20.04 bizim Ubuntu versiyonumuz.

  1. Bir sonraki adım kaynak listesini güncellemek ve  unixODBCgeliştirici paketini yüklemektir.
sudo apt-get update
sudo apt-get install mssql-tools18 unixodbc-dev

Gelen ekranda Lisans koşullarını Kabul etmek istiyormusunuz diye soruyor Evet diyiyoruz.

  1. Adım mssql-tools’un en son sürümüne güncellemek için aşağıdaki komutları çalıştırın:
sudo apt-get update
sudo apt-get install mssql-tools18

sqlcmd  veya  bcp‘yi  bash kabuğundan erişilebilir  kılmak için ortam değişkenimize   eklenmesi gerekmektedir . Etkileşimli oturumlar için aşağıdaki komutu çalıştırılması gerekmektedir.

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

sqlcmd ve bcp’yi etkileşimli/oturum açmayan oturumlar için bash kabuğundan erişilebilir hale getirmek için PATH dosyadaki komutu ~/.bashrcaşağıdaki komutla değiştirin:

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc

  1. Adım yukarıdaki adımlardan sonra şimdi mssql server yapımıza bağlanalım.

Localimizden bulunan mssql server yapımıza bağlanmak için .(nokta),local,localhost,sunucu_adı ifadelerle bağlanabiliriz.

sqlcmd -S localhost -U sa -P 'password'

sqlcmd -S . -U sa

1 ifadesini görüyorsak mssql yapımıza bağlandığını gösteriyor.

Komut satırında çekeceğimiz sorgularda kolunların belirtilmesi okunabilirlik açısından önemlidir. Yapılan her işlemden sonra GO ifadesinin çalıştırılması gerekmektedir.

Yeni bir database oluşturduktan sonra aşağıdaki komut ile tekrardan veritabanı sayısına baktığımızda veritabanımızın oluştuğunu gözlemlemiş oluyoruz.

Sqlcmd oturumunuzu sonlandırmak için EXIT yazılması yeterlidir.

Sql server üzerinde bulunan bir veritabanının backup’ını alabiliriz.

sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [Y23] TO DISK = N'/var/opt/mssql/data/Y23.bak' WITH NOFORMAT, NOINIT, NAME = 'Y23-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

Backup alınmış bir veritabanını mssql server’a restore edebiliriz.

sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [db23] FROM DISK = N'/var/opt/mssql/data/db23.bak' WITH FILE = 1, NOUNLOAD,REPLACE, NORECOVERY, STATS = 5"

Başarılı bir şekilde Backup işlemimiz gerçekleşmiş oldu.

sql server system konfigürasyonunu görebiliriz.

Aşağıdaki komut ile uzaktan erişimi açmış oluruz.

Sunucumuz üzerinde firewall’un kapalı olup olmadığını öğrenebiliriz.

Eğer işletim sistemi üzerinde port kısıtlaması varsa sql server’ın default port numarası olan 1433 portunun açılması gerekmektedir. Aşağıdaki komut ile 1433 portunu açabiliriz.

firewall-cmd --zone=public --add-port=1433/tcp –permanent

İlgili port’u açmak istediğimde aşağıdaki hata mesajıyla karşılaştım ve gerekli güncellemeleri firewall üzerinde yaptıktan sonra komutumu tekrardan çalıştırdım.

Yukarıdaki firewall yüklemelerinden sonra sql server 1433 portunu aktif etmiş oldum.

Linux sunucusunun ip yapısını öğrenmek için aşağıdaki komutlar kullanılmaktadır.

ifconfig

Yukarıdaki ip ve port bilgilerinden sonra localimizde bulunan SSMS arayüzünden Linux üzerinde çalışan mssql server yapımıza bağlanabiliriz.

Bu makalede Linux işletim sistemi üzerinde mssql server kurulumunu görmüş olduk. Başka bir makalede görüşmek dileğiyle.

 

Benzer Yazılar

SQL SERVER RIGHT-LEFT PARTITION

SQL Server 5 gün önce

SQL Server’da partitioning, büyük veritabanı tablolarını daha yönetilebilir ve performanslı hale getirmek amacıyla kullanılan bir tekniktir. Bu teknik, tablonun verilerini fiziksel olarak değil, mantıksal olarak parçalara ayırır. Veriler, belirli bir partition function ve partition scheme kullanılarak farklı bölümlere yönlendirilir. Partitioning, özellikle büyük veri kümeleriyle çalışan veri tabanlarında sorgu performansını artırır ve veri yönetimini kolaylaştırır. Partition Function ve Partition Scheme nedir? Partition Function: Verilerin hangi kriterlere göre bölüneceğini belirler. Örneğin, bir tarih aralığına göre verileri ayırmak. Partition Scheme: Verilerin hangi filegroup’larda depolanacağını belirler.   Örnek olarak Range LEFT ve Range RIGHT olmak üzere iki ayrı tabloda partition nasıl yapılır sizlere göstereceğim. İlk olarak Range LEFT olan partition yapısından başlayacağım. Öncelikle Veri tabanıma yeni filegroup ve file ekliyorum Şimdi sıra FUNCTION ve SCHEME oluşturmakta ben tablomu yıllık olarak partition yaptım sizler ihtiyaçlarınız doğrultusunda aylık,günlük vs yapabilirsiniz. LEFT partition dediğimiz olay vermiş olduğunuz tarih aralığına eşit bir veri geldiğinde bu veriyi solundaki partition […]

Veritabanı Recovery Pending Durumu ve Düzeltme Seçenekleri

SQL Server 2 hafta önce

İçindekilerVeritabanı Recovery Pending Durumu Nedir?Veritabanı Neden Recover Pending Duruma Düşer?Recovery Pending Durumu Nasıl Çözülür?SonuçKaynaklarVeritabanı Recovery Pending Durumu Nedir? SQL Server’da veritabanları bazı nedenlere bağlı olarak “Recovery Pending” (Kurtarma Bekleme)  moduna geçebilir. Veritabanın düzgün bir şekilde kapatılmaması, eksik veya bozuk log dosyaları, disk depolama sorunları, sistemde yaşanan anormal şekilde çökmeler veya MS SQL Server’daki hatalar bu duruma sebep olabilir. Recovery durumu, aslında veritabanını tekrar kullanılabilir hale getirmek için bir kurtarma işlemi yürüttüğünü ifade eder ve üç aşamadan oluşur; Analysis (Analiz): Transaction log incelemesi yapılması ve işlemlerin tamamlanma (Commit) durumunun kontrol edilmesi, Redo (Yeniden İşleme): Tamamlanmış (Commit) ancak henüz diske yazılamamış olan işlemlerin yeniden işlenmesi, Undo (Geri Alma): Başlamış (Begin) ancak tamamlanmamış (Commit) işlemlerin  geri alınmasıdır.   Veritabanı Neden Recover Pending Duruma Düşer? SQL Server Restart Süreci SQL Server servisi restart edildiğinde üzerinde bulunan tüm veritabanları tutarlılığın sağlanması için otomatik olarak recovery moduna girer ve redo/undo işlemleri sürecince devam eder. Ani Sistem […]

SQL Server DMV ve DMF – 6

SQL Server 2 hafta önce

Bu yazımızda DMV ve DMF Serimizin 6.sına devam edeceğiz. Bir önceki seride Memory’ye ilişkin DMV ve DMF’leri ele almıştık. Bu yazıda Memory konusunda devam edeceğiz. SQL server’da Memory kavramı en önemli kavramlardan biridir. Özellikle tüm transaction işlemlerinin önce Buffer sonra disk üzerinden devam ettiğini düşünürsek buffer’ın oynadığı kritik rolü daha iyi anlayabiliriz. Bu yazıda Memory’nin durumunu ve monitör edilmesine bakacağız. Özellikle Performans sorunlarında memory konusunda sorun yaşandığı durumda nasıl okumak gerektiği önemli rol oynamaktadır. Hangi database’de, hangi tablo’da sorun yaşandığına ilişkin bilgilere bu paylaşım sonrasında görebileceğiz. SQL Server’ın Memory kullanım durumunu incelediğimde; select physical_memory_in_use_kb/1048576.0 AS ‘physical_memory_in_use (GB)’, locked_page_allocations_kb/1048576.0 AS ‘locked_page_allocations (GB)’, virtual_address_space_committed_kb/1048576.0 AS ‘virtual_address_space_committed (GB)’, available_commit_limit_kb/1048576.0 AS ‘available_commit_limit (GB)’, page_fault_count as ‘page_fault_count’ from  sys.dm_os_process_memory; Görsel – 1   Physical_memory_in_use: Kullanımda olan Fiziksel Memory miktarını gösterir. locked_page_allocations: Memory’de lock’lanmış olan Page’lerin miktarını belirtir. virtual_address_space_contained: SQL Server VAS(Virtual Adress Space) için ayrılan miktarı belirtir. available_commit_limit: SQL Server tarafından kullanılabilecek Memory Miktarını gösterir. […]

0 Yorum

Yorum Yaz

Rastgele