Aracılığıyla paylaş


SQL Server için SLES paylaşılan disk kümesini yapılandırma

Şunlar için geçerlidir:Linux üzerinde SQL Server

Bu kılavuz, SUSE Linux Enterprise Server (SLES) üzerinde SQL Server için iki düğümlü bir paylaşılan disk kümesi oluşturmaya yönelik yönergeler sağlar. Kümeleme katmanı, Pacemakerüzerine kurulu SUSE Yüksek Kullanılabilirlik Uzantısı (HAE) temel alır.

Not

SQL Server 2025'te (17.x) başlayarak SUSE Linux Enterprise Server (SLES) desteklenmez.

Küme yapılandırması, kaynak aracısı seçenekleri, yönetimi, en iyi yöntemler ve öneriler hakkında daha fazla bilgi için bkz. SUSE Linux Enterprise Yüksek Kullanılabilirlik Uzantısı 12 SP5.

Önkoşullar

Aşağıdaki uçtan uca senaryoyu tamamlamak için iki düğüm kümesini dağıtmak için iki makineye ve NFS paylaşımını yapılandırmak için başka bir sunucuya ihtiyacınız vardır. Aşağıdaki adımlarda bu sunucuların nasıl yapılandırılacakları özetlenmiştir.

Her küme düğümünde işletim sistemini ayarlama ve yapılandırma

İlk adım, küme düğümlerinde işletim sistemini yapılandırmaktır. Bu kılavuzu takip etmek için, HA eklentisi için geçerli bir abonelikle SLES'i kullanın.

Her küme düğümüne SQL Server yükleme ve yapılandırma

  1. HER iki düğümde de SQL Server'ı yükleyin ve ayarlayın. Ayrıntılı yönergeler için bkz. linux sql server için yükleme kılavuzu.

  2. Yapılandırma amacıyla bir düğümü birincil, diğerini ikincil olarak belirleyin. Bu kılavuzda bu terimleri kullanın.

  3. İkincil düğümde SQL Server'ı durdurun ve devre dışı bırakın. Aşağıdaki örnek SQL Server'ı durdurur ve devre dışı bırakır:

    sudo systemctl stop mssql-server
    sudo systemctl disable mssql-server
    

    Not

    Kurulum zamanında, SQL Server örneği için bir sunucu ana anahtarı (SMK) oluşturulur ve adresine /var/opt/mssql/secrets/machine-keyyerleştirilir. Linux'ta SQL Server her zaman mssqladlı yerel bir hesap olarak çalışır. Yerel bir hesap olduğundan kimliği düğümler arasında paylaşılmamaktadır. Her yerel mssql hesabın SMK'nin şifresini çözmek için bu anahtara erişebilmesi için şifreleme anahtarını birincil düğümden her ikincil düğüme kopyalamanız gerekir.

  4. Birincil düğümde Pacemaker için bir SQL Server oturumu oluşturun ve sp_server_diagnosticsçalıştırmak için oturum açma izni verin. Pacemaker, hangi düğümün SQL Server çalıştırdığını doğrulamak için bu hesabı kullanır.

    sudo systemctl start mssql-server
    

    SQL Server master veritabanına sa hesabı ile bağlanın ve aşağıdaki betiği çalıştırın:

    USE [master];
    GO
    
    CREATE LOGIN [<loginName>] with PASSWORD = N'<password>';
    GRANT VIEW SERVER STATE TO <loginName>;
    

    Dikkat

    Parolanız, SQL Server varsayılanparola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.

  5. Birincil düğümde SQL Server'ı durdurun ve devre dışı bırakın.

  6. Her bir küme düğümü için konak dosyasını yapılandırmak ve güncelleştirmek amacıyla SUSE belgelerindeki yönergelerini izleyin. hosts dosyası, her küme düğümünün IP adresini ve adını içermelidir.

    Geçerli düğümün IP adresini denetlemek için şunu çalıştırın:

    sudo ip addr show
    

    Her düğümde bilgisayar adını ayarlayın. Her düğüme 15 karakter veya daha az benzersiz bir ad verin. /etc/hostname ekleyip YAST kullanarak veya el ile bilgisayar adını ayarlayın.

    Aşağıdaki örnekte, /etc/hosts ve SLES1adlı iki düğüm için eklemeler içeren SLES2 gösterilmektedir.

    127.0.0.1      localhost
    10.128.18.128  SLES1
    10.128.16.77   SLES2
    

    Tüm küme düğümlerinin birbirine parolasız SSH erişimi olmalıdır. Aksi takdirde, , hb_reportve Hawk's History Explorer gibi crm_reportaraçlar yalnızca yerel düğümden veri toplayabilir. Standart olmayan bir SSH bağlantı noktası kullanıyorsanız seçeneğini kullanın -X (bkz . Diğer Gereksinimler ve Öneriler). Örneğin, SSH bağlantı noktanız 3479 ise aşağıdakilerle crm_report çağır:

    crm_report -X "-p 3479" [...]
    

    Daha fazla bilgi için bkz. yönetim kılavuzu .

