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.
Dağıtılmış kullanılabilirlik grubu oluşturmak için her biri kendi dinleyicisine sahip iki kullanılabilirlik grubu oluşturmanız gerekir. Ardından bu kullanılabilirlik gruplarını dağıtılmış bir kullanılabilirlik grubu halinde birleştirirsiniz. Aşağıdaki adımlar Transact-SQL'de temel bir örnek sağlar. Bu örnek kullanılabilirlik grupları ve dinleyiciler oluşturmanın tüm ayrıntılarını kapsamaz; bunun yerine, temel gereksinimleri vurgulama üzerine odaklanır.
Dağıtılmış kullanılabilirlik gruplarına teknik bir genel bakış için bkz. Dağıtılmış kullanılabilirlik grupları.
Önkoşullar
Dağıtılmış bir kullanılabilirlik grubu yapılandırmak için aşağıdakilere sahip olmanız gerekir:
- Desteklenen bir SQL Serversürümü.
Not
Azure VM'de SQL Server'ınızdaki kullanılabilirlik grubunuz için dinleyiciyi dağıtılmış ağ adı (DNN) kullanarak yapılandırdıysanız, kullanılabilirlik grubunuzun üzerinde dağıtılmış bir kullanılabilirlik grubu yapılandırmak desteklenmez. Daha fazla bilgi edinmek için bkz. AZURE VM'de SQL Server'ın AG ve DNN dinleyicisi ile birlikte çalışabilirlik özelliğini
İzinler
Sunucuda bir kullanılabilirlik grubu oluşturmak ve dağıtılmış bir kullanılabilirlik grubuna yük devretmek için sysadmin izni gerektirir.
Veritabanı yansıtma uç noktalarını tüm IP adreslerini dinleyecek şekilde ayarlama
Veritabanı yansıtma uç noktalarının dağıtılmış kullanılabilirlik grubundaki farklı kullanılabilirlik grupları arasında iletişim kuraadığından emin olun. Bir kullanılabilirlik grubu veritabanı yansıtma uç noktasında belirli bir ağa ayarlanırsa, dağıtılmış kullanılabilirlik grubu düzgün çalışmaz. Dağıtılmış kullanılabilirlik grubunda bir çoğaltma barındıran her sunucuda, veritabanı yansıtma uç noktasını tüm IP adreslerini (LISTENER_IP = ALL ) dinleyecek şekilde ayarlayın.
Tüm IP adreslerini dinleyecek bir veritabanı yansıtma uç noktası oluşturun.
Örneğin aşağıdaki betik, TCP bağlantı noktası 5022'de tüm IP adreslerini dinleyen yeni bir veritabanı yansıtma uç noktası oluşturur.
CREATE ENDPOINT [aodns-hadr]
STATE = STARTED
AS TCP
(
LISTENER_PORT = 5022,
LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING
(
ROLE = ALL,
AUTHENTICATION = WINDOWS NEGOTIATE,
ENCRYPTION = REQUIRED ALGORITHM AES
);
GO
Var olan veritabanı yansıtma uç noktasını tüm IP adreslerini dinleyecek şekilde değiştirme
Örneğin, aşağıdaki betik, mevcut bir veritabanı yansıtma uç noktasını, tüm IP adreslerini dinleyecek şekilde değiştirmektedir.
ALTER ENDPOINT [aodns-hadr]
AS TCP
(
LISTENER_IP = ALL
);
GO
İlk kullanılabilirlik grubu oluşturma
İlk kümede birincil kullanılabilirlik grubunu oluşturma
İlk Windows Server Yük Devretme Kümesinde (WSFC) bir kullanılabilirlik grubu oluşturun. Bu örnekte, kullanılabilirlik grubu ag1veritabanı için db1 olarak adlandırılmıştır. Birincil kullanılabilirlik grubunun birincil çoğaltması, bir dağıtılmış kullanılabilirlik grubunda genel birincil olarak bilinir. Sunucu1, bu örnekteki genel birincildir.
CREATE AVAILABILITY GROUP [ag1]
FOR DATABASE db1
REPLICA ON N'server1' WITH (ENDPOINT_URL = N'TCP://server1.contoso.com:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC),
N'server2' WITH (ENDPOINT_URL = N'TCP://server2.contoso.com:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC);
GO
Not
Yukarıdaki örnekte, SEEDING_MODE hem çoğaltmalar hem de dağıtılmış kullanılabilirlik grubu için otomatik olarak ayarlanır. Bu yapılandırma, birincil veritabanının el ile yedeklenip geri yüklenmesi gerekmeden ikincil çoğaltmaları ve ikincil kullanılabilirlik grubunu otomatik olarak doldurulacak şekilde ayarlar.
İkincil çoğaltmaları birincil kullanılabilirlik grubuna ekleme
İkincil çoğaltmalar, ALTER AVAILABILITY GROUP komutu ve JOIN seçeneği ile kullanılabilirlik grubuna dahil edilmelidir. Bu örnekte otomatik tohumlama kullanıldığından, ALTER AVAILABILITY GROUP ifadesini, GRANT CREATE ANY DATABASE seçeneğiyle çağırmalısınız. Bu ayar, kullanılabilirlik grubunun veritabanını oluşturmasını ve birincil çoğaltmadan otomatik olarak dağıtmaya başlamasını sağlar.
Bu örnekte, aşağıdaki komutlar server2 kullanılabilirlik grubuna katılmak için ag1ikincil çoğaltmada çalıştırılır. Daha sonra kullanılabilirlik grubunun ikincil grupta veritabanı oluşturmasına izin verilir.
ALTER AVAILABILITY GROUP [ag1] JOIN
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE
GO
Not
Kullanılabilirlik grubu ikincil çoğaltmada bir veritabanı oluşturduğunda, veritabanı sahibini ALTER AVAILABILITY GROUP deyimini çalıştıran hesap olarak ayarlar ve herhangi bir veritabanı oluşturma izni verir. Tam bilgi için bkz. kullanılabilirlik grubuna ikincil çoğaltmada veritabanı oluşturma izni verme.
Birincil kullanılabilirlik grubu için dinleyici oluşturma
Ardından ilk WSFC'de birincil kullanılabilirlik grubu için bir dinleyici ekleyin. Bu örnekte, dinleyici ag1-listenerolarak adlandırılmıştır. Dinleyici oluşturma hakkında ayrıntılı yönergeler için bkz. Kullanılabilirlik Grubu Dinleyicisi Oluşturma veya Yapılandırma (SQL Server).
ALTER AVAILABILITY GROUP [ag1]
ADD LISTENER 'ag1-listener' (
WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) ,
PORT = 60173);
GO
İkinci kullanılabilirlik grubu oluşturma
ardından ikinci WSFC'de ag2ikinci bir kullanılabilirlik grubu oluşturun. Bu durumda veritabanı, birincil kullanılabilirlik grubundan otomatik olarak dağıtıldığı için belirtilmez. Dağıtılmış bir kullanılabilirlik grubunda, ikincil kullanılabilirlik grubunun birincil kopyası ileticisi olarak bilinir. Bu örnekte, iletici sunucu3'dür.
CREATE AVAILABILITY GROUP [ag2]
FOR
REPLICA ON N'server3' WITH (ENDPOINT_URL = N'TCP://server3.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC),
N'server4' WITH (ENDPOINT_URL = N'TCP://server4.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC);
GO
Not
- İkincil kullanılabilirlik grubu aynı veritabanı yansıtma uç noktasını kullanmalıdır (bu örnekte 5022 numaralı bağlantı noktasında). Aksi takdirde, yerel yük devretmeden sonra replikasyon durur.
- Altta yatan kullanılabilirlik grupları aynı kullanılabilirlik modunda olmalıdır, yani her iki kullanılabilirlik grubu da ya senkron taahhüt modunda ya da asenkron taahhüt modunda olmalıdır. Hangisini kullanacağınızdan emin değilseniz, yük devretmeye hazır olana kadar her ikisini de zaman uyumsuz işleme moduna ayarlayın.
İkincil çoğaltmaları ikincil kullanılabilirlik grubuna ekleme
Bu örnekte, aşağıdaki komutlar server4 kullanılabilirlik grubuna katılmak için ag2ikincil çoğaltmada çalıştırılır. Daha sonra kullanılabilirlik grubunun otomatik tohum oluşturmayı desteklemek için ikincilde veritabanları oluşturmasına izin verilir.
ALTER AVAILABILITY GROUP [ag2] JOIN
ALTER AVAILABILITY GROUP [ag2] GRANT CREATE ANY DATABASE
GO
İkincil kullanılabilirlik grubu için dinleyici oluşturma
Ardından ikinci WSFC'ye ikincil kullanılabilirlik grubu için bir dinleyici ekleyin. Bu örnekte, dinleyici ag2-listenerolarak adlandırılmıştır. Dinleyici oluşturma hakkında ayrıntılı yönergeler için bkz. Kullanılabilirlik Grubu Dinleyicisi Oluşturma veya Yapılandırma (SQL Server).
ALTER AVAILABILITY GROUP [ag2]
ADD LISTENER 'ag2-listener' ( WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , PORT = 60173);
GO
İlk kümede dağıtılmış kullanılabilirlik grubu oluşturma
İlk WSFC'de bir dağıtılmış kullanılabilirlik grubu oluşturun (bu örnekte distributedAG adlı).
CREATE AVAILABILITY GROUP komutunu DISTRIBUTED seçeneğiyle kullanın.
Otomatik dağıtım kullanarak dağıtılmış kullanılabilirlik grubunuzu oluşturmak için aşağıdaki Transact-SQL kodunu kullanın:
CREATE AVAILABILITY GROUP [distributedAG]
WITH (DISTRIBUTED)
AVAILABILITY GROUP ON
'ag1' WITH
(
LISTENER_URL = 'tcp://ag1-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'ag2' WITH
(
LISTENER_URL = 'tcp://ag2-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
GO
Not
LISTENER_URL, her bir kullanılabilirlik grubu için dinleyiciyi ve bu grupların veritabanı yansıtma uç noktasını tanımlar. Bu örnekte bağlantı noktası 5022 (dinleyiciyi oluşturmak için kullanılan bağlantı noktası 60173 değil). Örneğin Azure'da yük dengeleyici kullanıyorsanız dağıtılmış kullanılabilirlik grubu bağlantı noktası için bir yük dengeleme kuralı ekleyin. SQL Server örnek bağlantı noktasına ek olarak dinleyici bağlantı noktası için kuralı ekleyin.
İleticiye otomatik tohumlama işlemini iptal etme
herhangi bir nedenle, iki kullanılabilirlik grubu eşitlenmeden önce iletici
-- Cancel automatic seeding. Connect to global primary but specify DAG AG2
ALTER AVAILABILITY GROUP [distributedAG]
MODIFY
AVAILABILITY GROUP ON
'ag2' WITH
( SEEDING_MODE = MANUAL );
İkinci kümede dağıtılmış kullanılabilirlik grubuna katılma
Ardından ikinci WSFC'de dağıtılmış kullanılabilirlik grubuna katılın.
Otomatik tohumlama kullanarak dağıtılmış kullanılabilirlik grubunuza katılmak için aşağıdaki Transact-SQL kodunu kullanın:
ALTER AVAILABILITY GROUP [distributedAG]
JOIN
AVAILABILITY GROUP ON
'ag1' WITH
(
LISTENER_URL = 'tcp://ag1-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'ag2' WITH
(
LISTENER_URL = 'tcp://ag2-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
GO
İkinci kullanılabilirlik grubunun ikincil düğümündeki veritabanına katılın
İkinci kullanılabilirlik grubu otomatik tohumlama kullanacak şekilde ayarlandıysa, 2. adıma geçin.
İkinci kullanılabilirlik grubu el ile tohumlama kullanıyorsa, genel birincilde aldığınız yedeklemeyi ikinci kullanılabilirlik grubunun ikincil bölümüne geri yükleyin:
RESTORE DATABASE [db1] FROM DISK = '<full backup location>' WITH NORECOVERY; RESTORE LOG [db1] FROM DISK = '<log backup location>' WITH NORECOVERY;İkinci kullanılabilirlik grubunun ikincil yedeğindeki veritabanı geri yükleme durumunda olduğunda, veritabanını kullanılabilirlik grubuna manuel olarak birleştirmeniz gerekir.
ALTER DATABASE [db1] SET HADR AVAILABILITY GROUP = [ag2];
Dağıtılmış kullanılabilirlik grubuna yük devretme
SQL Server 2022 (16.x) REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT ayarı için dağıtılmış kullanılabilirlik grubu desteği sunulduğundan, dağıtılmış kullanılabilirlik yükünü devretme yönergeleri SQL Server 2022 ve sonraki sürümlerde SQL Server 2019 ve önceki sürümlerden farklıdır.
Dağıtılmış kullanılabilirlik grubu için desteklenen tek yük devretme türü, el ile başlatılan bir FORCE_FAILOVER_ALLOW_DATA_LOSS. Bu nedenle, veri kaybını önlemek için, yük devretmeyi başlatmadan önce verilerin iki çoğaltma arasında eşitlendiğinden emin olmak amacıyla (bu bölümde ayrıntılı olarak açıklanan) ek adımlar atmanız gerekir.
Veri kaybının kabul edilebilir olduğu bir acil durum durumunda, şunu çalıştırarak veri eşitlemesi yapmadan yük devretme başlatabilirsiniz:
ALTER AVAILABILITY GROUP distributedAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
İleticiye yük devretmek ve küresel birincile geri geçiş yapmak için aynı komutu kullanabilirsiniz.
- SQL Server 2022 ve daha sonraki sürümler
- SQL Server 2019 ve önceki
SQL Server 2022 (16.x) ve sonraki sürümlerde, veri kaybı olmamasını garanti etmek üzere tasarlanmış bir dağıtılmış kullanılabilirlik grubu için REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT ayarını yapılandırabilirsiniz. Bu grup yük devredildiğinde veri kaybı yaşanmaz. Bu ayar yapılandırıldıysa, dağıtılmış kullanılabilirlik grubunuzun yükünü devretmek için bu bölümdeki adımları izleyin.
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT ayarını kullanmak istemiyorsanız, SQL Server 2019 ve önceki sürümlerde dağıtılmış bir kullanılabilirlik grubunun yükünü devretme yönergelerini izleyin.
Not
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'ın 1 olarak ayarlanması, birincil çoğaltmanın işlemlerin ikincil çoğaltmada tamamlanmasını beklediği ve ardından birincil çoğaltmada tamamlandığı anlamına gelir, bu da performansı olumsuz etkileyebilir. Dağıtılmış kullanılabilirlik grubunun SQL Server 2022'de (16.x) eşitlenmesi için genel birincilde işlemleri sınırlamak veya durdurmak gerekli olmasa da, bunu yapmak hem kullanıcı işlemlerinin hem de REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT 1 olarak ayarlanmış dağıtılmış kullanılabilirlik grubu eşitlemesinin performansını artırabilir.
Veri kaybı olmamasını sağlama adımları
Veri kaybı olmadığından emin olmak için, aşağıdaki adımları izleyerek önce dağıtılmış kullanılabilirlik grubunu veri kaybı olmayacak şekilde yapılandırmanız gerekir:
- Yük devretmeye hazırlanmak için genel birincil ve yönlendiricinin
SYNCHRONOUS_COMMITmodunda olduğunu doğrulayın. Aksi takdirde,SYNCHRONOUS_COMMITaracılığıyla bunları olarak ayarlayın. - Dağıtılmış kullanılabilirlik grubunu hem genel birincil hem de iletici üzerinde ve zaman uyumlu bağlayıcı olarak ayarlayın.
- Dağıtılmış kullanılabilirlik grubu eşitlenene kadar bekleyin.
- Küresel birincilde,
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITkullanarak dağıtılmış kullanılabilirlik grubu ayarını 1 olarak ayarlayın. - Yerel AG'ler ve dağıtılmış kullanılabilirlik grubundaki tüm çoğaltmaların sağlıklı olduğunu ve dağıtılmış kullanılabilirlik grubununEŞİTLENMİŞ olduğunu doğrulayın.
- Genel birincil çoğaltmada, dağıtılmış kullanılabilirlik grubu rolünü
SECONDARYolarak ayarlayın; bu da dağıtılmış kullanılabilirlik grubunun kullanılamaz olmasını sağlar. - İleticide (hedeflenen yeni birincil sunucu), ALTER AVAILABILITY GROUP ile
FORCE_FAILOVER_ALLOW_DATA_LOSSkullanarak dağıtılmış kullanılabilirlik grubunu devretme işlemini gerçekleştirin. - Yeni ikincilde (önceki genel birincil çoğaltma) dağıtılmış kullanılabilirlik grubu
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT0 olarak ayarlayın. - İsteğe bağlı: Kullanılabilirlik grupları gecikmeye neden olan bir coğrafi uzaklıktaysa, kullanılabilirlik modunu
ASYNCHRONOUS_COMMITolarak değiştirin. Bu, gerekirse değişikliği ilk adımdan geri alır.
T-SQL örneği
Bu bölüm, Transact-SQL kullanarak distributedAG adlı dağıtılmış kullanılabilirlik grubunda yük devretmek için ayrıntılı bir örnekteki adımları sağlar. Örnek ortamda dağıtılmış kullanılabilirlik grubu için toplam 4 düğüm vardır. Genel birincil N1 ve N2 konak kullanılabilirlik grubu ag1 iken iletici N3 ve N4 konak kullanılabilirlik grubu ag2. Dağıtılmış kullanılabilirlik grubu distributedAG değişiklikleri ag1'den ag2'a iletir.
Dağıtılmış kullanılabilirlik grubunu oluşturan yerel kullanılabilirlik gruplarının önceliklerinde
SYNCHRONOUS_COMMITdoğrulamak için sorgu yapın. Aşağıdaki T-SQL'i doğrudan ileticide ve genel birincilde çalıştırın:SELECT DISTINCT ag.name AS [Availability Group], ar.replica_server_name AS [Replica], ar.availability_mode_desc AS [Availability Mode] FROM sys.availability_replicas AS ar INNER JOIN sys.availability_groups AS ag ON ar.group_id = ag.group_id INNER JOIN sys.dm_hadr_database_replica_states AS rs ON ar.group_id = rs.group_id AND ar.replica_id = rs.replica_id WHERE ag.name IN ('ag1', 'ag2') AND rs.is_primary_replica = 1 ORDER BY [Availability Group]; --if needed, to set a given replica to SYNCHRONOUS for node N1, default instance. If named, change from N1 to something like N1\SQL22 ALTER AVAILABILITY GROUP [testag] MODIFY REPLICA ON N'N1\SQL22' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);üzerinde hem genel birincil hem de iletici için aşağıdaki kodu çalıştırarak dağıtılmış kullanılabilirlik grubunu zaman uyumlu işlemeye ayarlayın.
-- sets the distributed availability group to synchronous commit ALTER AVAILABILITY GROUP [distributedAG] MODIFY AVAILABILITY GROUP ON 'ag1' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT), 'ag2' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);Not
Dağıtılmış kullanılabilirlik grubunda, iki kullanılabilirlik grubu arasındaki eşitleme durumu her iki çoğaltmanın kullanılabilirlik moduna bağlıdır. Zaman uyumlu işleme modu için hem geçerli birincil kullanılabilirlik grubunun hem de geçerli ikincil kullanılabilirlik grubunun
SYNCHRONOUS_COMMITkullanılabilirlik moduna sahip olması gerekir. Bu nedenle, bu betiği hem küresel birincil kopyada hem de ileticide çalıştırmanız gerekir.Dağıtılmış kullanılabilirlik grubunun durumu
SYNCHRONIZEDolarak değişene kadar bekleyin. Genel birincilde aşağıdaki sorguyu çalıştırın:-- Run this query on the Global Primary -- Check the results to see if synchronization_state_desc is SYNCHRONIZED SELECT ag.name, drs.database_id AS [Availability Group], db_name(drs.database_id) AS database_name, drs.synchronization_state_desc, drs.last_hardened_lsn FROM sys.dm_hadr_database_replica_states AS drs INNER JOIN sys.availability_groups AS ag ON drs.group_id = ag.group_id WHERE ag.name = 'distributedAG' ORDER BY [Availability Group];kullanılabilirlik grubunun senkronizasyon durum açıklaması
SYNCHRONIZEDolduğunda devam edin.SQL Server 2022 (16.x) ve üzeri için, genel birincilde aşağıdaki T-SQL'i kullanarak
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT1 olarak ayarlayın:ALTER AVAILABILITY GROUP distributedAG SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 1);Genel birincil ve iletici'i sorgulayarak kullanılabilirlik gruplarınızın tüm replikalarda sağlıklı durumda olduğunu doğrulayın.
SELECT ag.name AS [AG Name], db_name(drs.database_id) AS database_name, ar.replica_server_name AS [replica], drs.synchronization_state_desc, drs.last_hardened_lsn FROM sys.dm_hadr_database_replica_states AS drs INNER JOIN sys.availability_groups AS ag ON drs.group_id = ag.group_id INNER JOIN sys.availability_replicas AS ar ON drs.replica_id = ar.replica_id AND drs.replica_id = ar.replica_id WHERE ag.name IN ('ag1', 'ag2', 'distributedAG');Genel birincilde, dağıtılmış kullanılabilirlik grubu rolünü
SECONDARYolarak ayarlayın. Bu noktada, dağıtılmış kullanılabilirlik grubu şu anda mevcut değil. Bu adım tamamlandıktan sonra, kalan adımlar gerçekleştirilinceye kadar geriye dönemezsiniz.ALTER AVAILABILITY GROUP distributedAG SET (ROLE = SECONDARY);Kullanılabilirlik gruplarının geçişini yapmak ve dağıtılmış kullanılabilirlik grubunu yeniden çevrimiçi duruma getirmek için ileticide aşağıdaki sorguyu çalıştırarak genel birincilden yük devretme:
-- Run the following command on the forwarder, the SQL Server instance that hosts the primary replica of the secondary availability group. ALTER AVAILABILITY GROUP distributedAG FORCE_FAILOVER_ALLOW_DATA_LOSS;Bu adımdan sonra:
- Küresel birincil geçiş
N1'danN3'e gerçekleşiyor. - İletici
N3öğesindenN1öğesine geçiş yapar. - Dağıtılmış kullanılabilirlik grubu kullanılabilir.
- Küresel birincil geçiş
Yeni ileticide (önceki genel birincil,
N1), dağıtılmış kullanılabilirlik grubu özelliğini 0 olarak ayarlayarakREQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITtemizleyin:ALTER AVAILABILITY GROUP distributedAG SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0);İSTEĞE BAĞLI : Kullanılabilirlik grupları gecikmeye sebep olan coğrafi bir mesafedeyse, hem genel birincil hem de iletici üzerindekullanılabilirlik modunu olarak geri değiştirmeyi göz önünde bulundurun. Bu, gerekirse ilk adımda yapılan değişikliği geri alır. -- If applicable: sets the distributed availability group to asynchronous commit: ALTER AVAILABILITY GROUP distributedAG MODIFY AVAILABILITY GROUP ON 'ag1' WITH (AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT), 'ag2' WITH (AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT);
Dağıtılmış kullanılabilirlik grubunu kaldırma
Aşağıdaki Transact-SQL deyimi, distributedAGadlı bir dağıtılmış kullanılabilirlik grubunu kaldırır:
DROP AVAILABILITY GROUP distributedAG;
Yük devretme kümesi örneklerinde dağıtılmış kullanılabilirlik grubu oluşturma
Yük devretme kümesi örneğindeki (FCI) bir kullanılabilirlik grubu aracılığıyla dağıtılmış bir kullanılabilirlik grubu oluşturabilirsiniz. Bu durumda, kullanılabilirlik grubu dinleyicisi gerekmez. FCI örneğinin birincil çoğaltması için sanal ağ adını (VNN) kullanın. Aşağıdaki örnekte SQLFCIDAG adlı bir dağıtılmış kullanılabilirlik grubu gösterilmektedir. Kullanılabilirlik gruplarından biri SQLFCIAG'dir. SQLFCIAG'in iki FCI kopyası vardır. Birincil FCI çoğaltması için VNN SQLFCIAG-1'dir ve ikincil FCI çoğaltması için VNN SQLFCIAG-2'dir. Dağıtılmış kullanılabilirlik grubu olağanüstü durum kurtarma için SQLAG-DR'yi de içerir.
Her Zaman Açık dağıtılmış kullanılabilirlik grubu diyagramı.
Aşağıdaki DDL bu dağıtılmış kullanılabilirlik grubunu oluşturur:
CREATE AVAILABILITY GROUP [SQLFCIDAG]
WITH (DISTRIBUTED)
AVAILABILITY GROUP ON
'SQLFCIAG' WITH
(
LISTENER_URL = 'tcp://SQLFCIAG-1.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'SQLAG-DR' WITH
(
LISTENER_URL = 'tcp://SQLAG-DR.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
Dinleyici URL'si, birincil FCI örneğinin VNN'sidir.
Dağıtılmış kullanılabilirlik grubunda FCI'ye el ile yük devretme
FCI kullanılabilirlik grubuna elle yük devri yapmak için, dağıtılmış kullanılabilirlik grubunu dinleyici URL'sindeki değişikliği yansıtacak şekilde güncelleyin. Örneğin, aşağıdaki DDL'yi hem dağıtılmış AG'nin genel birincilinde hem de SQLFCIDAG'nin dağıtılmış AG yönlendiricisinde çalıştırın.
ALTER AVAILABILITY GROUP [SQLFCIDAG]
MODIFY AVAILABILITY GROUP ON
'SQLFCIAG' WITH
(
LISTENER_URL = 'tcp://SQLFCIAG-2.contoso.com:5022'
)