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, şirket içi sanal makinelerde (VM' ler) veya Azure tabanlı Sanal Makinelerde çalışan Linux için HPE Serviceguard ile SQL Server kullanılabilirlik gruplarını yapılandırma açıklanmaktadır.
HPE Serviceguard kümelerine genel bakış için HPE Serviceguard Kümeleri'ne bakın.
Uyarı
Microsoft veri taşımayı, kullanılabilirlik grubunu ve SQL Server bileşenlerini destekler. HPE Serviceguard kümesi ve oy çoğunluğu yönetimi belgeleriyle ilgili destek için HPE'ye başvurun.
Bu öğretici aşağıdaki görevlerden oluşur:
- Kullanılabilirlik grubunun parçası olacak üç VM'nin tümüne SQL Server yükleme
- VM'lere HPE Serviceguard yükleme
- HPE Serviceguard kümesini oluşturma
- Azure portalında yük dengeleyici oluşturma
- Kullanılabilirlik grubunu oluşturma ve kullanılabilirlik grubuna örnek veritabanı ekleme
- Serviceguard küme yöneticisi aracılığıyla kullanılabilirlik grubuna SQL Server iş yükünü dağıtma
- Otomatik yük devretme gerçekleştir ve düğümü kümeye yeniden bağla
Önkoşullar
Azure'da üç Linux tabanlı VM (Sanal Makineler) oluşturun. Azure'da Linux tabanlı sanal makineler oluşturmak için bkz . Hızlı Başlangıç: Azure portalında Linux sanal makinesi oluşturma. VM'leri dağıtırken HPE Serviceguard tarafından desteklenen Linux dağıtımlarını kullandığınızdan emin olun. İsterseniz VM'leri yerel olarak şirket içi ortamda da dağıtabilirsiniz.
Desteklenen bir dağıtım örneği için bkz. Linux için HPE Serviceguard. Genel bulut ortamları desteği hakkında bilgi için HPE'ye başvurun.
Bu öğreticideki yönergeler Linux için HPE Serviceguard tarafından doğrulanmıştır. HPE'den bir deneme sürümü indirilebilir.
Üç sanal makinenin SQL Server veritabanı dosyaları, mantıksal birim bağlama (LVM) üzerinde yer almaktadır. Bkz. Serviceguard Linux (HPE) için hızlı başlangıç kılavuzu
VM'lerde bir OpenJDK Java çalışma zamanının yüklü olduğundan emin olun. IBM Java SDK'sı desteklenmez.
SQL Server'ı yükleme
Üç SANAL makinede de, SQL Server ve araçları yüklemek için bu öğretici için seçtiğiniz Linux dağıtımına göre aşağıdaki adımlardan birini izleyin.
Red Hat Enterprise Linux (RHEL)
SUSE Linux Kurumsal Sunucusu (SLES)
Bu adımı tamamladıktan sonra, kullanılabilirlik grubuna katılacak üç VM'de de SQL Server hizmeti ve araçları yüklü olmalıdır.
VM'lere HPE Serviceguard yükleme
Bu adımda, üç VM'de de Linux için HPE Serviceguard'ı yükleyin. Aşağıdaki tabloda her sunucunun kümede oynadığı rol açıklanmaktadır.
| VM sayısı | HPE Serviceguard rolü | Microsoft SQL Server kullanılabilirlik grubu replika rolü |
|---|---|---|
| 1 | HPE Serviceguard küme düğümleri | Birincil replikası |
| 1 veya daha fazla | HPE Serviceguard küme düğümü | İkincil kopya |
| 1 | HPE Serviceguard oy çoğunluğu sunucusu | Sadece yapılandırma replikası |
Serviceguard'ı yüklemek için cminstaller yöntemini kullanın. Aşağıdaki bağlantılarda belirli yönergeler sağlanır:
- linux için Serviceguard'ı iki düğüme yükleyin. Install_serviceguard_using_cminstaller bölümüne bakın.
- Serviceguard quorum sunucusunu üçüncü düğüme yükleyin. Install_QS_from_the_ISO bölümüne bakın.
HPE Serviceguard kümesinin yüklemesini tamamladıktan sonra, birincil çoğaltma düğümünde 5522 numaralı TCP bağlantı noktasında küme yönetim portalını etkinleştirebilirsiniz. Aşağıdaki adımlar, 5522'ye izin vermek için güvenlik duvarına bir kural ekler. Aşağıdaki komut bir Red Hat Enterprise Linux (RHEL) içindir. Diğer dağıtımlar için benzer komutları çalıştırmanız gerekir:
sudo firewall-cmd --zone=public --add-port=5522/tcp --permanent
sudo firewall-cmd --reload
HPE Serviceguard kümesi oluşturma
HPE Serviceguard kümesini yapılandırmak ve oluşturmak için bu yönergeleri izleyin. Bu adımda quorum sunucusunu da yapılandıracaksınız.
- Üçüncü düğümde Serviceguard oylama sunucusunu yapılandırın. Configure_QS bölümüne bakın.
- Diğer iki düğümde Serviceguard kümesini yapılandırın ve oluşturun. Configure_and_create_Cluster bölümüne bakın.
Uyarı
VM'nizi oluştururken Azure VM marketinden Linux için HPE Serviceguard (SGLX) uzantısını ekleyerek HPE Serviceguard kümenizin ve çekirdeğinizin el ile yüklenmesini atlayabilirsiniz.
Kullanılabilirlik grubunu oluşturma ve örnek veritabanı ekleme
Bu adımda, iki (veya daha fazla) zaman uyumlu çoğaltma ve yalnızca yapılandırma çoğaltması içeren bir kullanılabilirlik grubu oluşturun. Bu, veri koruması sağlar ve yüksek kullanılabilirlik de sağlayabilir. Aşağıdaki diyagram bu mimariyi temsil eder:
Kullanıcı verilerinin ikincil kopyaya eş zamanlı çoğaltılması. Ayrıca kullanılabilirlik grubu yapılandırma meta verilerini de içerir.
Kullanılabilirlik grubu yapılandırma meta verilerinin eşzamanlı çoğaltılması. Kullanıcı verilerini içermez.
Daha fazla bilgi için bkz. kullanılabilirlik grubu yapılandırmaları için yüksek kullanılabilirlik ve veri koruması.
Kullanılabilirlik grubunu oluşturmak için şu adımları izleyin:
- Kullanılabilirlik gruplarını etkinleştirin ve yalnızca Yapılandırma çoğaltması dahil olmak üzere tüm VM'lerde mssql-server'ı yeniden başlatın.
-
Olay oturumlarını
AlwaysOn_healthetkinleştirme (isteğe bağlı) - Birincil VM'de sertifika oluşturma
- İkincil sunucularda sertifika oluşturma
- Çoğaltmalarda veritabanı yansıtma uç noktalarını oluşturun
- Kullanılabilirlik grubu oluşturma
- İkincil replikaları birleştir
- Kullanılabilirlik grubuna veritabanı ekleme
Kullanılabilirlik gruplarını etkinleştirme ve mssql-server'ı yeniden başlatma
SQL Server örneğini barındıran tüm düğümlerde kullanılabilirlik gruplarını etkinleştirin. Ardından mssql-server'ı yeniden başlatın. Üç düğümde de aşağıdaki betiği çalıştırın:
sudo /opt/mssql/bin/mssql-conf
set hadr.hadrenabled 1 sudo systemctl restart mssql-server
Olay oturumlarını AlwaysOn_health etkinleştirme (isteğe bağlı)
İsteğe bağlı olarak, kullanılabilirlik grubu sorunlarını giderirken kök neden teşhisine yardımcı olması için Always On Availability Group genişletilmiş olaylarını etkinleştirin. SQL Server'ın her örneğinde aşağıdaki komutu çalıştırın:
ALTER EVENT SESSION AlwaysOn_health ON SERVER
WITH
(
STARTUP_STATE = ON
);
GO
Birincil VM'de sertifika oluşturma
Aşağıdaki Transact-SQL betiği bir ana anahtar ve bir sertifika oluşturur. Ardından sertifikayı yedekler ve dosyanın güvenliğini özel bir anahtarla sağlar. Betiği güçlü parolalarla güncelleştirin. Birincil SQL Server örneğine bağlanın ve aşağıdaki Transact-SQL betiğini çalıştırın:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>';
CREATE CERTIFICATE dbm_certificate
WITH SUBJECT = 'dbm';
BACKUP CERTIFICATE dbm_certificate TO FILE = '/var/opt/mssql/data/dbm_certificate.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
ENCRYPTION BY PASSWORD = '<private-key-password>'
);
Bu noktada, birincil SQL Server replikası /var/opt/mssql/data/dbm_certificate.cer konumunda bir sertifikaya ve var/opt/mssql/data/dbm_certificate.pvk konumunda bir özel anahtara sahiptir. Bu iki dosyayı kullanılabilirlik çoğaltmalarını barındıran tüm sunucularda aynı konuma kopyalayın.
mssql kullanıcısını kullanarak veya mssql kullanıcısına bu dosyalara erişim izni vererek.
Örneğin, kaynak sunucuda aşağıdaki komut dosyaları hedef makineye kopyalar.
node2 değerleri ikincil SQL Server örneğini çalıştıran konağın adıyla değiştirin. Sertifikayı yalnızca yapılandırma çoğaltması üzerinde de kopyalayın ve bu düğümde aşağıdaki komutları da çalıştırın.
cd /var/opt/mssql/data
scp dbm_certificate.* root@<node2>:/var/opt/mssql/data/
SQL Server'ın ikincil örneğini ve yalnızca yapılandırma kopyasını çalıştıran ikincil VM'lerde, mssql kullanıcısının kopyalanan sertifikaya sahip olabilmesi için aşağıdaki komutları çalıştırın:
cd /var/opt/mssql/data
chown mssql:mssql dbm_certificate.*
İkincil sunucularda sertifika oluşturma
Aşağıdaki Transact-SQL betiği, birincil SQL Server çoğaltması üzerinde oluşturduğunuz yedekten bir ana anahtar ve sertifika oluşturur. Betiği güçlü parolalarla güncelleştirin. Şifre çözme parolası, önceki adımda .pvk dosyasını oluşturmak için kullandığınız parolayla aynıdır. Sertifikayı oluşturmak için, yalnızca yapılandırma amaçlı çoğaltma dışında tüm ikincil sunucularda aşağıdaki betiği çalıştırın:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>';
CREATE CERTIFICATE dbm_certificate
FROM FILE = '/var/opt/mssql/data/dbm_certificate.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
DECRYPTION BY PASSWORD = '<private-key-password>'
);
Önceki örnekte, <private-key-password>'ı ana çoğaltmadaki sertifikayı oluştururken kullandığınız parolayla değiştirin.
Çoğaltmalarda veritabanı yansıtma uç noktalarını oluşturun
Birincil ve ikincil çoğaltmalarda aşağıdaki komutları çalıştırarak veritabanı yansıtma uç noktalarını oluşturun:
CREATE ENDPOINT [hadr_endpoint]
AS TCP
(
LISTENER_PORT = 5022
)
FOR DATABASE_MIRRORING
(
ROLE = WITNESS,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
ALTER ENDPOINT [hadr_endpoint]
STATE = STARTED;
Uyarı
5022, veritabanı yansıtma uç noktası için kullanılan standart bağlantı noktasıdır, ancak bunu kullanılabilir herhangi bir bağlantı noktasıyla değiştirebilirsiniz.
Yalnızca yapılandırma amaçlı çoğaltmada, aşağıdaki komutu kullanarak veritabanı yansıtma uç noktasını oluşturun. Buradaki Rolün değerinin olarak ayarlandığına WITNESSdikkat edin. Bu değer yalnızca yapılandırma amaçlı çoğaltma için olması gereken değerdir.
CREATE ENDPOINT [hadr_endpoint]
AS TCP
(
LISTENER_PORT = 5022
)
FOR DATABASE_MIRRORING
(
ROLE = WITNESS,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
ALTER ENDPOINT [hadr_endpoint]
STATE = STARTED;
Kullanılabilirlik grubu oluşturma
Birincil çoğaltma örneğinde aşağıdaki komutları çalıştırın. Bu komutlar, EXTERNAL ag1 içeren ve kullanılabilirlik grubuna veritabanı oluşturma izni veren adlı cluster_typebir kullanılabilirlik grubu oluşturur.
Aşağıdaki betikleri çalıştırmadan önce, <node1>, <node2> ve <node3> (yalnızca yapılandırma amaçlı çoğaltma) yer tutucularını, önceki adımlarda oluşturduğunuz VM'lerin adlarıyla değiştirin.
CREATE AVAILABILITY GROUP [ag1]
WITH (CLUSTER_TYPE = EXTERNAL)
FOR REPLICA ON
N'<node1>' WITH (
ENDPOINT_URL = N'tcp://<node1>:<5022>',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<node2>' WITH (
ENDPOINT_URL = N'tcp://<node2>:\<5022>',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<node3>' WITH (
ENDPOINT_URL = N'tcp://<node3>:<5022>',
AVAILABILITY_MODE = CONFIGURATION_ONLY
);
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
İkincil çoğaltmaları birleştirme
Tüm ikincil çoğaltmalarda aşağıdaki komutları çalıştırın. Bu komutlar ikincil çoğaltmaları ag1 birincil çoğaltmayla kullanılabilirlik grubuna ekler ve kullanılabilirlik grubuna ag1 veritabanı erişimi oluşturur.
ALTER AVAILABILITY GROUP [ag1]
JOIN WITH (CLUSTER_TYPE = EXTERNAL);
GO
ALTER AVAILABILITY GROUP [ag1]
GRANT CREATE ANY DATABASE;
GO
Kullanılabilirlik grubuna veritabanı ekleme
Birincil çoğaltmaya bağlanın ve aşağıdaki T-SQL komutlarını şu şekilde çalıştırın:
Kullanılabilirlik grubuna eklenecek olan adlı
db1örnek bir veritabanı oluşturun.CREATE DATABASE [db1]; GOVeritabanının kurtarma modelini dolu olarak ayarlayın. Kullanılabilirlik grubundaki tüm veritabanları tam kurtarma modeli gerektirir.
ALTER DATABASE [db1] SET RECOVERY FULL; GOVeritabanını yedekleyin. Veritabanı, kullanılabilirlik grubuna ekleyebilmeniz için en az bir tam yedekleme gerektirir.
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak'; GOVeritabanını tam kurtarma modeline ayarlayın.
ALTER DATABASE [db1] SET RECOVERY FULL; GOVeritabanını diske yedekleme
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak'; GOVeritabanını
db1AG'ye ekleyin.ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1];
Önceki adımları başarıyla tamamladıktan sonra, bir ag1 kullanılabilirlik grubunun oluşturulduğunu ve üç VM'lerin, bir birincil kopya, bir ikincil kopya ve sadece yapılandırma amaçlı bir kopya olarak eklendiğini görebilirsiniz.
ag1 bir veritabanı içerir.
SQL Server kullanılabilirlik grubu iş yükünü dağıtma (HPE Küme Yöneticisi)
HPE Serviceguard'ta, Serviceguard küme yöneticisi kullanıcı arabirimi aracılığıyla kullanılabilirlik grubuna SQL Server iş yükünü dağıtın.
Kullanılabilirlik grubu iş yükünü dağıtın ve Serviceguard yöneticisi grafik kullanıcı arabirimini kullanarak Serviceguard kümesi aracılığıyla yüksek kullanılabilirlik (HA), olağanüstü durum kurtarma (DR) etkinleştirin. Always On Kullanılabilirlik Grupları için Linux üzerinde Microsoft SQL Server'ı koruma bölümüne bakın.
Azure portalında yük dengeleyici oluşturma
Azure Bulut'taki Dağıtımlar için Linux için HPE Serviceguard, geleneksel IP adreslerinin yerine birincil replik ile istemci bağlantılarını etkinleştirmek için bir yük dengeleyiciye gereksinim duyar.
Azure portalında Serviceguard küme düğümlerini veya sanal makineleri içeren kaynak grubunu açın.
Kaynak grubunda Ekle'yi seçin.
"Yük dengeleyici" araması yapın ve arama sonuçlarında Microsoft tarafından yayımlanan Load Balancer'ı seçin.
Load Balancer bölmesinde Oluştur'u seçin.
Yük dengeleyiciyi aşağıdaki gibi yapılandırın:
Ayarlar Değer İsim Yük dengeleyici adı. Örneğin, SQLAvailabilityGroupLB.Türü Dahili SKU Temel veya Standart Sanal ağ VM çoğaltmaları için kullanılan sanal ağ alt ağ SQL Server örneklerinin barındırıldığı alt ağ IP Adresi Ataması Statik Özel IP adresi Alt ağ içinde özel IP oluşturma Abonelik İlgili aboneliği seçin Kaynak Grubu İlgili kaynak grubunu seçin Yer SQL düğümleri ile aynı konumu seçin
Arka uç havuzunu yapılandırın
Arka uç havuzu, Serviceguard kümesinin yapılandırıldığı iki örneğin adresleridir.
- Kaynak grubunuzda, oluşturduğunuz yük dengeleyiciyi seçin.
- Arka uç adres havuzu oluşturmak için Ayarlar > Arka uç havuzları'na gidin ve Ekle'yi seçin.
- Arka uç havuzu ekle bölümünde, Ad'ın altında arka uç havuzu için bir ad yazın.
- İlişkili'nin altında Sanal makine'yi seçin.
- Ortamdaki sanal makineyi seçin ve uygun IP adresini her seçimle ilişkilendirin.
- Add (Ekle) seçeneğini belirleyin.
Yoklama oluşturma
Azure'ın hangi Serviceguard kümesi düğümünün ana replikası olduğunu doğrulamak için kullanılan algılama yöntemini tanımlar. Azure, araştırmayı oluştururken tanımladığınız bir bağlantı noktasındaki IP adresine göre hizmeti yoklar.
Yük dengeleyici ayarları bölmesinde Sistem durumu yoklamaları'nı seçin.
Sistem durumu yoklamaları bölmesinde Ekle'yi seçin.
Araştırmayı yapılandırmak için aşağıdaki değerleri kullanın:
Ayarlar Değer İsim Probeyi temsil eden ad. Örneğin, SQLAGPrimaryReplicaProbe.Protokol TCP Port Kullanılabilir herhangi bir bağlantı noktasını kullanabilirsiniz. Örneğin, 59999. Aralık 5 Sağlıksız durum eşiği 2 Tamam'ı seçin.
Tüm sanal makinelerinizde oturum açın ve aşağıdaki komutları kullanarak yoklama bağlantı noktasını açın:
sudo firewall-cmd --zone=public --add-port=59999/tcp --permanent sudo firewall-cmd --reload
Azure, sondayı oluşturur ve ardından kullanılabilirlik grubunun birincil çoğaltma örneğinin çalıştığı Serviceguard düğümünü test etmek için kullanır. Serviceguard kümesinde AG'yi dağıtmak için gereken yapılandırılan portu (59999) hatırlayın.
Yük dengeleme kurallarını ayarlama
Yük dengeleme kuralları, yük dengeleyicinin trafiği kümedeki birincil replikası olan Serviceguard düğümüne nasıl yönlendirdiğini yapılandırır. Bu yük dengeleyici için doğrudan sunucu dönüşünü etkinleştirin, çünkü Serviceguard kümesi düğümlerinden yalnızca biri aynı anda ana replik olabilir.
Yük dengeleyici ayarları bölmesinde Yük dengeleme kuralları'nı seçin.
Yük dengeleme kuralları bölmesinde Ekle'yi seçin.
Aşağıdaki ayarları kullanarak yük dengeleme kuralını yapılandırın:
Ayarlar Değer İsim Yük dengeleme kurallarını temsil eden ad. Örneğin, SQLAGPrimaryReplicaListener.Protokol TCP Port 1433 Arka uç bağlantı noktası 1433. Bu kural Kayan IP kullandığından bu değer yoksayılır. Yoklama Bu yük dengeleyici için oluşturduğunuz yoklamanın adını kullanın. Oturum kalıcılığı Hiç kimse Boşta kalma zaman aşımı (dakika) 4 Kayan IP Etkinleştirildi Tamam'ı seçin.
Azure, yük dengeleme kuralını yapılandırıyor. Yük dengeleyici artık trafiği kümedeki birincil çoğaltma örneği olan Serviceguard düğümüne yönlendirecek şekilde yapılandırıldı.
Serviceguard kümesinde AG'yi dağıtmak için gereken yük dengeleyicinin ön uç IP adresini "LbReadWriteIP" olarak not alın.
Bu noktada, kaynak grubunun tüm Serviceguard düğümlerine bağlanan bir yük dengeleyicisi vardır. Yük dengeleyici, istemcilerin kümedeki birincil çoğaltma örneğine bağlanması için bir IP adresi de içerir, böylece birincil çoğaltma olan tüm makineler kullanılabilirlik grubu isteklerine yanıt verebilir.
Otomatik yük devretmeyi gerçekleştirin ve düğümü kümeye yeniden katın.
Otomatik yük devretme testi için, birincil replikanın (güç kapatma yoluyla) aniden kullanılamaz hale gelmesine neden olarak birincil düğümün beklenmedik şekilde devre dışı kalmasını taklit edebilirsiniz. Beklenen davranış:
Küme yöneticisi, kullanılabilirlik grubundaki ikincil çoğaltmalardan birini birincil olarak terfi ettirir.
Başarısız olan birincil çoğaltma yeniden başlatıldıktan sonra kümeye otomatik olarak katılır. Küme yöneticisi bunu ikincil bir replika olarak yükseltir.
HPE Serviceguard için Yük devretme hazırlığı için kurulumu test etme bölümüne bakın