Sonraki bölümde paylaşılan depolamayı yapılandıracak ve veritabanı dosyalarınızı bu depolama alanına taşıyacaksınız.

Paylaşılan depolamayı yapılandırma ve veritabanı dosyalarını taşıma

Paylaşılan depolama alanı sağlamak için çeşitli çözümler kullanabilirsiniz. Bu kılavuzda NFS ile paylaşılan depolamanın yapılandırılması gösterilmektedir. NFS'nin güvenliğini sağlamak için en iyi yöntemleri izleyin ve Kerberos'u kullanın:

Bu yönergeleri izlemezseniz, ağınıza erişebilen ve bir SQL düğümünün IP adresini sahtekarlık eden herkes veri dosyalarınıza erişebilir. Her zaman olduğu gibi, üretim ortamında kullanmadan önce sisteminizde tehdit modellemesi gerçekleştirin.

Başka bir depolama seçeneği de SMB dosya paylaşımını kullanmaktır:

NFS sunucusunu yapılandırma

NFS sunucusunu yapılandırmak için SUSE belgelerinde aşağıdaki adımlara bakın: NFS Sunucusuyapılandırma.

Tüm küme düğümlerini NFS paylaşılan depolama alanına bağlanacak şekilde yapılandırma

İstemci NFS'sini SQL Server veritabanı dosyaları yolunu paylaşılan depolama konumuna işaret etmek üzere bağacak şekilde yapılandırmadan önce, veritabanı dosyalarını daha sonra paylaşıma kopyalayabileceğiniz geçici bir konuma kaydettiğinizden emin olun:

  1. Veritabanı dosyalarını yalnızcabirincil düğümde geçici bir konuma kaydedin. Aşağıdaki betik yeni bir geçici dizin oluşturur, veritabanı dosyalarını yeni dizine kopyalar ve eski veritabanı dosyalarını kaldırır. SQL Server mssqlyerel kullanıcı olarak çalıştığından, bağlı paylaşıma veri aktarımından sonra yerel kullanıcının paylaşıma okuma-yazma erişimi olduğundan emin olmanız gerekir.

    su mssql
    mkdir /var/opt/mssql/tmp
    cp /var/opt/mssql/data/* /var/opt/mssql/tmp
    rm /var/opt/mssql/data/*
    exit
    

    Tüm küme düğümlerinde NFS istemcisini yapılandırın:

    Not

    Yüksek Oranda Kullanılabilir NFS depolama ile ilgili en iyi SUSE uygulamaları ve önerileri için bkz. DRBD ve Pacemaker ile Yüksek Oranda Kullanılabilir NFS Depolama.

  2. Her düğümde, SQL Server'ın yeni dosya yolu ile başarıyla başlatıldığını doğrulayın. Bu noktada, SQL Server'ı aynı anda yalnızca bir düğüm çalıştırmalıdır. Her ikisi de veri dosyalarına aynı anda erişmeye çalıştıkları için aynı anda çalışamaz.

    SQL Server'ın her iki düğümde de başlatılmasını önlemek için, paylaşımın aynı anda yalnızca bir düğüm tarafından bağlandığından emin olmak amacıyla Dosya Sistemi küme kaynağını kullanın.

    Aşağıdaki komutlar SQL Server'ı başlatır, durumu denetler ve SQL Server'ı durdurur.

    sudo systemctl start mssql-server
    sudo systemctl status mssql-server
    sudo systemctl stop mssql-server
    

Bu noktada, SQL Server'ın her iki örneği de paylaşılan depolamadaki veritabanı dosyalarıyla çalışacak şekilde yapılandırılır. Sonraki adım Pacemaker için SQL Server'ı yapılandırmaktır.

Her küme düğümüne Pacemaker'ı yükleme ve yapılandırma

  1. Her iki küme düğümünde de Pacemaker oturum açmaiçin SQL Server kullanıcı adını ve parolasını depolamak için bir dosya oluşturun. Aşağıdaki komut bu dosyayı oluşturur ve doldurur:

    sudo touch /var/opt/mssql/secrets/passwd
    sudo echo '<loginName>' >> /var/opt/mssql/secrets/passwd
    sudo echo '<password>' >> /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/secrets/passwd
    sudo chmod 600 /var/opt/mssql/secrets/passwd
    

    Dikkat

    Parolanız, SQL Server varsayılanparola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.

  2. Tüm küme düğümlerinin SSH aracılığıyla birbirine erişmesi gerekir. hb_report veya crm_report gibi araçlar (sorun giderme için) ve Hawk's History Explorer, düğümler arasında parolasız SSH erişimi gerektirir. Aksi takdirde, yalnızca geçerli düğümden veri toplayabilirler. Standart olmayan bir SSH portu kullanıyorsanız -X seçeneğini kullanın (man sayfasına bakın). Örneğin, SSH bağlantı noktanız 3479 ise şununla çağır hb_report :

    crm_report -X "-p 3479" [...]
    

    Daha fazla bilgi için SUSE belgelerinde ,Sistem Gereksinimleri ve Önerileri bölümüne bakın.

  3. Yüksek Kullanılabilirlik uzantısını yükleyin. Uzantıyı yüklemek için aşağıdaki SUSE makalesindeki adımları izleyin:

    Yükleme ve Kurulum Hızlı Başlangıç

  4. SQL Serveriçin FCI kaynak aracısını yükleyin. Her iki düğümde de aşağıdaki komutları çalıştırın:

    sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/mssql-server-2017.repo
    sudo zypper --gpg-auto-import-keys refresh
    sudo zypper install mssql-server-ha
    
  5. ilk düğümü otomatik olarak ayarlayın. Sonraki adım, ilk düğüm olan SLES1'i yapılandırarak çalışan tek düğümlü bir küme ayarlamaktır. SUSE makalesindeki ilk düğümü ayarlamayönergelerini izleyin.

    İşiniz bittiğinde, crm statusile küme durumunu denetleyin:

    crm status
    

    SLES1 adında bir düğümün yapılandırıldığını gösterir.

  6. Var olan bir kümeye düğüm ekleme. Ardından SLES2 düğümünü kümeye birleştirin. SUSE makalesindeki İkinci Düğüm Eklemetalimatlarını izleyin.

    İşiniz bittiğinde, crm statuskomutuyla küme durumunu kontrol edin. İkinci bir düğümü başarıyla eklerseniz, çıkış aşağıdaki örneğe benzer şekilde görünür:

    2 nodes configured
    1 resource configured
    Online: [ SLES1 SLES2 ]
    Full list of resources:
    admin_addr     (ocf::heartbeat:IPaddr2):       Started SLES1
    

    Not

    admin_addr , ilk tek düğümlü küme kurulumu sırasında yapılandırdığınız sanal IP kümesi kaynağıdır.

  7. Kaldırma prosedürleri. Kümeden bir düğümü kaldırmanız gerekiyorsa ha-cluster-remove bootstrap betiğini kullanın. Daha fazla bilgi için bkz. Bootstrap Betiklerine Genel Bakış.

SQL Server için küme kaynaklarını yapılandırma

Aşağıdaki adımlarda SQL Server için küme kaynağını yapılandırma adımları açıklanmaktadır. Aşağıdaki iki ayarı özelleştirin:

  • SQL Server Kaynak Adı: Kümelenmiş SQL Server kaynağının adı.
  • Zaman Aşımı Değeri: Zaman aşımı değeri, bir kaynağın çevrimiçi duruma getirilmesi sırasında kümenin beklediği süredir. SQL Server için bu değer, SQL Server'ın veritabanını çevrimiçine getirmesini master beklediğiniz süreyi temsil eder.

Ortamınız için aşağıdaki betikteki değerleri güncelleştirin. Kümelenmiş hizmeti yapılandırmak ve başlatmak için betiği bir düğümde çalıştırın.

sudo crm configure
primitive <sqlServerResourceName> ocf:mssql:fci op start timeout=<timeout_in_seconds>
colocation <constraintName> inf: <virtualIPResourceName> <sqlServerResourceName>
show
commit
exit

Örneğin, aşağıdaki betik mssqlhaadlı bir SQL Server kümelenmiş kaynağı oluşturur.

sudo crm configure
primitive mssqlha ocf:mssql:fci op start timeout=60s
colocation admin_addr_mssqlha inf: admin_addr mssqlha
show
commit
exit

Yapılandırmayı işledikten sonra, SQL Server sanal IP kaynağıyla aynı düğümde başlar.

Daha fazla bilgi için bkz. Küme Kaynaklarını Yapılandırma ve Yönetme (Komut Satırı).

SQL Server'ın başlatıldığını doğrulayın

SQL Server'ın başlatıldığını doğrulamak için crm status komutunu çalıştırın:

crm status

Aşağıdaki örnekte Pacemaker'ın kümelenmiş kaynak olarak başarıyla başlamasının sonuçları gösterilmektedir.

2 nodes configured
2 resources configured

Online: [ SLES1 SLES2 ]

Full list of resources:

 admin_addr     (ocf::heartbeat:IPaddr2):       Started SLES1
 mssqlha        (ocf::mssql:fci):       Started SLES1

Küme kaynaklarını yönetme

Küme kaynaklarınızı yönetmek için aşağıdaki SUSE makalesine bakın: Küme Kaynaklarını Yönetme

Manuel yük devretme

Kaynaklar donanım veya yazılım hatasında otomatik olarak yük devretme veya diğer küme düğümlerine geçiş yapmak üzere yapılandırılmış olsa da, Pacemaker GUI'sini veya komut satırını kullanarak bunları el ile de taşıyabilirsiniz.

migrate Bu görev için komutunu kullanın. Örneğin, SQL kaynağını adlı SLES2bir küme düğümüne geçirmek için şunu çalıştırın:

crm resource
migrate mssqlha SLES2