Azure Arc özellikli Veri Hizmetleri – SQL Managed Instance Yapılandırması

By | April 16, 2021

Azure Arc özellikli veri hizmetlerinin üçüncü yazısıdır. Birinci yazıda Azure Arc özellikli veri hizmetlerini Azure Kubernetes üzerinde yapılandırılmasını,ikinci yazmıda Azure Arc özellikli veri hizmetlerini Azure SQL Managed Instance’ın kurulumunu anlatmıştım. Bu yazıda ise ikinci bölümde oluşturduğumuz Azure Managed Instance’ı nasıl yapılandırabiliriz sorusunun cevabını veriyor olacağım. Birinci adım olarak daha önce kurulumunu yaptığımız Azure Arc Özellikli Managed Instance’a bağlanabilmek için ihtiyacım olan IP adresini aşağıdaki kod bloğu ile öğreniyor olayım.

azdata arc sql mi list

Resim1: IP adresi

IP adresini öğrendik, bir önceki yazımız olan kurulum aşamasında verdiğimiz kullanıcı adı ve şifre ile SQL Server Management Studio aracılığı ile Azure SQL Yönetilen Örneğine yani Azure Managed Instance’a bağlanıyoruz.

Resim2: SSMS ile bağlantı yapıyoruz.

Resim2 de gördüğünüz üzere SQL Server Agent servisi kapalı konumadır. Bunu aktif etmek isterseniz işte bu yazıya ihtiyaç duyuyorsunuz demektir.

Aslında Azure Arc özellikli Azure SQL Yönetilen Örneği bizim için SQL Server Linux’da çalıştığı için yapılandırma işlemlerini daha evvel linux ortamlarında gerçekleştirdiyseniz bir benzerini burada uygulayabilirsiniz. Bu bağlamda SQL Server’ın neden Linux’de çalışırır olduğu sorusunun cevabını da verebiliyoruz. Linux’da çalışmıyor olsa idi bugün bu Azure Arc Özellikli veri hizmetlerinin kullanamıyor olabilirdik.

SQL Server Linux tarafında yapılandırma için kullandığımız mssql-conf yardımcı programını burada da kullanıyor olacağız. SQL Server Linux tarafından aşikar olduğum için ben bu mssql-conf dosyasının /var/opt/mssql lokasyonunda olduğunu biliyorum.

Yapılandırma işlemlerine geçmeden çalışan Pod ve konteyner’ın adını öğrenmemiz gerekiyor. Bu bilgileri öğrenmek için aşağıdaki kod bloğunu kullanabiliriz.

Kubectl get pods -n arc

Resim3: Pod ve Konteyner adını buluyoruz.

Resim3’te gördüğünüz kırmızı ile işaretlediğim benim Managed Instance (MI) isim bilgisidir. Yanında yer alan 0 ise benim pod bilgisinin sayısıdır. Şöyle ki eğer benim MI birden fazla kopyasını / replikasını oluşturmuş olsaydım burada 1 yada 2 değerlerini de görebilirdim. Hatta bu konuyu da bir sonraki yazıda ele alalım ve Azure Managed Instance’ı High Availability nasıl yapabiliriz sorusunun cevabını vereyim.

Pod adını öğrendik, şimdi bu pod içerisindeki konteyner’ların – containers –  isimlerini öğrenelim. Bu işlem için de aşağıdaki kod bloğunu kullanabilirim.

kubectl get pods dmcsqlmi-0 -o jsonpath='{.spec.containers[*].name}' -n arc

Resim4: Pod içindeki konteynerlar

Gördüğünüz üzere 3 adet container mevcut.

Fluentbit : Bir loglama aracı
collectd : Metrik toplama aracı
arc-sqlmi : ve bizim oluşturduğumuz Managed Instance – MI –

Bu kadar bilgi edindiğimize göre Pod seviyesinde bir işlem yapmak istersek eğer dmcsqlmi-0 ile konteyner seviyesinde işlem yapmak istersek eğer arc-sqlmi kullanarak işlemlerimizi yapıyor olacağız.

O halde aşağıdaki kod ile konteyner’a bağlanıp bash işlemlerimize başlayalım.

kubectl exec -it dmcsqlmi-0 -c arc-sqlmi -n arc -- /bin/bash

Resim5

Şimdi işlemlerimizi yapacağımız klasöre geçiş yapalım.

cd /var/opt/mssql/

Resim6

Yapılandırma dosyasımızı inceleyelim.

cat mssql.conf

Resim7

Gördüğünüz gibi varsayılan yapılandırma dosyamızın içerisinde sadece telemetry’nin kapalı olduğunu gösteren bir kayıt var. Azure portal aracılığı ile aşağıdaki yeni belirlediğim yapılandırma dosyasını upload ediyorum.

[sqlagent]
enabled=true

Azure portal yukarıdaki kod bloğunun kayıtlı olduğu mssql-custom.conf isimli dosyası aşağıdaki kod satırını kullanarak konteyner içerisine kopyalıyorum.

kubectl cp mssql-custom.conf dmcsqlmi-0:/var/opt/mssql/mssql-custom.conf -c arc-sqlmi -n arc

Resim8

Dosyanın taşınma işlemi bittiğine göre yaptığımız işlemin aktif olması için restart edebiliriz. Bu işlemi bash üzerinden yapıyor olacağız.

supervisorctl restart mssql-server

Restart işleminden sonra SQL Server Management Studio’dan SQL Server Agent’ın durumunu kontrol edelim.

Resim9

Gördüğünüz gibi Azure Arc özellikli Azure SQL Yönetilen Örneğinde istediğimiz yapılandırmayı yaparak SQL Server Agent servisini çalıştırdık. Bir çok yapılandırma işlemini mssql-custom.conf dosyası aracılığı ile gerçekleştirebilirsiniz.  Bu dosyayı düzenleyerek farklı yapılandırma işlemlerini gerçekleştirebilirsiniz. Mesela veritabanı dosyalarının konumlarını, aldığınız yedeklerin nereye alınacağının bilgisini değiştirebilirsiniz. SQL Server’ın Maximum Memory ayarını değiştirebilirsiniz.

Bir sonraki Azure Arc Özellikli Veri hizmetleri yazısında görüşürüz.

DMC Bilgi Teknolojileri
Çağlar ÖZENÇ

Leave a Reply

Your email address will not be published. Required fields are marked *