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 öğreticide, Linux üzerinde SQL Server için kullanılabilirlik grubu (AG) oluşturma ve yapılandırma gösterilmektedir. SQL Server 2016 (13.x) ve Windows'un önceki sürümlerinden farklı olarak, önce temel Pacemaker kümesini oluşturarak veya oluşturmadan ag'yi etkinleştirebilirsiniz. Gerekirse kümeyle tümleştirme daha sonra gerçekleşir.
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'ta kullanılabilirlik grupları özelliğini iki şekilde etkinleştirebilirsiniz: mssql-conf yardımcı programını kullanın veya dosyayı el ile düzenleyin mssql.conf .
Önemli
SQL Server Express'te bile yalnızca yapılandırma amaçlı çoğaltmalar için AG özelliğini etkinleştirmeniz gerekir.
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
Klasörün altında mssql.conf bulunan dosyayı da değiştirebilirsiniz/var/opt/mssql. Aşağıdaki satırları ekleyin:
[hadr]
hadr.hadrenabled = 1
SQL Server'ın yeniden başlatılması
Kullanılabilirlik gruplarını etkinleştirdikten sonra SQL Server'ı yeniden başlatmanız gerekir. Aşağıdaki komutu kullanın:
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 yedek olarak katılan diğer tüm örneklerde bir örneğin sertifikasını geri yüklemelisiniz. Sertifika işlemi yalnızca yapılandırma amaçlı çoğaltma için bile gereklidir.
Yalnızca Transact-SQL kullanarak uç noktalar oluşturabilir ve sertifikaları geri yükleyebilirsiniz. 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'; GOLinAGN2veLinAGN3ile ilişkili oturum açma bilgilerineLinAGN1uç noktasına bağlanma izni verin.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login;LinAGN1ü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'; GOLinAGN1veLinAGN3ile ilişkili oturum açma bilgilerineLinAGN2uç noktasına bağlanma izni verin.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login; 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; 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'nun (SSMS) veya Transact-SQL nasıl kullanılacağı gösterilmektedir.
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ırken kullanınEXTERNAL. Okuma ölçeği genişletme gibi özel senaryolar içinNONEkullanın. Veritabanı düzeyinde sağlık 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. Her veritabanı, bir AG'ye eklenmeden önce tam yedeklenmelidir. 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.
Üç örnek de Çoğaltmaları Belirt iletişim kutusunda görünür. Bir Dışsal küme türü kullanıyorsanız, gerçek bir ikincil olarak görev yapacak ikincil replik için Kullanılabilirlik Modu'nun birincil replik ile 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 ekleyebilirsiniz. Dinleyici oluşturmak için Kullanılabilirlik grubu dinleyicisi oluştur seçeneğini belirleyin ve bir ad, TCP/IP bağlantı noktası ve statik veya otomatik olarak atanan DHCP IP adresi kullanılıp kullanılmayacağını girin. Küme türü Yok olan bir AG için IP statik olmalı ve birincil ip adresine ayarlanmalıdır.
Okunabilir senaryolar için bir dinleyici oluşturursanız, SSMS sihirbazda salt okunur yönlendirmenin oluşturulmasına izin verir. Daha sonra SSMS veya Transact-SQL aracılığıyla da ekleyebilirsiniz. Ş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 kopyaları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, eğer el ile yedekleme yapıyor ve kopyalıyorsanız, diğer replikalardaki yedekleme dosyaları üzerinde izinleri ayarlayın. 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'yi oluşturduktan sonra dinleyiciyi ve salt okunur yönlendirmeyi yapılandırabilirsiniz. KULLANARAK AG'nin kendisini ALTER AVAILABILITY GROUPdeğiştirebilirsiniz, ancak SQL Server 2017'de (14.x) küme türünü değiştiremezsiniz. 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 için aşağıdaki bağlantılara bakın:
- 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.
Birincil çoğaltma görevi görecek ve veritabanlarının tam okuma/yazma kopyasını içeren düğümde aşağıdaki komutu yürütü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ğıdaki deyimi 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 kopyasına bağlı bir sorgu penceresinde aşağıdaki deyimi çalıştırarak AG'ye ekleyin.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO
Örnek B: Salt okunur yönlendirmeli üç çoğaltma (Dış küme türü)
Bu örnekte üç tam çoğaltma ve AG'nin ilk oluşturulma işlemi kapsamında salt okunur yönlendirmeyi nasıl yapılandırabileceğiniz gösterilmektedir.
Birincil kopya olarak davranacak ve veritabanlarının tam okuma/yazma kopyasını içeren düğümde aşağıdaki sorguyu yürütü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. -
DBNamekullanılabilirlik grubuyla kullandığınız veritabanının adıdır. Ayrıca virgülle ayrılmış bir ad listesi de olabilir. -
ListenerNametemel alınan sunuculardan veya düğümlerden farklı bir ad taşır. DNS'deIPAddressile birlikte kaydedilir. -
IPAddress, ileListenerNameilişkilendirilmiş bir IP adresidir. Ayrıca benzersizdir ve herhangi bir sunucu veya 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 bu değerdir255.255.255.255. SQL Server 2022 (16.x) ve sonraki sürümlerinde bu değer olur0.0.0.0.
-
-
Diğer çoğaltmaya bağlı bir sorgu penceresinde aşağıdaki deyimi 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çeği senaryosu için bu yapılandırmayı kullanın. Bu adım, gerçekte birincil kopya olan dinleyiciyi ve yuvarlak robin işlevselliğini kullanarak salt okunur yönlendirmeyi oluşturur.
Birincil kopya olarak işlev görecek ve veritabanlarının tam okuma/yazma kopyasını içeren düğümde aşağıdaki sözcüğü yürütü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> ); GOBu örnekte:
-
AGNamekullanılabilirlik grubunun adıdır. -
DBNamekullanılabilirlik grubuyla kullandığınız veritabanının adıdır. Ayrıca virgülle ayrılmış bir ad listesi de olabilir. -
PortOfEndpoint, oluşturduğunuz 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, temel alınan çoğaltmalardan herhangi birinden 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 bu değerdir255.255.255.255. SQL Server 2022 (16.x) ve sonraki sürümlerinde bu değer olur0.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 üzerinde SQL Server kullanan bir Pacemaker yüksek kullanılabilirlik kümesi, SQL Server örneğine ve kullanılabilirlik grubunun kendisinde izinlere erişmesi 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 şu komutu girin:
sudo emacs /var/opt/mssql/secrets/passwdBu komut 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.Yürütün:
sudo chmod 400 /var/opt/mssql/secrets/passwdDosyayı kilitlemek.
Kopya olarak hizmet veren diğer sunucularda 1'den 5'e kadar olan adımları tekrarlayın.
Pacemaker kümesinde kullanılabilirlik grubu kaynaklarını oluşturma (Yalnızca dış)
SQL Server'da bir kullanılabilirlik grubu oluşturduktan sonra, Dış küme türünü belirtirken Pacemaker'da ilgili kaynakları oluşturmanız gerekir. Kullanılabilirlik grubuyla ilişkili iki kaynak vardır: kullanılabilirlik grubunun 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ğı, "klon" olarak adlandırılan bir kaynak türüdür. AG kaynağının her düğümde kopyaları ve ana adlı 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=trueBu örnekte,
NameForAGResourceAG için bu küme kaynağına verdiğiniz benzersiz ad veAGNameoluşturduğunuz AG'nin adıdır.Dinleyici işlevselliğiyle ilişkilendirdiğiniz AG için IP adresi kaynağını oluşturun.
sudo pcs resource create <NameForIPResource> ocf:heartbeat:IPaddr2 ip=<IPAddress> cidr_netmask=<Netmask>Bu örnekte,
NameForIPResourceIP kaynağının benzersiz adı veIPAddresskaynağa atadığınız statik IP adresidir.IP adresinin ve AG kaynağının aynı düğümde çalıştığından emin olmak için bir birlikte bulundurma kısıtlaması yapılandırın.
sudo pcs constraint colocation add <NameForIPResource> with promoted <NameForAGResource>-clone INFINITYBu örnekte,
NameForIPResourceIP 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. Ko-lokasyon kısıtlaması bir sıralama kısıtlamasını belirtir, fakat bu adım onu zorunlu kılar.
sudo pcs constraint order promote <NameForAGResource>-clone then start <NameForIPResource>Bu örnekte,
NameForIPResourceIP 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: