Linux üzerinde SQL Server için SMB depolama failover kümesi örneğini yapılandırma

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

Bu makalede Linux'ta bir yük devretme kümesi örneği (FCI) için SMB depolamanın nasıl yapılandırılır açıklanmaktadır.

Windows dışında, SMB aynı zamanda Ortak İnternet Dosya Sistemi (CIFS) paylaşımı olarak da adlandırılır ve Samba bunu uygular. Windows'ta, bir SMB paylaşımına şu formatla \\SERVERNAME\SHARENAMEerişiyorsunuz. Linux tabanlı SQL Server kurulumları için, SMB paylaşımını bir klasör olarak monte etmelisiniz.

Önemli kaynak ve sunucu bilgileri

SMB'yi başarılı bir şekilde kullanmak için şu ipuçlarını izleyin:

  • SMB paylaşımı, SMB 3.0 veya daha yeni bir cihaz kullandığı sürece Windows, Linux veya bir cihazda olabilir. Samba ve SMB 3.0 hakkında daha fazla bilgi için, Samba uygulamanızın SMB 3.0 ile uyumlu olup olmadığını kontrol etmek için SMB 3.0'a bakınız.
  • SMB paylaşımı yüksek oranda kullanılabilir olmalıdır.
  • SMB paylaşımında güvenliği doğru şekilde ayarlayın. Aşağıdaki örnek /etc/samba/smb.conf, SQLData burada payın adı vardır.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser

Yönergeler

  1. FCI yapılandırmasına katılmak için sunuculardan birini seçin. Hangisi olduğu önemli değil.

  2. mssql kullanıcı hakkında bilgi edinin.

     sudo id mssql
    

    uid, gidve grupları not edin.

  3. sudo smbclient -L //NameOrIP/ShareName -U User'yi yürütün.

    • <NameOrIP>, SMB paylaşımını barındıran sunucunun DNS adı veya IP adresidir.
    • <ShareName>, SMB paylaşımının adıdır.
  4. Sistem veritabanları veya varsayılan veri konumunda depolanan herhangi bir şey için şu adımları izleyin. Aksi takdirde 5. adıma atlayın.

    1. Üzerinde çalıştığınız sunucuda SQL Server'ın durdurulduğundan emin olun.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    2. Tamamen süper kullanıcıya geç.

      sudo -i
      
    3. mssql kullanıcıya geçin.

      su mssql
      
    4. SQL Server verilerini ve günlük dosyalarını depolamak için geçici bir dizin oluşturun.

      mkdir <TempDir>
      
      • <TempDir> klasörün adıdır. Aşağıdaki örnek, /var/opt/mssql/tmpadlı bir klasör oluşturur.
      mkdir /var/opt/mssql/tmp
      
    5. SQL Server verilerini ve günlük dosyalarını geçici dizine kopyalayın.

      cp /var/opt/mssql/data/* <TempDir>
      
      • <TempDir>, önceki adımdaki klasörün adıdır.
    6. Dosyaların dizininde olduğunu doğrulayın.

      ls <TempDir>
      

      <TempDir>, d adımındaki klasörün adıdır.

    7. Dosyaları mevcut SQL Server veri dizininden silin.

      rm -f /var/opt/mssql/data/*
      
    8. Dosyaların artık var olmadığını doğrulayın.

      ls /var/opt/mssql/data
      
    9. Kullanıcıya root geri dönmek için Enter exit tuşuna basın.

    10. SMB paylaşımını SQL Server veri klasörüne bağlayın. Bu örnekte, Windows Server tabanlı SMB 3.0 paylaşımına bağlanma söz dizimi gösterilmektedir.

      mount -t cifs //<ServerName>/<ShareName> /var/opt/mssql/data -o vers=3.0,username=<UserName>,password=<Password>,domain=<domain>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777
      
      • <ServerName>, SMB paylaşımına sahip sunucunun adıdır
      • <ShareName> paylaşımın adıdır
      • <UserName>, paylaşıma erişecek kullanıcının adıdır
      • <Password> kullanıcının parolasıdır
      • <domain>, Active Directory'nin adıdır
      • <mssqlUID>, mssql kullanıcının UID'sidir
      • <mssqlGID>, mssql kullanıcının GID değeridir
    11. Montajı anahtarsız çalıştırarak mount doğrulayın.

      mount
      
    12. mssql kullanıcıya geçin.

      su mssql
      
    13. Geçici dizinindeki dosyaları kopyalayın /var/opt/mssql/data.

      cp /var/opt/mssql/tmp/* /var/opt/mssql/data
      
    14. Dosyaların orada olduğunu doğrulayın.

      ls /var/opt/mssql/data
      
    15. Kullanıcıyı mssql bırakmak için Enter exit yapın.

    16. Kullanıcıyı root bırakmak için Enter exit yapın.

    17. SQL Server'ı başlatın. Her şeyi kopyalayıp güvenliği doğru uyguladıysanız, SQL Server başlar.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    18. Daha fazla test etmek için izinlerin iyi olduğundan emin olmak için bir veritabanı oluşturun. Aşağıdaki örnek Transact-SQL kullanır; SQL Server Management Studio (SSMS) kullanabilirsiniz.

      Test veritabanının oluşturulmasını gösteren ekran görüntüsü.

    19. SQL Server'ı durdurun ve kapandığını doğrulayın. Başka diskleri eklemeyi veya test etmeyi planlıyorsanız, SQL Server'ı eklemeden kapatmayın, ta ki onları ekleyip test etmeden yapın.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    20. İşin bittiyse, payı çıkar. Aksi takdirde, test yapmayı veya disk eklemeyi bitirdikten sonra çıkar.

      sudo umount //<IPAddressorServerName>/<ShareName>/<FolderMountedIn>
      
      • <IPAddressOrServerName>, SMB konağın IP adresi veya adıdır
      • <ShareName> paylaşımın adıdır
      • <FolderMountedIn>, SMB'nin bağlandığı klasörün adıdır
  5. Kullanıcı veritabanları veya yedeklemeler gibi sistem veritabanları dışındaki şeyler için aşağıdaki adımları izleyin. Sadece varsayılan konumu kullanıyorsanız, 14. Adıma geçin.

    1. Süper kullanıcıya geç.

      sudo -i
      
    2. SQL Server'ın kullanması için bir klasör oluşturun.

      mkdir <FolderName>
      

      <FolderName> klasörün adıdır. Eğer klasör doğru konumda değilse, onun tam yolunu belirtin. Aşağıdaki örnek, /var/opt/mssql/userdataadlı bir klasör oluşturur.

      mkdir /var/opt/mssql/userdata
      
    3. SMB paylaşımını SQL Server veri klasörüne bağlayın. Bu örnekte Samba tabanlı SMB 3.0 paylaşımına bağlanma söz dizimi gösterilmektedir.

      mount -t cifs //<ServerName>/<ShareName> <FolderName> -o vers=3.0,username=<UserName>,password=<Password>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777
      
      • <ServerName>, SMB paylaşımına sahip sunucunun adıdır
      • <ShareName> paylaşımın adıdır
      • <FolderName>, son adımda oluşturulan klasörün adıdır
      • <UserName>, paylaşıma erişecek kullanıcının adıdır
      • <Password> kullanıcının parolasıdır
      • <mssqlUID>, mssql kullanıcının UID'sidir
      • <mssqlGID>, mssql kullanıcının GID değeridir.
    4. Montajı anahtarsız çalıştırarak mount doğrulayın.

    5. Süper kullanıcıyı bırakmak için girin exit .

    6. Test etmek için bu klasörde bir veritabanı oluşturun. Aşağıdaki örnek, bir veritabanı oluşturmak, bağlam değiştirmek, dosyaların işletim sistemi seviyesinde var olup olmadığını doğrulamak ve ardından geçici konumu silmek için kullanılır sqlcmd . SSMS kullanabilirsiniz.

    7. Paylaşımı kaldırın.

      sudo umount //<IPAddressorServerName>/<ShareName> /<FolderMountedIn>
      
      • <IPAddressOrServerName>, SMB konağın IP adresi veya adıdır
      • <ShareName> paylaşımın adıdır
      • <FolderMountedIn>, SMB'nin bağlandığı klasörün adıdır.
  6. Diğer düğümlerde adımları yineleyin.

Artık FCI'yi yapılandırmaya hazırsınız.