Windows Server 2016 ile gelen Workgroup ve Multi-Domain Cluster özelliği bir takım cluster uygulamalarında active directory bağımlılığını ortadan kaldırmakta ya da farklı domaindeki sunucuların birbirleri ile cluster olabilmesine olanak tanımaktadır.
Bu konu ile ilgili yapılandırma ayarlarını aşağıdaki bağlantıda bulabilirsiniz.
https://ortacdemirel.com/windows-server-2016-workgroup-ve-multi-domain-cluster/
Always On özelliği de bu yapı ile birlikte kullanılabilmektedir.
SQL Server 2016 ile gelen bu destek hali ile sadece Windows Server 2016 üzerinde kullanılabilmektedir. Bu yüzden yukardaki bağlantıda yer alan yapılandırmaları daha önceden yapmış olmanız gerekmektedir.
Windows Server 2016 sunucularını workgroup ortamında cluster çalışacak şekilde yapılandırdıktan sonra Always On kurulumuna geçebilirsiniz.
SQL Server 2016 sunucularımızda bu uygulamayı yapmak için sql hizmetlerini yerel hesaplar ile çalıştırabiliriz. Ayrıca SQL sunucularınız arasında 5022 portuna güvenlik duvarından izin vermeniz de gerekmektedir.
İlk olarak her iki sql sunucumda Configuration Manager ı açıp instance özelliklerine girip AlwaysOn Availability Groups u aktif hale getiriyorum.
Bu aşamadan sonra sql server hizmetinin yeniden başlatmanız gerekmektedir.
İki sunucu domain dışında çalıştığı için aralarında bir güven ilişkisi kurmamız gerekiyor. Bunu da SQL server ın master key şifreleme özelliği ve güvenlik sertifikası ile yapacağız.
Gene bu uygulamayı iki sunucuda da yapmamız gerekiyor.
Master veri tabanını kullanmamız gerekiyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
-- SQL Server 2016 Node1 Üzerinde USE master GO -- Master key oluşturup parola atıyoruz. CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1234qqqQ' GO -- Sertifikamızı oluşturuyoruz. CREATE CERTIFICATE SQLAG_Certificate_WINSRV01 WITH SUBJECT = 'SQLAG Certificate WINSRV01', START_DATE = '20160303' GO -- Public keyimizi sunucumuzdaki bir klasöre aktarıyoruz BACKUP CERTIFICATE SQLAG_Certificate_WINSRV01 TO FILE = 'c:\key\SQLAG_Certificate_WINSRV01.cert' GO |
Public key imizi yedek aldığımız yeri de kontrol etmeliyiz.
Always On yapısında iki sunucunun birbirine bağlanıp haberleşebilmesi için bir endpoint oluşturuyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
-- SQL Server 2016 Node1 Üzerinde CREATE ENDPOINT SQLAG_Noktasi STATE = STARTED AS TCP ( LISTENER_PORT = 5022 ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE SQLAG_Certificate_WINSRV01, ROLE = ALL, ENCRYPTION = REQUIRED ALGORITHM AES ) GO |
Aynı işlemleri ikinci sunucumuzda da yapmamız gerekiyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
-- SQL Server 2016 Node2 Üzerinde USE master GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1234qqqQ' GO CREATE CERTIFICATE SQLAG_Certificate_WINSRV02 WITH SUBJECT = 'SQLAG_Certificate_WINSRV02', START_DATE = '20160303' GO BACKUP CERTIFICATE SQLAG_Certificate_WINSRV02 TO FILE = 'c:\key\SQLAG_Certificate_WINSRV02.cert' GO CREATE ENDPOINT SQLAG_Noktasi STATE = STARTED AS TCP ( LISTENER_PORT = 5022 ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE SQLAG_Certificate_WINSRV02, ROLE = ALL, ENCRYPTION = REQUIRED ALGORITHM AES ) GO |
Her sunucuda yedek aldığım anahtarı diğer sunucuya taşıyorum.
Son aşama olarak iki sunucuda güven ilişkisi için birbirlerinin sertifikalarını yüklememiz gerekiyor. Bu işlem için birde sql hesabına ihtiyacınız vardır. Sertifikaları bu kullanıcılara atayacağız.
Öncelikle kullanıcımızı yaratıp parolasını belirliyoruz. Burada yaratacağımız login kullanıcısı diğer nodun bağlantısı için, user ise bağlantı noktası için yaratılır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
-- SQL Server 2016 Node1 Üzerinde CREATE LOGIN ortac WITH PASSWORD = '1234qqqQ' GO CREATE USER ortacag FOR LOGIN ortac GO -- Sertifikayı sunucuya aktarıyoruz. CREATE CERTIFICATE SQLAG_Certificate_WINSRV02 AUTHORIZATION ortacag FROM FILE = 'c:\key\ SQLAG_Certificate_WINSRV02.cert' GO -- Son olarak bağlantı noktası için kullanıcıya izin vermemiz gerekiyor. GRANT CONNECT ON ENDPOINT::SQLAG_Noktasi TO ortac GO |
Diğer sunucuda da aynı ayarları yapmamız gerekiyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
-- SQL Server 2016 Node2 Üzerinde CREATE LOGIN ortac WITH PASSWORD = '1234qqqQ' GO CREATE USER ortacag FOR LOGIN ortac GO CREATE CERTIFICATE SQLAG_Certificate_WINSRV01 AUTHORIZATION ortacag FROM FILE = 'c:\key\ SQLAG_Certificate_WINSRV01.cert' GO GRANT CONNECT ON ENDPOINT::SQLAG_Noktasi TO ortac GO |
SQL sunucularımız arasında güven ilişkisi kurmuş olduk.
AlwaysOn a geçmeden önce veri tabanı bulunan sunucumda veri tabanının full ve log backup ını alıyorum. Diğer sunucuya aktarıyorum. Diğer sunucuda restore işlemi yaparken log yedeğimi NO RECOVERY modda dönüyorum.
AlwaysOn işlemi tamamlanınca veri tabanı no recovery moddan çıkacaktır.
Veri tabanı aktarma işlemi sona erince AlwaysOn sihirbazını çalıştırıyoruz. Bu adımlarda workgroup ta çalışmaya özel bir ayar yer almamaktadır.
Group ismini belirliyoruz.
Aktardığım veri tabanını seçiyorum.
Diğer sunucumu ekliyorum.
Listener ayarımızı yapıyorum.
Active Directory dışında çalıştığı için makineler listener ismi ve ip si ile DNS kaydı açmanızı öneririm.
Karşı tarafa veri tabanını aktardığım için Join only seçeneğini seçiyorum.
AlwaysOn yapısı hazır.
Hocam Merhaba
Belirtmiş olduğunuz gibi sertifikayı oluşturdum ancak yüklemede
bu Hatayı aldım
Msg 15208, Level 16, State 19, Line 41
The certificate, asymmetric key, or private key file is not valid or does not exist; or you do not have permissions for it.
Merhabalar,
ikinci server da sysadmin olduğunuza emin olunuz.
Hocam
Bu yapılan işlem SQL Server standar versiyonunda yapmaya calışıyoruz mumkunse yardımlarınızı rica ederiz isterseniz uzaktan bağlantı sağlaya biliriz mail adresinizi payalaşa bilirseniz iletişim numarama vere bilirim
Teşekkür Ederim
Selam,
Standard sürüm ile yapılamıyor. “Hakkımda” bölümünden email adresimi bulabilirsiniz.