Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Linux üzerinde SQL Server
Bu öğretici, Linux üzerinde SQL Server için bir kullanılabilirlik grubu (AG) oluşturma ve yapılandırmayı kapsar. WINDOWS'da SQL Server 2016 (13.x) ve önceki sürümlerinden farklı olarak, önce temel Pacemaker kümesini oluşturarak veya oluşturmadan AG'yi etkinleştirebilirsiniz. Gerekirse, küme ile tümleştirme daha sonra yapılır.
Eğitim aşağıdaki görevleri içerir:
- Kullanılabilirlik gruplarını etkinleştirin.
- Kullanılabilirlik grubu uç noktaları ve sertifikaları oluşturun.
- Kullanılabilirlik grubu oluşturmak için SQL Server Management Studio (SSMS) veya Transact-SQL kullanın.
- Pacemaker için SQL Server oturum açma bilgilerini ve izinlerini oluşturun.
- Pacemaker kümesinde kullanılabilirlik grubu kaynakları oluşturun (yalnızca dış tür).
Önkoşullar
Linuxüzerinde SQL Server için Pacemaker kümesi dağıtma bölümünde açıklandığı gibi Pacemaker yüksek kullanılabilirlik kümesini dağıtın.
Kullanılabilirlik grupları özelliğini etkinleştirme
Windows'un aksine, kullanılabilirlik grupları (AG) özelliğini etkinleştirmek için PowerShell veya SQL Server Configuration Manager'ı kullanamazsınız. Linux altında, özelliği etkinleştirmek için mssql-conf kullanmanız gerekir. Kullanılabilirlik grupları özelliğini etkinleştirmenin iki yolu vardır: mssql-conf yardımcı programını kullanın veya mssql.conf dosyasını el ile düzenleyin.
Önemli
AG özelliği, SQL Server Express'te bile yalnızca yapılandırma amaçlı çoğaltmalar için etkinleştirilmelidir.
mssql-conf yardımcı programını kullanma
İstemde aşağıdaki komutu çalıştırın:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
mssql.conf dosyasını düzenleme
Aşağıdaki satırları eklemek için mssql.conf klasörünün altında bulunan /var/opt/mssql dosyasını da değiştirebilirsiniz:
[hadr]
hadr.hadrenabled = 1
SQL Server'ın yeniden başlatılması
Windows'da olduğu gibi kullanılabilirlik gruplarını etkinleştirdikten sonra aşağıdaki komutu kullanarak SQL Server'ı yeniden başlatmanız gerekir:
sudo systemctl restart mssql-server
Kullanılabilirlik grubu uç noktalarını ve sertifikalarını oluşturma
Kullanılabilirlik grubu iletişim için TCP uç noktalarını kullanır. Linux altında, ag uç noktaları yalnızca sertifikalar kimlik doğrulaması için kullanılıyorsa desteklenir. Aynı AG'de kopya olarak katılacak diğer tüm örneklerde sertifikayı bir örnekten geri yüklemeniz gerekir. Sertifika işlemi yalnızca yapılandırma amaçlı çoğaltma için bile gereklidir.
Uç nokta oluşturma ve sertifikaları geri yükleme işlemi yalnızca Transact-SQL aracılığıyla gerçekleştirilebilir. SQL Server tarafından oluşturulmamış sertifikaları da kullanabilirsiniz. Ayrıca süresi dolan sertifikaları yönetmek ve değiştirmek için bir işleme de ihtiyacınız vardır.
Önemli
AG'yi oluşturmak için SQL Server Management Studio sihirbazını kullanmayı planlıyorsanız, Linux'ta Transact-SQL kullanarak sertifikaları oluşturmanız ve geri yüklemeniz gerekir.
Çeşitli komutlar (güvenlik dahil) için kullanılabilen seçeneklerde tam söz dizimi için aşağıdakilere bakın:
Not
Kullanılabilirlik grubu oluşturuyor olmanıza rağmen uç nokta türü FOR DATABASE_MIRRORINGkullanır çünkü bazı temel özellikler bir zamanlar bu kullanım dışı bırakılmış özellik ile paylaşılırdı.
Bu örnek, üç düğümlü yapılandırma için sertifikalar oluşturur. Örnek adları LinAGN1, LinAGN2ve LinAGN3.
LinAGN1üzerinde ana anahtarı, sertifikayı ve uç noktayı oluşturmak ve sertifikayı yedeklemek için aşağıdaki betiği yürütün. Bu örnekte uç nokta için tipik TCP bağlantı noktası olan 5022 kullanılır.CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN1_Cert WITH SUBJECT = 'LinAGN1 AG Certificate'; GO BACKUP CERTIFICATE LinAGN1_Cert TO FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN1_Cert, ROLE = ALL ); GOLinAGN2üzerinde aynı işlemi yapın:CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN2_Cert WITH SUBJECT = 'LinAGN2 AG Certificate'; GO BACKUP CERTIFICATE LinAGN2_Cert TO FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN2_Cert, ROLE = ALL ); GOSon olarak,
LinAGN3üzerinde aynı sırayı gerçekleştirin:CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN3_Cert WITH SUBJECT = 'LinAGN3 AG Certificate'; GO BACKUP CERTIFICATE LinAGN3_Cert TO FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN3_Cert, ROLE = ALL ); GOscpveya başka bir yardımcı program kullanarak sertifikanın yedeklerini AG'nin parçası olacak her düğüme kopyalayın.Bu örnek için:
-
LinAGN1_Cert.cer'ıLinAGN2veLinAGN3'ye kopyalayın. -
LinAGN2_Cert.cer'ıLinAGN1veLinAGN3'ye kopyalayın. -
LinAGN3_Cert.cer'ıLinAGN1veLinAGN2'ye kopyalayın.
-
Sahipliğini ve kopyalanan sertifika dosyalarıyla ilişkili grubu
mssqlolarak değiştirin.sudo chown mssql:mssql <CertFileName>LinAGN2üzerindeLinAGN3veLinAGN1ile ilişkili örnek düzeyinde oturum açma bilgilerini ve kullanıcıları oluşturun.CREATE LOGIN LinAGN2_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN2_User FOR LOGIN LinAGN2_Login; GO CREATE LOGIN LinAGN3_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN3_User FOR LOGIN LinAGN3_Login; GODikkat
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.
LinAGN2_Cert'daLinAGN3_CertveLinAGN1geri yükleyin. Diğer çoğaltmaların sertifikalarına sahip olmak, AG iletişimi ve güvenliğinin önemli bir yönüdür.CREATE CERTIFICATE LinAGN2_Cert AUTHORIZATION LinAGN2_User FROM FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GO CREATE CERTIFICATE LinAGN3_Cert AUTHORIZATION LinAGN3_User FROM FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GOLinAG2veLinAGN3ile ilişkili oturum açma bilgilerineLinAGN1uç noktasına bağlanma izni verin.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login; GO GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login; GOLinAGN1üzerindeLinAGN3veLinAGN2ile ilişkili örnek düzeyinde oturum açma bilgilerini ve kullanıcıları oluşturun.CREATE LOGIN LinAGN1_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN1_User FOR LOGIN LinAGN1_Login; GO CREATE LOGIN LinAGN3_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN3_User FOR LOGIN LinAGN3_Login; GOLinAGN1_Cert'daLinAGN3_CertveLinAGN2geri yükleyin.CREATE CERTIFICATE LinAGN1_Cert AUTHORIZATION LinAGN1_User FROM FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE CERTIFICATE LinAGN3_Cert AUTHORIZATION LinAGN3_User FROM FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GOLinAG1veLinAGN3ile ilişkili oturum açma bilgilerineLinAGN2uç noktasına bağlanma izni verin.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login; GO GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login; GOLinAGN1üzerindeLinAGN2veLinAGN3ile ilişkili örnek düzeyinde oturum açma bilgilerini ve kullanıcıları oluşturun.CREATE LOGIN LinAGN1_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN1_User FOR LOGIN LinAGN1_Login; GO CREATE LOGIN LinAGN2_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN2_User FOR LOGIN LinAGN2_Login; GOLinAGN1_Cert'daLinAGN2_CertveLinAGN3geri yükleyin.CREATE CERTIFICATE LinAGN1_Cert AUTHORIZATION LinAGN1_User FROM FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE CERTIFICATE LinAGN2_Cert AUTHORIZATION LinAGN2_User FROM FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GOLinAG1veLinAGN2ile ilişkili oturum açma bilgilerineLinAGN3uç noktasına bağlanma izni verin.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login; GO GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login; GO
Kullanılabilirlik grubunu oluşturma
Bu bölümde SQL Server için kullanılabilirlik grubu oluşturmak üzere SQL Server Management Studio(SSMS) veya Transact-SQL kullanma işlemleri anlatılıyor.
SQL Server Management Studio kullanma
Bu bölümde, Yeni Kullanılabilirlik Grubu Sihirbazı ile SSMS kullanarak küme türü Dış olan bir AG'nin nasıl oluşturulacağı gösterilmektedir.
SSMS'de Always On High Availability genişletin, Kullanılabilirlik Gruplarıöğesine sağ tıklayın ve Yeni Kullanılabilirlik Grubu Sihirbazı'nıseçin.
Giriş iletişim kutusunda İleriseçin.
Kullanılabilirlik Grubu Seçeneklerini Belirtin iletişim kutusunda, kullanılabilirlik grubu için bir ad girin ve açılan listeden
EXTERNALveyaNONEküme türünü seçin. Pacemaker dağıtılırken harici kullanılmalıdır. Hiçbiri okuma ölçeği genişletme gibi özel senaryolara yönelik değildir. Veritabanı düzeyinde sistem durumu algılama seçeneğinin seçilmesi isteğe bağlıdır. Bu seçenek hakkında daha fazla bilgi için bkz. Kullanılabilirlik grubu veritabanı düzeyinde sistem durumu algılama yük devretme seçeneği. Sonrakiseçin.Veritabanlarını Seç iletişim kutusunda AG'ye katılacak veritabanlarını seçin. Bir AG'ye eklenebilmesi için her veritabanının tam yedeği olmalıdır. Sonrakiseçin.
"Çoğaltmaları Belirt iletişim kutusunda Çoğaltma Ekleseçeneğini seçin."
Sunucuya Bağlan iletişim kutusunda, ikincil çoğaltma olacak SQL Server'ın Linux örneğinin adını ve bağlanılacak kimlik bilgilerini girin. seçin,bağlan.
Yalnızca yapılandırma amaçlı çoğaltma veya başka bir ikincil çoğaltma içeren örnek için önceki iki adımı yineleyin.
Üç örneğin de artık Çoğaltmaları Belirt iletişim kutusunda listelenmesi gerekir. Dış küme türü kullanıyorsanız, gerçek bir ikincil olacak ikincil çoğaltma için, Kullanılabilirlik Modu'nun birincil çoğaltmanınkiyle eşleştiğinden ve yük devretme modunun Dış olarak ayarlandığından emin olun. Yalnızca yapılandırma amaçlı çoğaltma için Yalnızca Yapılandırma'nın kullanılabilirlik modunu seçin.
Aşağıdaki örnekte, iki çoğaltmaya sahip bir AG, küme türü Dışsal ve yalnızca yapılandırma için bir çoğaltma gösterilmektedir.
Aşağıdaki örnekte iki çoğaltması olan bir AG, küme türü 'Yok' ve yalnızca yapılandırma replikası gösterilmektedir.
Yedekleme tercihlerini değiştirmek istiyorsanız Yedekleme Tercihleri sekmesini seçin. AG'lerle yedekleme tercihleri hakkında daha fazla bilgi için bkz. Always On Kullanılabilirlik Grubunun İkincil Çoğaltmalarında Yedeklemeleri Yapılandırma.
Okunabilir ikincil öğeler kullanıyorsanız veya okuma ölçeği için küme türü Yok olan bir AG oluşturuyorsanız, Dinleyici sekmesini seçerek bir dinleyici oluşturabilirsiniz. Daha sonra bir dinleyici de eklenebilir. Dinleyici oluşturmak için Kullanılabilirlik grubu dinleyicisi oluştur seçeneğini belirleyin ve bir ad, bir TCP/IP bağlantı noktası, ayrıca statik veya otomatik olarak atanan bir DHCP IP adresi kullanılıp kullanılmayacağını girin. Küme türü Yok olan bir AG için IP'nin statik olması ve birincil ip adresine ayarlanması gerektiğini unutmayın.
Okunabilir senaryolar için bir dinleyici oluşturulduysa, SSMS 17.3 veya üzeri sihirbazda salt okunur yönlendirmenin oluşturulmasına izin verir. Daha sonra SSMS veya Transact-SQL aracılığıyla da eklenebilir. Şimdi salt okunur yönlendirme eklemek için:
Read-Only Yönlendirme sekmesini seçin.
Yalnızca okuma kopyalarının URL'lerini girin. Bu URL'ler uç noktalara benzer, ancak uç nokta yerine örneğin bağlantı noktasını kullanırlar.
Her URL'yi seçin ve alt kısımdan okunabilir çoğaltmaları seçin. Çoklu seçim yapmak için SHIFT tuşunu basılı tutun veya sürükleyerek seçin.
Sonrakiseçin.
İkincil çoğaltmaların nasıl başlatılacağını seçin. Varsayılan ayar, AG'ye katılan tüm sunucularda aynı yolu gerektiren otomatik tohumlamakullanmaktır. Sihirbazın yedekleme, kopyalama ve geri yükleme yapmasını sağlayabilirsiniz (ikinci seçenek); veya veritabanını çoğaltmalar üzerine manuel olarak yedeklediyseniz, kopyalayıp geri yüklediyseniz katılmasını sağlayabilirsiniz (üçüncü seçenek); veya veritabanını daha sonra ekleyebilirsiniz (son seçenek). Sertifikalarda olduğu gibi, el ile yedekleme yapıyor ve kopyalıyorsanız, yedekleme dosyaları üzerindeki izinlerin diğer çoğaltmalarda ayarlanması gerekir. Sonrakiseçin.
Doğrulama iletişim kutusunda, her şey Başarılı olarak döndürülmezse araştırın. Dinleyici oluşturmadığınız durumlar gibi bazı uyarılar kabul edilebilir ve ölümcül değildir. Sonrakiseçin.
Özet iletişim kutusunda Bitirseçin. AG oluşturma işlemi şimdi başlıyor.
AG oluşturma işlemi tamamlandığında Sonuçlar'da Kapat seçin. Artık dinamik yönetim görünümlerinde ve SSMS'de "Always On Yüksek Kullanılabilirlik" klasörünün altında yer alan çoğaltmalarda AG'yi görebilirsiniz.
Transact-SQL kullanma
Bu bölümde Transact-SQL kullanarak AG oluşturma örnekleri gösterilmektedir. Ag oluşturulduktan sonra dinleyici ve salt okunur yönlendirme yapılandırılabilir. AG'nin kendisi ALTER AVAILABILITY GROUPile değiştirilebilir, ancak küme türünü değiştirmek SQL Server 2017'de (14.x) yapılamaz. Küme türü Dış olan bir AG oluşturmak istemiyorsanız, bunu silip Yok küme türüyle yeniden oluşturmanız gerekir. Daha fazla bilgi ve diğer seçenekler aşağıdaki bağlantılarda bulunabilir:
- AVAILABILITY GROUP OLUŞTUR (Transact-SQL)
- OLARAK KULLANILAN GRUP (Transact-SQL)
- AlwaysOn kullanılabilirlik grubu için salt okunur yönlendirmeyi yapılandırma
- Always On kullanılabilirlik grubu için bir dinleyici yapılandırın
Örnek A: Yalnızca yapılandırma amaçlı çoğaltmaya sahip iki çoğaltma (Harici küme türü)
Bu örnekte, yalnızca yapılandırma amaçlı çoğaltma kullanan iki çoğaltmalı bir AG'nin nasıl oluşturulacağı gösterilmektedir.
Veritabanlarının tam okuma/yazma kopyasını içerecek olan birincil kopya düğümünde çalıştırın. Bu örnekte otomatik tohumlama gerçekleştirilir.
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = EXTERNAL) FOR DATABASE <DBName> REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N' TCP://LinAGN1.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SEEDING_MODE = AUTOMATIC), N'LinAGN3' WITH ( ENDPOINT_URL = N'TCP://LinAGN3.FullyQualified.Name:5022', AVAILABILITY_MODE = CONFIGURATION_ONLY); GODiğer çoğaltmaya bağlı bir sorgu penceresinde aşağıdakileri yürüterek çoğaltmayı AG'ye ekleyin ve birincil çoğaltmadan ikincil çoğaltmaya dağıtım işlemini başlatın.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GOYalnızca yapılandırma çoğaltmasına bağlı bir sorgu penceresinde, veritabanı kullanılabilirlik grubuna (AG) dahil edin.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO
Örnek B: Salt okunur yönlendirmeli üç çoğaltma (Dış küme türü)
Bu örnek, üç tam kopya ve ilk AG oluşturma işlemi kapsamında salt okunur yönlendirmenin nasıl yapılandırılabileceğini göstermektedir.
Veritabanlarının tam okuma/yazma kopyasını içerecek olan birincil kopya düğümünde çalıştırın. Bu örnekte otomatik tohumlama gerçekleştirilir.
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = EXTERNAL) FOR DATABASE < DBName > REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N'TCP://LinAGN1.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN2.FullyQualified.Name', 'LinAGN3.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN1.FullyQualified.Name:1433') ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN1.FullyQualified.Name', 'LinAGN3.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN2.FullyQualified.Name:1433') ), N'LinAGN3' WITH ( ENDPOINT_URL = N'TCP://LinAGN3.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN1.FullyQualified.Name', 'LinAGN2.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN3.FullyQualified.Name:1433') ) LISTENER '<ListenerName>' ( WITH IP = ('<IPAddress>', '<SubnetMask>'), Port = 1433 ); GOBu yapılandırma hakkında dikkate bilmeniz gereken birkaç nokta:
-
AGNamekullanılabilirlik grubunun adıdır. -
DBName, kullanılabilirlik grubuyla birlikte kullanılan veritabanının adıdır. Ayrıca virgülle ayrılmış bir ad listesi de olabilir. -
ListenerName, alttaki sunucu veya düğümlerden farklı bir addır.IPAddressile birlikte DNS'de kaydedilir. -
IPAddress,ListenerNameile ilişkili bir IP adresidir. Ayrıca benzersizdir ve herhangi bir sunucu/düğümle aynı değildir. Uygulamalar ve son kullanıcılar AG'ye bağlanmak içinListenerNameveyaIPAddresskullanır. -
SubnetMask,IPAddressalt ağ maskesidir. SQL Server 2019 (15.x) ve önceki sürümlerde bu255.255.255.255. SQL Server 2022 (16.x) ve sonraki sürümlerinde bu0.0.0.0.
-
Diğer çoğaltmaya bağlı bir sorgu penceresinde aşağıdakileri yürüterek çoğaltmayı AG'ye ekleyin ve birincil çoğaltmadan ikincil çoğaltmaya dağıtım işlemini başlatın.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GOÜçüncü çoğaltma için 2. Adımı yineleyin.
Örnek C: Okuma yönlendirmeli iki çoğaltma (küme türü: yok)
Bu örnek, 'None' küme türü kullanılarak iki replikalı bir yapılandırmanın oluşturulmasını göstermektedir. Yük devretmenin beklenmediği okuma ölçeklendirme senaryosunda kullanılır. Bu, yuvarlak-robin işlevini kullanarak aslında birincil replik olan dinleyiciyi ve salt okunur yönlendirmeyi oluşturur.
Veritabanlarının tam okuma/yazma kopyasını içerecek olan birincil kopya düğümünde çalıştırın. Bu örnekte otomatik tohumlama gerçekleştirilir.
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = NONE) FOR DATABASE <DBName> REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N'TCP://LinAGN1.FullyQualified.Name: <PortOfEndpoint>', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, PRIMARY_ROLE( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = (('LinAGN1.FullyQualified.Name'.'LinAGN2.FullyQualified.Name')) ), SECONDARY_ROLE( ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN1.FullyQualified.Name:<PortOfInstance>' ) ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:<PortOfEndpoint>', FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ('LinAGN1.FullyQualified.Name', 'LinAGN2.FullyQualified.Name') )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN2.FullyQualified.Name:<PortOfInstance>') ), LISTENER '<ListenerName>' (WITH IP = ( '<PrimaryReplicaIPAddress>', '<SubnetMask>'), Port = <PortOfListener> ); GONerede:
-
AGNamekullanılabilirlik grubunun adıdır. -
DBName, kullanılabilirlik grubuyla kullanılacak veritabanının adıdır. Ayrıca virgülle ayrılmış bir ad listesi de olabilir. -
PortOfEndpoint, oluşturulan uç nokta tarafından kullanılan bağlantı noktası numarasıdır. -
PortOfInstance, SQL Server örneği tarafından kullanılan bağlantı noktası numarasıdır. -
ListenerName, altındaki çoğaltmalardan farklı olan ancak aslında kullanılmayan bir addır. -
PrimaryReplicaIPAddress, ana replikanın IP adresidir. -
SubnetMask,IPAddressalt ağ maskesidir. SQL Server 2019 (15.x) ve önceki sürümlerde bu255.255.255.255. SQL Server 2022 (16.x) ve sonraki sürümlerinde bu0.0.0.0.
-
İkincil replikayı AG'ye dahil edin ve otomatik tohumlamayı başlatın.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = NONE); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GO
Pacemaker için SQL Server oturum açma bilgilerini ve izinlerini oluşturma
Linux'taki SQL Server'ın altındaki Pacemaker yüksek erişilebilirlik kümesi, SQL Server örneğine ve kullanılabilirlik grubunun kendisinde izinlere sahip olması gerekir. Bu adımlar, Pacemaker'a SQL Server'da nasıl oturum açacağını bildiren bir dosyayla birlikte oturum açma bilgilerini ve ilişkili izinleri oluşturur.
İlk çoğaltmaya bağlı bir sorgu penceresinde aşağıdaki betiği yürütebilirsiniz:
CREATE LOGIN PMLogin WITH PASSWORD ='<password>'; GO GRANT VIEW SERVER STATE TO PMLogin; GO GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::<AGThatWasCreated> TO PMLogin; GODüğüm 1'de komut girin
sudo emacs /var/opt/mssql/secrets/passwdBu, Emacs düzenleyicisini açar.
Düzenleyiciye aşağıdaki iki satırı girin:
PMLogin <password>dosyadan çıkmak ve dosyayı kaydetmek için
Ctrltuşunu basılı tutun, ardındanXtuşuna basın ve ardındanC.Çalıştırmak
sudo chmod 400 /var/opt/mssql/secrets/passwdDosyayı kilitlemek.
Çoğaltma görevi görecek olan diğer sunucularda 1'den 5'e kadar adımları yineleyin.
Pacemaker kümesinde kullanılabilirlik grubu kaynaklarını oluşturma (Yalnızca dış)
SQL Server'da bir kullanılabilirlik grubu oluşturulduktan sonra, dış küme türü belirtildiğinde ilgili kaynakların Pacemaker'da oluşturulması gerekir. Ag ile ilişkilendirilmiş iki kaynak vardır: AG'nin kendisi ve bir IP adresi. Dinleyici işlevselliğini kullanmıyorsanız ip adresi kaynağını yapılandırmak isteğe bağlıdır, ancak önerilir.
Oluşturduğunuz AG kaynağı, kopyası olarak adlandırılan bir kaynak türüdür. AG kaynağının temelde her düğümde kopyaları vardır ve anaadlı bir denetim kaynağı vardır. Ana sunucu, birincil çoğaltmayı barındıran sunucuyla ilişkilendirilmiştir. Diğer kaynaklar, ikincil çoğaltmaları (normal veya yalnızca yapılandırma) barındırır ve bir geçiş durumunda ana sunucuya yükseltilebilir.
AG kaynağını aşağıdaki söz dizimiyle oluşturun:
sudo pcs resource create <NameForAGResource> ocf:mssql:ag ag_name=<AGName> meta failure-timeout=30s promotable notify=trueBurada
NameForAGResource, AG için bu küme kaynağına verilen benzersiz addır veAGNameoluşturulan AG'nin adıdır.AG'nin dinleyici işlevselliği ile ilişkilendirileceği IP adresi kaynağını oluşturun.
sudo pcs resource create <NameForIPResource> ocf:heartbeat:IPaddr2 ip=<IPAddress> cidr_netmask=<Netmask>burada
NameForIPResource, IP kaynağının benzersiz adıdır veIPAddresskaynağa atanan statik IP adresidir.IP adresinin ve AG kaynağının aynı düğümde çalıştığından emin olmak için birlikte bulundurma kısıtlamasının yapılandırılması gerekir.
sudo pcs constraint colocation add <NameForIPResource> with promoted <NameForAGResource>-clone INFINITYBurada
NameForIPResource, IP kaynağının adı veNameForAGResourceAG kaynağının adıdır.AG kaynağının IP adresinden önce çalışır durumda olduğundan emin olmak için bir sıralama kısıtlaması oluşturun. Birlikte bulundurma kısıtlaması bir sıralama kısıtlaması anlamına gelir, ancak bu bunu zorunlu kılar.
sudo pcs constraint order promote <NameForAGResource>-clone then start <NameForIPResource>Burada
NameForIPResource, IP kaynağının adı veNameForAGResourceAG kaynağının adıdır.
Sonraki adım
Bu öğreticide, Linux üzerinde SQL Server için kullanılabilirlik grubu oluşturmayı ve yapılandırmayı öğrendiniz. Nasıl yapılacağını öğrendinsiniz:
- Kullanılabilirlik gruplarını etkinleştirin.
- AG uç noktaları ve sertifikaları oluşturun.
- AG oluşturmak için SQL Server Management Studio (SSMS) veya Transact-SQL kullanın.
- Pacemaker için SQL Server oturum açma bilgilerini ve izinlerini oluşturun.
- Pacemaker kümesinde AG kaynakları oluştur.
Yükseltmeler ve yük devretme dahil olmak üzere AG yönetim görevlerinin çoğu için bkz:
Linux üzerinde SQL Server için HA kullanılabilirlik grubunu çalıştırma