Aracılığıyla paylaş


ALTER KULLANILABILIRLIK GRUBU (Transact-SQL)

Şunlar için geçerlidir: SQL Server

SQL Server'da mevcut AlwaysOn kullanılabilirlik grubunu değiştirir. ALTER AVAILABILITY GROUP bağımsız değişkenlerinin çoğu yalnızca geçerli birincil çoğaltmayı destekler. Ancak JOIN, YÜK DEVRETME ve FORCE_FAILOVER_ALLOW_DATA_LOSS bağımsız değişkenleri yalnızca ikincil çoğaltmalarda desteklenir.

Transact-SQL söz dizimi kuralları

Sözdizimi

  
ALTER AVAILABILITY GROUP group_name   
  {  
     SET ( <set_option_spec> )   
   | ADD DATABASE database_name   
   | REMOVE DATABASE database_name  
   | ADD REPLICA ON <add_replica_spec>   
   | MODIFY REPLICA ON <modify_replica_spec>  
   | REMOVE REPLICA ON <server_instance>  
   | JOIN  
   | JOIN AVAILABILITY GROUP ON <add_availability_group_spec> [ ,...2 ]  
   | MODIFY AVAILABILITY GROUP ON <modify_availability_group_spec> [ ,...2 ]  
   | GRANT CREATE ANY DATABASE  
   | DENY CREATE ANY DATABASE  
   | FAILOVER  
   | FORCE_FAILOVER_ALLOW_DATA_LOSS   
   | ADD LISTENER 'dns_name' ( <add_listener_option> )  
   | MODIFY LISTENER 'dns_name' ( <modify_listener_option> )  
   | RESTART LISTENER 'dns_name'  
   | REMOVE LISTENER 'dns_name'  
   | OFFLINE  
  }  
[ ; ]  
  
<set_option_spec> ::=   
    AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| SECONDARY | NONE }  
  | FAILURE_CONDITION_LEVEL  = { 1 | 2 | 3 | 4 | 5 }   
  | HEALTH_CHECK_TIMEOUT = milliseconds  
  | DB_FAILOVER  = { ON | OFF }   
  | DTC_SUPPORT  = { PER_DB | NONE }  
  | REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = { integer }
  | ROLE = SECONDARY
  | CLUSTER_CONNECTION_OPTIONS = 'key_value_pairs>[;...]'
  
<server_instance> ::=   
 { 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]' }  
  
<add_replica_spec>::=  
  <server_instance> WITH  
    (  
       ENDPOINT_URL = 'TCP://system-address:port',  
       AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY },  
       FAILOVER_MODE = { AUTOMATIC | MANUAL }   
       [ , <add_replica_option> [ ,...n ] ]  
    )   
  
  <add_replica_option>::=  
       SEEDING_MODE = { AUTOMATIC | MANUAL }  
     | BACKUP_PRIORITY = n  
     | SECONDARY_ROLE ( {   
            [ ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } ]   
        [,] [ READ_ONLY_ROUTING_URL = 'TCP://system-address:port' ]  
     } )  
     | PRIMARY_ROLE ( {   
            [ ALLOW_CONNECTIONS = { READ_WRITE | ALL } ]   
        [,] [ READ_ONLY_ROUTING_LIST = { ( '<server_instance>' [ ,...n ] ) | NONE } ]  
        [,] [ READ_WRITE_ROUTING_URL = 'TCP://system-address:port' ]
     } )  
     | SESSION_TIMEOUT = integer
  
<modify_replica_spec>::=  
  <server_instance> WITH  
    (    
       ENDPOINT_URL = 'TCP://system-address:port'   
     | AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }   
     | FAILOVER_MODE = { AUTOMATIC | MANUAL }   
     | SEEDING_MODE = { AUTOMATIC | MANUAL }   
     | BACKUP_PRIORITY = n  
     | SECONDARY_ROLE ( {   
          [ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL }  ] 
        | [READ_ONLY_ROUTING_URL = {'TCP://system-address:port' | NONE} ]  
          } )  
     | PRIMARY_ROLE ( {   
          [ALLOW_CONNECTIONS = { READ_WRITE | ALL }   ]
        | [READ_ONLY_ROUTING_LIST = { ( '<server_instance>' [ ,...n ] ) | NONE } ] 
        | [READ_WRITE_ROUTING_URL = { 'TCP://system-address:port' | NONE }  ]
          } )  
     | SESSION_TIMEOUT = seconds  
    )   
  
<add_availability_group_spec>::=  
 <ag_name> WITH  
    (  
       LISTENER_URL = 'TCP://system-address:port',  
       AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT },  
       FAILOVER_MODE = MANUAL,  
       SEEDING_MODE = { AUTOMATIC | MANUAL }  
    )  
  
<modify_availability_group_spec>::=  
 <ag_name> WITH  
    (  
       LISTENER = 'TCP://system-address:port'  
       | AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }  
       | SEEDING_MODE = { AUTOMATIC | MANUAL }  
    )  
  
<add_listener_option> ::=  
   {  
      WITH DHCP [ ON ( <network_subnet_option> ) ]  
    | WITH IP ( { ( <ip_address_option> ) } [ , ...n ] ) [ , PORT = listener_port ]  
   }  
  
  <network_subnet_option> ::=  
     'ipv4_address', 'ipv4_mask'    
  
  <ip_address_option> ::=  
     {   
        'four_part_ipv4_address', 'four_part_ipv4_mask'  
      | 'ipv6_address'  
     }  
  
<modify_listener_option>::=  
    {  
       ADD IP ( <ip_address_option> )   
     | PORT = listener_port  
     | REMOVE IP ( 'ipv4_address' | 'ipv6_address')
    }  
  

Tartışmalar

group_name

Yeni kullanılabilirlik grubunun adını belirtir. group_name geçerli bir SQL Server tanımlayıcısı olmalı ve WSFC kümesindeki tüm kullanılabilirlik gruplarında benzersiz olmalıdır.

AUTOMATED_BACKUP_PREFERENCE = { BİRİnCİl | SECONDARY_ONLY| İKINCIL | NONE }

Yedeklemelerin nerede gerçekleştirileceği seçilirken yedekleme işinin birincil çoğaltmayı nasıl değerlendirmesi gerektiğiyle ilgili bir tercih belirtir. Otomatik yedekleme tercihini hesaba katmak için belirli bir yedekleme işi betiği oluşturabilirsiniz. Tercihin SQL Server tarafından uygulanmadığını anlamak önemlidir, bu nedenle geçici yedeklemeler üzerinde hiçbir etkisi yoktur.

Yalnızca birincil çoğaltmada desteklenir.

Değerler aşağıdaki gibidir:

BİRİNCİL

Yedeklemelerin her zaman birincil çoğaltmada gerçekleşmesi gerektiğini belirtir. Bu seçenek, yedek ikincil çoğaltmada çalıştırıldığında desteklenmeyen değişiklik yedeklemeleri oluşturma gibi yedekleme özelliklerine ihtiyacınız varsa kullanışlıdır.

Önemli

İkincil veritabanlarını bir kullanılabilirlik grubuna hazırlamak için günlük gönderimini kullanmayı planlıyorsanız, tüm ikincil veritabanları hazırlanıp kullanılabilirlik grubuna katılana kadar otomatik yedekleme tercihini Birincil olarak ayarlayın.

SECONDARY_ONLY

Yedeklemelerin birincil çoğaltma üzerinde hiçbir zaman gerçekleştirilmemesi gerektiğini belirtir. Birincil replikalar çevrimiçi olan tek replikaysa, yedekleme gerçekleşmemelidir.

İKİNCİL

Birincil çoğaltmanın çevrimiçi tek çoğaltma olması dışında yedeklerin ikincil çoğaltmada gerçekleşmesi gerektiğini belirtir. Bu durumda, yedekleme birincil çoğaltmada gerçekleşmelidir. Bu, varsayılan davranıştır.

HİÇBİRİ

Yedekleme işlerinin, yedeklemeleri gerçekleştirecek replikayı seçerken kullanılabilirlik replikalarının rolünü yoksaymasını tercih ettiğinizi belirtir. Not yedekleme işleri, her kullanılabilirlik çoğaltmasının yedekleme önceliği gibi diğer faktörleri işletimsel durumu ve bağlı durumuyla birlikte değerlendirebilir.

Önemli

AUTOMATED_BACKUP_PREFERENCE ayarı zorunlu değildir. Bu tercihin yorumlanması, varsa belirli bir kullanılabilirlik grubundaki veritabanları için arka işlerde betik oluşturmanıza bağlıdır. Otomatik yedekleme tercihi ayarının geçici yedeklemeler üzerinde hiçbir etkisi yoktur. Daha fazla bilgi için bkz. Kullanılabilirlik Çoğaltmalarında Yedeklemeyi Yapılandırma (SQL Server).

Uyarı

Mevcut kullanılabilirlik grubunun otomatik yedekleme tercihini görüntülemek için, sys.availability_groups katalog görünümünün automated_backup_preference veya automated_backup_preference_desc sütununu seçin. Ayrıca, tercih edilen yedekleme çoğaltmasını belirlemek için sys.fn_hadr_backup_is_preferred_replica (Transact-SQL) kullanılabilir. Bu işlev, olduğunda AUTOMATED_BACKUP_PREFERENCE = NONEbile çoğaltmalardan en az biri için her zaman 1 döndürür.

FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }

Bu kullanılabilirlik grubu için otomatik yük devretmeyi tetikleyecek hata koşullarını belirtir. FAILURE_CONDITION_LEVEL grup düzeyinde ayarlanır, ancak yalnızca zaman uyumlu işleme kullanılabilirlik modu (AVAILABILITY_MODE SYNCHRONOUS_COMMIT = ) için yapılandırılmış kullanılabilirlik çoğaltmalarıyla ilgilidir. Ayrıca, hata koşulları yalnızca hem birincil hem de ikincil çoğaltmalar otomatik yük devretme modu (FAILOVER_MODE = AUTOMATIC) için yapılandırılmışsa ve ikincil çoğaltma şu anda birincil çoğaltmayla eşitlenmişse otomatik yük devretmeyi tetikleyebilir.

Yalnızca birincil çoğaltmada desteklenir.

Hata koşulu düzeyleri (1-5) en az kısıtlayıcı olan düzey 1'den en kısıtlayıcı düzey 5'e kadar değişir. Belirli bir koşul düzeyi, daha az kısıtlayıcı düzeylerin tümünü kapsar. Bu nedenle, en katı koşul düzeyi olan 5, daha az kısıtlayıcı dört koşul düzeyini (1-4), düzey 4'ü 1-3 düzeylerini vb. içerir. Aşağıdaki tabloda her düzeye karşılık gelen hata koşulu açıklanmaktadır.

Seviye Hata Durumu
1 Aşağıdakilerden herhangi biri gerçekleştiğinde otomatik yük devretmenin başlatılması gerektiğini belirtir:

SQL Server hizmeti çalışmıyor.

Sunucu örneğinden ACK alınmadığından WSFC kümesine bağlanmak için kullanılabilirlik grubunun kira süresi dolar. Daha fazla bilgi için bkz . Nasıl Çalışır: SQL Server AlwaysOn Kira Zaman Aşımı.
2 Aşağıdakilerden herhangi biri gerçekleştiğinde otomatik yük devretmenin başlatılması gerektiğini belirtir:

SQL Server örneği kümeye bağlanmaz ve kullanılabilirlik grubunun kullanıcı tarafından belirtilen HEALTH_CHECK_TIMEOUT eşiği aşılır.

Kullanılabilirlik çoğaltması başarısız durumda.
3 Yalnız bırakılmış spinlock'lar, ciddi yazma erişimi ihlalleri veya çok fazla döküm gibi kritik SQL Server iç hatalarında otomatik yük devretmenin başlatılması gerektiğini belirtir.

Bu, varsayılan davranıştır.
4 SQL Server iç kaynak havuzundaki kalıcı bellek dışı koşul gibi orta düzeydeki SQL Server iç hatalarında otomatik yük devretmenin başlatılması gerektiğini belirtir.
5 Aşağıdakiler dahil olmak üzere tüm uygun hata koşullarında otomatik yük devretmenin başlatılması gerektiğini belirtir:

SQL Altyapısı çalışan iş parçacıklarının tükenmesi.

Çözülemeyen bir kilitlenme algılanması.

Uyarı

SQL Server örneğinin istemci isteklerine yanıt vermemesi kullanılabilirlik gruplarıyla ilgili değildir.

FAILURE_CONDITION_LEVEL ve HEALTH_CHECK_TIMEOUT değerleri, belirli bir grup için esnek bir yük devretme ilkesi tanımlar. Bu esnek yük devretme ilkesi, otomatik yük devretmeye neden olması gereken koşullar üzerinde ayrıntılı denetim sağlar. Daha fazla bilgi için bkz. Kullanılabilirlik Grubunun (SQL Server) Otomatik Yük Devretmesi için Esnek Yük Devretme İlkesi.

HEALTH_CHECK_TIMEOUT = milisaniye

WSFC kümesi sunucu örneğinin yavaş olduğunu veya yanıt vermediğini varsaymadan önce sunucu durumu bilgilerini döndürmek için sp_server_diagnostics sistem saklı yordamının bekleme süresini (milisaniye olarak) belirtir. HEALTH_CHECK_TIMEOUT grup düzeyinde ayarlanır, ancak yalnızca otomatik yük devretme (AVAILABILITY_MODE SYNCHRONOUS_COMMIT = ) ile zaman uyumlu işleme kullanılabilirlik modu için yapılandırılmış kullanılabilirlik çoğaltmalarıyla ilgilidir. Ayrıca, sistem durumu denetimi zaman aşımı otomatik yük devretmeyi tetikleyebilir ancak hem birincil hem de ikincil çoğaltmalar otomatik yük devretme modu (FAILOVER_MODE = AUTOMATIC) için yapılandırılmışsa ve ikincil çoğaltma şu anda birincil çoğaltmayla eşitlenmişse.

Varsayılan HEALTH_CHECK_TIMEOUT değeri 30000 milisaniyedir (30 saniye). En düşük değer 15000 milisaniye (15 saniye) ve maksimum değer 4.294.967.295 milisaniyedir.

Yalnızca birincil çoğaltmada desteklenir.

Önemli

sp_server_diagnostics veritabanı düzeyinde sistem durumu denetimleri gerçekleştirmez.

DB_FAILOVER = { ON | KAPALI }

Birincil çoğaltmadaki bir veritabanı çevrimdışı olduğunda alınacak yanıtı belirtir. AÇI olarak ayarlandığında, kullanılabilirlik grubundaki bir veritabanının ONLINE dışında herhangi bir durumu otomatik yük devretmeyi tetikler. Bu seçenek KAPALI olarak ayarlandığında, otomatik yük devretmeyi tetiklemede yalnızca örneğin sistem durumu kullanılır.

Bu ayar hakkında daha fazla bilgi için bkz . Veritabanı Düzeyi Sistem Durumu Algılama Seçeneği

= DTC_SUPPORT { PER_DB | NONE }

Bu Kullanılabilirlik Grubu için dağıtılmış işlemlerin etkinleştirilip etkinleştirilmediğini belirtir. Dağıtılmış işlemler yalnızca SQL Server 2016'da (13.x) başlayan kullanılabilirlik grubu veritabanları için desteklenir ve veritabanları arası işlemler yalnızca SQL Server 2016 (13.x) SP2'de başlayarak desteklenir. PER_DB bu işlemler için destekle kullanılabilirlik grubunu oluşturur ve Kullanılabilirlik Grubu'ndaki veritabanlarını içeren veritabanları arası işlemleri otomatik olarak dağıtılmış işlemlere yükseltecektir. NONE , veritabanları arası işlemlerin dağıtılmış işlemlere otomatik olarak yükseltilmesini engeller ve veritabanını DTC'de kararlı bir RMID ile kaydetmez. Ayar kullanıldığında dağıtılmış işlemler engellenmez NONE , ancak veritabanı yük devretme ve otomatik kurtarma bazı durumlarda başarılı olmayabilir. Daha fazla bilgi için bkz. Always On Kullanılabilirlik Grupları ve Veritabanı Yansıtması (SQL Server) için Veritabanları Arası İşlemler ve Dağıtılmış İşlemler.

Uyarı

Sql Server 2016 (13.x) Service Pack 2'de kullanılabilirlik grubunun DTC_SUPPORT ayarını değiştirme desteği sunulmuştur. Bu seçenek önceki sürümlerle kullanılamaz. Bu ayarı SQL Server'ın önceki sürümlerinde değiştirmek için DROP ve CREATE kullanılabilirlik grubunu yeniden oluşturmanız gerekir.

Önemli

DTC'nin dağıtılmış işlem başına 32 liste sınırı vardır. Kullanılabilirlik grubundaki her veritabanı DTC ile ayrı olarak listelendiğinden, işleminiz 32'den fazla veritabanı içeriyorsa, SQL Server 33. veritabanını listelemeye çalıştığında aşağıdaki hatayı alabilirsiniz:

Enlist operation failed: 0x8004d101(XACT_E_TOOMANY_ENLISTMENTS). SQL Server could not register with Microsoft Distributed Transaction Coordinator (MS DTC) as a resource manager for this transaction. The transaction may have been stopped by the client or the resource manager.

SQL Server'daki dağıtılmış işlemler hakkında daha fazla ayrıntı için bkz . Dağıtılmış işlemler

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT

SQL Server 2017(14.x) ile kullanıma sunulmuştur. Birincil çoğaltma bir işlemi işlemeden önce işlemek için gereken en az sayıda zaman uyumlu ikincil çoğaltmayı ayarlar. SQL Server işlemlerinin işlem günlükleri en az ikincil çoğaltma sayısıyla güncelleştirilene kadar beklemesini garanti eder.

  • Varsayılan: 0. SQL Server 2016 (13.x) ile aynı davranışı sağlar.
  • En az: 0.
  • Maksimum: Çoğaltma sayısı eksi 1.

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, zaman uyumlu işleme modundaki çoğaltmalarla ilgilidir. Çoğaltmalar zaman uyumlu işleme modunda olduğunda, birincil çoğaltmada yazma işlemleri zaman uyumlu çoğaltmalarda yazılana kadar bekler ve çoğaltma veritabanı işlem günlüğüne kaydedilir. İkincil zaman uyumlu çoğaltmayı barındıran bir SQL Server yanıt vermeyi durdurursa, birincil çoğaltmayı barındıran SQL Server bu ikincil çoğaltmayı EŞITLENMEDİ olarak işaretler ve devam eder. Yanıt vermeyen veritabanı yeniden çevrimiçi olduğunda "eşitlenmedi" durumunda olur ve birincil veritabanı yeniden eşitlenene kadar çoğaltma iyi durumda değil olarak işaretlenir. Bu ayar, her işlemi en az sayıda çoğaltma işleyene kadar birincil çoğaltmanın devam etmemesi garanti eder. En az sayıda çoğaltma kullanılamıyorsa, birincil hatada işlemeler başarısız olur. Küme türü EXTERNAL için, kullanılabilirlik grubu bir küme kaynağına eklendiğinde ayar değiştirilir. Kullanılabilirlik grubu yapılandırmaları için bkz. Yüksek kullanılabilirlik ve veri koruması.

SQL Server 2022(16.x) sürümünden başlayarak, dağıtılmış bir kullanılabilirlik grubunda REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT ayarlayabilirsiniz. Bu ayar CREATE AVAILABILITY GROUP için desteklenmez. REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT ayarlamak için ALTER AVAILABILITY GROUP kullanabilirsiniz. Örneğin:

ALTER AVAILABILITY GROUP [<name>] 
  SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = <integer>);

Rol

Tek geçerli parametre 'SECONDARY' parametresidir ve bu SET seçeneği yalnızca Dağıtılmış Kullanılabilirlik Grupları'nda geçerlidir. Burada belgelendiği gibi dağıtılmış bir kullanılabilirlik grubunun yükünü devretmek için kullanılır: ALTER AVAILABILITY GROUP

CLUSTER_CONNECTION_OPTIONS

Şunlar için geçerlidir: SQL Server 2025 (17.x) ve sonraki sürümleri

CLUSTER_CONNECTION_OPTIONS Windows Server Yük Devretme Kümesi ile kullanılabilirlik grubu çoğaltmalarınız arasındaki iletişim için TLS 1.3 şifrelemesini zorlamak için yan tümcesini kullanın. Seçenekler, noktalı virgülle ayrılmış bir anahtar-değer çiftleri listesi olarak belirtilir. Anahtar-değer çiftleri, kullanılabilirlik grubu için bağlantı dizesi şifrelemesini yapılandırmak için kullanılır.

Varsayılan şifrelemeye geri dönmek için yan tümcesini CLUSTER_CONNECTION_OPTIONS boş bir dize olarak ayarlayın. SQL Server 2025 (17.x) varsayılan olarak Encrypt=Mandatory, TrustServerCertificate=Yes ve erişilebilirlik grubu replikalarına ve dinleyicilere bağlantılar için geçerlidir.

Daha fazla bilgi için katı şifreleme ve TDS 8.0ile bir kullanılabilirlik grubuna bağlanma'yı gözden geçirin.

Aşağıdaki tabloda, yan tümcesinde kullanabileceğiniz anahtar-değer çiftleri CLUSTER_CONNECTION_OPTIONS açıklanmaktadır:

Key Desteklenen Değerler Description
Encrypt Mandatory, Strict, Optional Kullanılabilirlik grubu için şifrelemenin nasıl zorunlu kılınmasını belirtir. Sunucu şifrelemeyi desteklemiyorsa bağlantı başarısız olur. Şifreleme olarak ayarlandıysa MandatoryTrustServerCertificate evet olarak ayarlanmalıdır. Şifreleme olarak ayarlanırsa StrictTrustServerCertificate yoksayılır.

Bu anahtar değer çifti gereklidir.
HostNameInCertificate Çoğaltma adı veya AG dinleyici adı Şifreleme için kullanılan sertifikada çoğaltma adını veya kullanılabilirlik grubu dinleyici adını belirtir. Bu değer, sertifikanın Konu Alternatif Adı'ndaki değerle eşleşmelidir. Sunucu adı sertifikada listeleniyorsa anahtar-değer çiftini HostNameInCertificate atlayabilirsiniz. Sunucu adı sertifikada listelenmiyorsa, sunucu adıyla anahtar-değer çiftini belirtmeniz HostNameInCertificate gerekir.

Bu anahtar değer çifti isteğe bağlıdır.*
TrustServerCertificate Yes, No yes Sürücünün sunucu TLS/SSL sertifikasını doğrulamadığını belirtmek için olarak ayarlayın. ise no, sürücü sertifikayı doğrular. Daha fazla bilgi için TDS 8.0'ı gözden geçirin.

Bu anahtar değer çifti isteğe bağlıdır.*
ServerCertificate Sertifikanızın yolu kullanmak HostNameInCertificateistemiyorsanız, sertifikanızın yolunu geçirebilirsiniz. Küme hizmeti hesabının verilen konumdan sertifikayı okuma izni olmalıdır.

Bu anahtar değer çifti isteğe bağlıdır.
CLUSTER_CONNECTION_OPTIONS Boş dize ('') Mevcut yapılandırmayı temizler ve ve Encrypt=Mandatoryvarsayılan şifreleme ayarlarına TrustServerCertificate=Yes geri döner.

Yan tümcesini kullanmayı öğrenmek için CLUSTER_CONNECTION_OPTIONS gözden geçirin.

VERITABANı database_name EKLEME

Kullanılabilirlik grubuna eklemek istediğiniz bir veya daha fazla kullanıcı veritabanının listesini belirtir. Bu veritabanları, geçerli birincil çoğaltmayı barındıran SQL Server örneğinde bulunmalıdır. Bir kullanılabilirlik grubu için birden çok veritabanı belirtebilirsiniz, ancak her veritabanı yalnızca bir kullanılabilirlik grubuna ait olabilir. Kullanılabilirlik grubunun destekleyebilecek veritabanlarının türü hakkında bilgi için bkz. Her Zaman Açık Kullanılabilirlik Grupları (SQL Server) için Önkoşullar, Kısıtlamalar ve Öneriler. Hangi yerel veritabanlarının zaten bir kullanılabilirlik grubuna ait olduğunu öğrenmek için sys.databases katalog görünümündeki replica_id sütununa bakın.

Yalnızca birincil çoğaltmada desteklenir.

Uyarı

Kullanılabilirlik grubunu oluşturduktan sonra, ikincil çoğaltmayı barındıran her sunucu örneğine bağlanmanız ve ardından her ikincil veritabanını hazırlamanız ve kullanılabilirlik grubuna eklemeniz gerekir. Daha fazla bilgi için bkz. Her Zaman Açık İkincil Veritabanında (SQL Server) Veri Taşımayı Başlatma.

VERITABANı database_name KALDıRMA

Belirtilen birincil veritabanını ve ilgili ikincil veritabanlarını kullanılabilirlik grubundan kaldırır. Yalnızca birincil çoğaltmada desteklenir.

Kullanılabilirlik grubundan kullanılabilirlik veritabanını kaldırdıktan sonra önerilen adımlar hakkında bilgi için bkz. Kullanılabilirlik Grubundan (SQL Server) Birincil Veritabanını Kaldırma.

ÇOĞALTMA EKLE

İkincil çoğaltmaları bir kullanılabilirlik grubunda barındırmak için bir ila sekiz SQL Server örneğini belirtir. Her çoğaltma, sunucu örneği adresi ve ardından bir WITH (...) yan tümcesi ile belirtilir.

Yalnızca birincil çoğaltmada desteklenir.

Her yeni ikincil çoğaltmayı kullanılabilirlik grubuna eklemeniz gerekir. Daha fazla bilgi için bu bölümün devamında yer alan JOIN seçeneğinin açıklamasına bakın.

<server_instance>

Bir çoğaltmanın konağı olan SQL Server örneğinin adresini belirtir. Adres biçimi, örneğin varsayılan örnek mi yoksa adlandırılmış örnek mi olduğuna ve tek başına bir örnek mi yoksa yük devretme kümesi örneği mi (FCI) olduğuna bağlıdır. Söz dizimi aşağıdaki gibidir:

{ 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]' }

Bu adresin bileşenleri aşağıdaki gibidir:

system_name

SQL Server'ın hedef örneğinin bulunduğu bilgisayar sisteminin NetBIOS adı. Bu bilgisayar bir WSFC düğümü olmalıdır.

FCI_network_name

SQL Server yük devretme kümesine erişmek için kullanılan ağ adı. Sunucu örneği SQL Server yük devretme iş ortağı olarak katılıyorsa bunu kullanın. Bir FCI sunucu örneğinde SELECT @@SERVERNAME yürütülürken 'FCI_network_name[\instance_name]' dizesinin tamamı (tam çoğaltma adıdır) döndürülür.

instance_name

system_name veya FCI_network_name tarafından barındırılan ve Always On özelliği etkinleştirilmiş bir SQL Server örneğinin adı. Varsayılan sunucu örneği için instance_name isteğe bağlıdır. Örnek adı büyük/küçük harfe duyarsız. Tek başına sunucu örneğinde, bu değer adı SELECT @@SERVERNAME yürütülerek döndürülen değerle aynıdır.

\

System_name veyaFCI_network_name ayırmak için yalnızca instance_name belirtirken kullanılan ayırıcı.

WSFC düğümleri ve sunucu örnekleri için önkoşullar hakkında bilgi için bkz. Always On Kullanılabilirlik Grupları (SQL Server) için Önkoşullar, Kısıtlamalar ve Öneriler.

ENDPOINT_URL = 'TCP:// system-address:port'

Eklediğiniz veya değiştirdiğiniz kullanılabilirlik çoğaltmasını barındıracak SQL Server örneğindeki veritabanı yansıtma uç noktasının URL yolunu belirtir.

ENDPOINT_URL ADD REPLICA ON yan tümcesinde ve MODIFY REPLICA ON yan tümcesinde isteğe bağlıdır. Daha fazla bilgi için bkz. Kullanılabilirlik Çoğaltması (SQL Server) Eklerken veya Değiştirirken Uç Nokta URL'sini Belirtme.

'TCP:// system-address:port'

Uç nokta URL'si veya salt okunur yönlendirme URL'si belirtmek için bir URL belirtir. URL parametreleri aşağıdaki gibidir:

sistem adresi

Hedef bilgisayar sistemini kesin olarak tanımlayan sistem adı, tam etki alanı adı veya IP adresi gibi bir dize.

bağlantı noktası

Sunucu örneğinin yansıtma uç noktasıyla ilişkili bağlantı noktası numarası (ENDPOINT_URL seçeneği için) veya sunucu örneğinin Veritabanı Altyapısı tarafından kullanılan bağlantı noktası numarası (READ_ONLY_ROUTING_URL seçeneği için).

AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }

Birincil çoğaltmanın işlemi belirli bir birincil veritabanına işleyebilmesi için birincil çoğaltmanın günlük kayıtlarının sağlamlaştırmasını (yazmasını) kabul etmesini beklemesi gerekip gerekmediğini belirtir. Aynı birincil çoğaltmadaki farklı veritabanlarındaki işlemler bağımsız olarak işlenebilir.

SYNCHRONOUS_COMMIT

Birincil çoğaltmanın bu ikincil çoğaltmada (zaman uyumlu işleme modu) sağlamlaştırılana kadar işlemleri işlemeyi bekleyeceğini belirtir. Birincil çoğaltma dahil olmak üzere en fazla üç çoğaltma için SYNCHRONOUS_COMMIT belirtebilirsiniz.

ASYNCHRONOUS_COMMIT

Birincil çoğaltmanın, bu ikincil çoğaltmanın günlüğü sağlamlaştırmasını beklemeden işlemleri işlediğini belirtir (zaman uyumlu işleme kullanılabilirlik modu). Birincil çoğaltma dahil olmak üzere en fazla beş kullanılabilirlik çoğaltması için ASYNCHRONOUS_COMMIT belirtebilirsiniz.

CONFIGURATION_ONLY

Birincil çoğaltmanın kullanılabilirlik grubu yapılandırma meta verilerini bu çoğaltmadaki ana veritabanına zaman uyumlu olarak işlediğini belirtir. Çoğaltma kullanıcı verileri içermez. Bu seçenek:

  • Express Edition dahil olmak üzere herhangi bir SQL Server sürümünde barındırılabilir.

  • CONFIGURATION_ONLY çoğaltmasının veri yansıtma uç noktasının türünde WITNESSolmasını gerektirir.

  • Değiştirilemez.

  • olduğunda CLUSTER_TYPE = WSFCgeçerli değildir.

    Daha fazla bilgi için bkz . Yalnızca yapılandırma çoğaltması.

AVAILABILITY_MODE ADD REPLICA ON yan tümcesinde ve MODIFY REPLICA ON yan tümcesinde isteğe bağlı olarak gereklidir. Daha fazla bilgi için bkz . Kullanılabilirlik Modları (AlwaysOn Kullanılabilirlik Grupları).

FAILOVER_MODE = { OTOMATIK | MANUAL }

Tanımladığınız kullanılabilirlik çoğaltmasının yük devretme modunu belirtir.

OTOMATİK

Otomatik yük devretmeyi etkinleştirir. OTOMATIK yalnızca AVAILABILITY_MODE = SYNCHRONOUS_COMMIT de belirtirseniz desteklenir. Birincil çoğaltma dahil olmak üzere üç kullanılabilirlik çoğaltması için OTOMATIK olarak belirtebilirsiniz.

Uyarı

  • SQL Server 2016'nın öncesinde, birincil çoğaltma dahil olmak üzere iki otomatik yük devretme çoğaltması ile sınırlıydınız.
  • SQL Server Yük Devretme Kümesi Örnekleri (FCI) kullanılabilirlik grupları tarafından otomatik yük devretmeyi desteklemez, bu nedenle FCI tarafından barındırılan tüm kullanılabilirlik çoğaltmaları yalnızca el ile yük devretme için yapılandırılabilir.

EL İLE

Veritabanı yöneticisi tarafından el ile yük devretmeyi veya zorlamalı el ile yük devretmeyi (zorlamalı yük devretme) etkinleştirir.

FAILOVER_MODE ADD REPLICA ON yan tümcesinde ve MODIFY REPLICA ON yan tümcesinde isteğe bağlı olarak gereklidir. Farklı koşullar altında desteklenen, veri kaybı olmadan el ile yük devretme ve zorlamalı yük devretme (olası veri kaybıyla) olmak üzere iki tür el ile yük devretme mevcuttur. Daha fazla bilgi için bkz. Yük Devretme ve Yük Devretme Modları (Always On Kullanılabilirlik Grupları)

SEEDING_MODE = { OTOMATIK | MANUAL }

İkincil çoğaltmanın başlangıçta nasıl dağıtılacağını belirtir.

OTOMATİK

Doğrudan tohumlamayı etkinleştirir. Bu yöntem, ikincil çoğaltmayı ağ üzerinden dağıtacaktır. Bu yöntem, çoğaltmadaki birincil veritabanının bir kopyasını yedeklemenizi ve geri yüklemenizi gerektirmez.

Uyarı

Doğrudan tohumlama için, ALTER AVAILABILITY GROUP komutunu HERHANGI Bir VERITABANı OLUŞTUR seçeneğiyle çağırarak her ikincil çoğaltmada veritabanı oluşturmaya izin vermelisiniz.

EL İLE

El ile tohumlama (varsayılan) belirtir. Bu yöntem, birincil çoğaltmada veritabanının yedeğini oluşturmanızı ve bu yedeklemeyi ikincil çoğaltmada el ile geri yüklemenizi gerektirir.

BACKUP_PRIORITY = n

Aynı kullanılabilirlik grubundaki diğer çoğaltmalara göre bu çoğaltmada yedekleme gerçekleştirme önceliğinizi belirtir. Değer, 0,.100 aralığındaki bir tamsayıdır. Bu değerler aşağıdaki anlamlara sahiptir:

  • 1..100, yedeklemeleri gerçekleştirmek için kullanılabilirlik çoğaltmasının seçilebileceğini belirtir. 1 en düşük önceliği, 100 ise en yüksek önceliği gösterir. BACKUP_PRIORITY = 1 ise, kullanılabilirlik çoğaltması yalnızca şu anda daha yüksek öncelikli kullanılabilirlik çoğaltmaları yoksa yedekleme gerçekleştirmek için seçilir.

  • 0, bu kullanılabilirlik çoğaltmasını yedekleme gerçekleştirmek için hiçbir zaman seçilmeyeceğini gösterir. Bu, örneğin, yedeklemelerin yük devretmesini asla istemediğiniz bir uzaktan kullanılabilirlik çoğaltması için kullanışlıdır.

Daha fazla bilgi için bkz . Etkin İkinciller: İkincil Çoğaltmalarda Yedekleme (Always On Kullanılabilirlik Grupları).

SECONDARY_ROLE ( ... )

Bu kullanılabilirlik çoğaltması ikincil role (ikincil çoğaltma olduğunda) sahipse geçerli olacak role özgü ayarları belirtir. Parantez içinde, ikincil rol seçeneklerinden birini veya her ikisini de belirtin. Her ikisini de belirtirseniz, virgülle ayrılmış bir liste kullanın.

İkincil rol seçenekleri şunlardır:

ALLOW_CONNECTIONS = { HAYIR | READ_ONLY | ALL }

İkincil rolü gerçekleştiren (yani ikincil çoğaltma olarak davranan) belirli bir kullanılabilirlik çoğaltmasının veritabanlarının istemcilerden gelen bağlantıları kabul edip etmeyeceğini belirtir. Bunlardan biri:

HAYIR

Bu çoğaltmanın ikincil veritabanlarına kullanıcı bağlantısına izin verilmez. Okuma erişimi sağlanmamıştır. Bu, varsayılan davranıştır.

READ_ONLY

Uygulama Amacı özelliğinin ReadOnly olarak ayarlandığı ikincil çoğaltmadaki veritabanlarına yalnızca bağlantılara izin verilir. Bu özellik hakkında daha fazla bilgi için bkz. SQL Server Yerel İstemcisi ile Bağlantı Dizesi Anahtar Sözcüklerini Kullanma.

HEPSİ

Salt okunur erişim için ikincil çoğaltmadaki veritabanlarına tüm bağlantılara izin verilir.

Daha fazla bilgi için bkz . Etkin İkinciller: Okunabilir İkincil Çoğaltmalar (AlwaysOn Kullanılabilirlik Grupları).

READ_ONLY_ROUTING_URL ='TCP:// system-address:port' | Hiç kimse

Okuma amacı bağlantı isteklerini bu kullanılabilirlik çoğaltmasına yönlendirmek için kullanılacak URL'yi belirtir. Bu, SQL Server Veritabanı Altyapısı'nın dinlediği URL'dir. Genellikle, SQL Server Veritabanı Altyapısı'nın varsayılan örneği TCP bağlantı noktası 1433'te dinler.

SQL Server 2025 (17.x) ile başlayarak, NONEREAD_ONLY_ROUTING_URL kullanılabilirlik replikası için belirtilen tek okuma yönlendirmesini geri alacak hedef olarak belirleyebilir ve trafiği varsayılan davranışa göre yönlendirebilirsiniz.

Adlandırılmış bir örnek için, sys.dm_tcp_listener_states dinamik yönetim görünümünün bağlantı noktasını ve type_desc sütunlarını sorgulayarak bağlantı noktası numarasını alabilirsiniz. Sunucu örneği Transact-SQL dinleyicisini (type_desc='TSQL') kullanır.

Kullanılabilirlik çoğaltması için salt okunur yönlendirme URL'sini hesaplama hakkında daha fazla bilgi için bkz. Always On için read_only_routing_url Hesaplama.

Uyarı

SQL Server'ın adlandırılmış bir örneği için, Transact-SQL dinleyicisi belirli bir bağlantı noktasını kullanacak şekilde yapılandırılmalıdır. Daha fazla bilgi için bkz. Belirli bir TCP Bağlantı Noktasında Dinleyecek Bir Sunucu Yapılandırma (SQL Server Configuration Manager).

PRIMARY_ROLE ( ... )

Bu kullanılabilirlik çoğaltması birincil role (birincil çoğaltma olduğunda) sahipse geçerli olacak role özgü ayarları belirtir. Parantez içinde birincil rol seçeneklerinden birini veya her ikisini de belirtin. Her ikisini de belirtirseniz, virgülle ayrılmış bir liste kullanın.

Birincil rol seçenekleri şunlardır:

ALLOW_CONNECTIONS = { READ_WRITE | TÜMÜ }

Birincil rolü gerçekleştiren (yani birincil çoğaltma görevi gören) belirli bir kullanılabilirlik çoğaltmasının veritabanlarının istemcilerden kabul edebilecekleri bağlantı türünü belirtir:

Okuma_Yazma

Uygulama Amacı bağlantı özelliğinin ReadOnly olarak ayarlandığı bağlantılara izin verilmez. Uygulama Amacı özelliği ReadWrite olarak ayarlandığında veya Uygulama Amacı bağlantı özelliği ayarlı değilse, bağlantıya izin verilir. Uygulama Amacı bağlantı özelliği hakkında daha fazla bilgi için bkz. SQL Server Yerel İstemcisi ile Bağlantı Dizesi Anahtar Sözcüklerini Kullanma.

HEPSİ

Birincil çoğaltmadaki veritabanlarına tüm bağlantılara izin verilir. Bu, varsayılan davranıştır.

READ_ONLY_ROUTING_LIST = { ('<server_instance>' [ ,... n ] ) | NONE }

İkincil rol altında çalışırken aşağıdaki gereksinimleri karşılayan bu kullanılabilirlik grubu için kullanılabilirlik çoğaltmalarını barındıran sunucu örneklerinin virgülle ayrılmış listesini belirtir:

  • Tüm bağlantılara veya salt okunur bağlantılara izin verecek şekilde yapılandırılmalıdır (yukarıdaki SECONDARY_ROLE seçeneğinin ALLOW_CONNECTIONS bağımsız değişkenine bakın).

  • Salt okunur yönlendirme URL'lerini tanımlamış olur (yukarıdaki SECONDARY_ROLE seçeneğinin READ_ONLY_ROUTING_URL bağımsız değişkenine bakın).

READ_ONLY_ROUTING_LIST değerleri aşağıdaki gibidir:

<server_instance>

İkincil rol altında çalışırken okunabilir bir ikincil çoğaltma olan bir kullanılabilirlik çoğaltmasının konağı olan SQL Server örneğinin adresini belirtir.

Okunabilir bir ikincil çoğaltma barındırabilecek tüm sunucu örneklerini belirtmek için virgülle ayrılmış bir liste kullanın. Salt okunur yönlendirme, sunucu örneklerinin listede belirtildiği sırayı izler. Çoğaltmanın ana bilgisayar sunucusu örneğini çoğaltmanın salt okunur yönlendirme listesine eklerseniz, bu sunucu örneğinin listenin sonuna yerleştirilmesi genellikle iyi bir uygulamadır; bu nedenle okuma amacı bağlantıları varsa ikincil bir çoğaltmaya gider.

SQL Server 2016(13.x) sürümünden başlayarak, okunabilir ikincil çoğaltmalar arasında okuma amacı isteklerinin yükünü dengeleyebilirsiniz. Bunu, çoğaltmaları salt okunur yönlendirme listesi içinde iç içe yerleştirilmiş bir parantez kümesine yerleştirerek belirtirsiniz. Daha fazla bilgi ve örnek için bkz. Salt okunur çoğaltmalar arasında yük dengelemeyi yapılandırma.

HİÇBİRİ

Bu kullanılabilirlik çoğaltması birincil çoğaltma olduğunda salt okunur yönlendirmenin desteklenmediğini belirtir. Bu, varsayılan davranıştır. MODIFY REPLICA ON ile kullanıldığında, bu değer varsa var olan bir listeyi devre dışı bırakır.

READ_WRITE_ROUTING_URL = 'TCP:// system-address:port' | Hiç kimse

Şunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümleri

Birincil rol altında çalışırken aşağıdaki gereksinimleri karşılayan bu kullanılabilirlik grubu için kullanılabilirlik çoğaltmalarını barındıran sunucu örneklerini belirtir:

  • Çoğaltma belirtimi PRIMARY_ROLE READ_WRITE_ROUTING_URL içerir.
  • Bağlantı dizesi, ApplicationIntent'i ReadWrite olarak tanımlayarak veya ApplicationIntent'i ayarlamayarak ve varsayılan değerin (ReadWrite) etkin olmasıyla ReadWrite'dir.

SQL Server 2025 (17.x) ile başlayarak, NONEREAD_WRITE_ROUTING_URL kullanılabilirlik replikası için belirtilen okuma-yazma yönlendirmesini geri alacak hedef olarak belirleyebilir ve trafiği varsayılan davranışa göre yönlendirebilirsiniz.

Daha fazla bilgi için bkz: İkincil kopyadan birincil kopyaya okuma/yazma bağlantı yönlendirmesi (Always On Kullanılabilirlik Grupları).

SESSION_TIMEOUT = saniye

Oturum zaman aşımı süresini saniye cinsinden belirtir. Bu seçeneği belirtmezseniz, varsayılan olarak süre 10 saniyedir. En düşük değer 5 saniyedir.

Önemli

Zaman aşımı süresini 10 saniye veya daha uzun tutmanızı öneririz.

Oturum zaman aşımı süresi hakkında daha fazla bilgi için bkz. AlwaysOn Kullanılabilirlik Gruplarına (SQL Server) Genel Bakış.

ÇOĞALTMAYı DEĞIŞTIR

Kullanılabilirlik grubunun çoğaltmalarından herhangi birini değiştirir. Değiştirilecek çoğaltmaların listesi, sunucu örneği adresini ve her çoğaltma için bir WITH (...) yan tümcesini içerir.

Yalnızca birincil çoğaltmada desteklenir.

ÇOĞALTMAYı KALDıR

Belirtilen ikincil çoğaltmayı kullanılabilirlik grubundan kaldırır. Geçerli birincil çoğaltma kullanılabilirlik grubundan kaldırılamaz. Kaldırıldığında, çoğaltma veri almayı durdurur. İkincil veritabanları kullanılabilirlik grubundan kaldırılır ve RESTOREING durumuna girer.

Yalnızca birincil çoğaltmada desteklenir.

Uyarı

Çoğaltma kullanılamıyor veya başarısız olduğunda kaldırırsanız, yeniden çevrimiçi olduğunda artık kullanılabilirlik grubuna ait olmadığını keşfeder.

BİRLEŞTİRMEK

Yerel sunucu örneğinin belirtilen kullanılabilirlik grubunda ikincil bir çoğaltma barındırmasına neden olur.

Yalnızca henüz kullanılabilirlik grubuna katılmamış ikincil bir çoğaltmada desteklenir.

Daha fazla bilgi için bkz. İkincil Çoğaltmayı Kullanılabilirlik Grubuna (SQL Server) Birleştirme.

Hata Durumunda Geçiş

Bağlı olduğunuz ikincil çoğaltmaya veri kaybı olmadan kullanılabilirlik grubunun el ile yük devretmesini başlatır. Birincil çoğaltmayı barındıracak çoğaltma yük devretme hedefidir. Yük devretme hedefi birincil rolü devralıp her veritabanının kopyasını kurtarır ve bunları yeni birincil veritabanları olarak çevrimiçi duruma getirir. Eski birincil çoğaltma eşzamanlı olarak ikincil role geçer ve veritabanları ikincil veritabanları haline gelir ve hemen askıya alınır. Potansiyel olarak, bu roller bir dizi hatayla ileri geri değiştirilebilir.

Yük devretme yalnızca şu anda birincil çoğaltmayla eşitlenmiş olan zaman uyumlu işleme ikincil çoğaltması için desteklenir. İkincil çoğaltmanın eşitlenmesi için, birincil çoğaltmanın da zaman uyumlu tamamlama modunda çalışıyor olması gerekir.

Bir kullanılabilirlik grubundaki iki SQL Server örneği için, birincil veya ikincil çoğaltmada yük devretme komutunu verebilirsiniz. Yönetilen Örnek bağlantısı aracılığıyla çoğaltılan örnekler için, yük devretme komutunun birincil çoğaltmada verilmesi gerekir.

Uyarı

  • Bir kullanılabilirlik grubu için, yük devretme hedefi komutu kabul eder etmez yük devretme komutu döndürülür. Ancak, kullanılabilirlik grubunun yük devretmesi tamamlandıktan sonra veritabanı kurtarma zaman uyumsuz olarak gerçekleşir.
  • Yönetilen Örnek bağlantısı yük devretme için, yük devretme komutu, kaynak ve hedefin rolleri değiştirdiği başarılı bir yük devretmenin ardından veya yük devretme önkoşul denetimleri başarısız olduktan sonra yük devretme komutu başarısız olursa geri döner.
  • Yük devretme komutu, iki SQL Server örneği arasında dağıtılmış bir kullanılabilirlik grubunun planlı yük devretmesi için kullanılamaz.

Planlı el ile yük devretme gerçekleştirmeye yönelik sınırlamalar, önkoşullar ve öneriler hakkında bilgi için bkz. Kullanılabilirlik Grubuna (SQL Server) El ile Planlı Yük Devretme Gerçekleştirme.

FORCE_FAILOVER_ALLOW_DATA_LOSS

Dikkat

Bazı veri kayıpları içerebilecek yük devretmeyi zorlamak kesinlikle bir olağanüstü durum kurtarma yöntemidir. Bu nedenle, yalnızca birincil çoğaltma artık çalışmıyorsa, veri kaybetme riskine hazırsanız ve hizmeti hemen kullanılabilirlik grubuna geri yüklemeniz gerekiyorsa yük devretmeyi zorlamanızı kesinlikle öneririz.

Yalnızca rolü SECONDARY veya RESOLVING durumunda olan bir çoğaltmada desteklenir. --Yük devretme komutu girdiğiniz çoğaltma, yük devretme hedefi olarak bilinir.

Olası veri kaybıyla birlikte kullanılabilirlik grubunun yük devretme hedefine yük devretmesini zorlar. Yük devretme hedefi birincil rolü devralıp her veritabanının kopyasını kurtarır ve bunları yeni birincil veritabanları olarak çevrimiçi duruma getirir. Kalan tüm ikincil çoğaltmalarda, el ile sürdürülene kadar her ikincil veritabanı askıya alınır. Eski birincil çoğaltma kullanılabilir olduğunda, ikincil role geçer ve veritabanları ikincil veritabanları askıya alınır.

Yönetilen Örnek bağlantısı aracılığıyla çoğaltılan örnekler için, komutun FORCE_FAILOVER_ALLOW_DATA_LOSS ikincil çoğaltmada (yük devretme hedefi) verilmesi gerekir.

Uyarı

Yük devretme komutu, yük devretme hedefi komutu kabul ettikçe hemen döndürür. Ancak, kullanılabilirlik grubunun yük devretmesi tamamlandıktan sonra veritabanı kurtarma zaman uyumsuz olarak gerçekleşir.

Yük devretmeyi zorlamaya yönelik sınırlamalar, önkoşullar ve öneriler ve zorlamalı yük devretmenin kullanılabilirlik grubundaki eski birincil veritabanları üzerindeki etkisi hakkında bilgi için bkz. Kullanılabilirlik Grubunda (SQL Server) El ile Zorlamalı Yük Devretme Gerçekleştirme.

DINLEYICI 'dns_name' EKLE ( <add_listener_option> )

Bu kullanılabilirlik grubu için yeni bir kullanılabilirlik grubu dinleyicisi tanımlar. Yalnızca birincil çoğaltmada desteklenir.

Önemli

İlk dinleyicinizi oluşturmadan önce , Kullanılabilirlik Grubu Dinleyicisi Oluşturma veya Yapılandırma (SQL Server) okumanızı kesinlikle öneririz.

Belirli bir kullanılabilirlik grubu için dinleyici oluşturduktan sonra aşağıdakileri yapmanızı kesinlikle öneririz:

  • Ağ yöneticinizden dinleyicinin IP adresini özel kullanım için ayırmasını isteyin.
  • Dinleyicinin DNS ana bilgisayar adını uygulama geliştiricilerine bu kullanılabilirlik grubuna istemci bağlantıları isteğinde bulunurken bağlantı dizelerinde kullanmaları için verin.

dns_name

Kullanılabilirlik grubu dinleyicisinin DNS ana bilgisayar adını belirtir. Dinleyicinin DNS adı etki alanında ve NetBIOS'ta benzersiz olmalıdır.

dns_name bir dize değeridir. Bu ad herhangi bir sırada yalnızca alfasayısal karakterler, tireler (-) ve kısa çizgi (_) içerebilir. DNS ana bilgisayar adları büyük/küçük harfe duyarlı değildir. Uzunluk üst sınırı 63 karakterdir.

Anlamlı bir dize belirtmenizi öneririz. Örneğin, adlı AG1bir kullanılabilirlik grubu için anlamlı bir DNS ana bilgisayar adı olacaktır ag1-listener.

Önemli

NetBIOS, dns_name yalnızca ilk 15 karakteri tanır. Aynı Active Directory tarafından denetlenen iki WSFC kümeniz varsa ve 15 karakterden fazla ve aynı 15 karakter ön ekine sahip adları kullanarak her iki kümede de kullanılabilirlik grubu dinleyicileri oluşturmayı denerseniz, Sanal Ağ Adı kaynağının çevrimiçi duruma getirilemeyeceğini bildiren bir hata alırsınız. DNS adları için ön ek adlandırma kuralları hakkında bilgi için bkz. Etki Alanı Adları Atama.

KULLANıLABILIRLIK GRUBUNA KATıLMA AÇıK

Dağıtılmış kullanılabilirlik grubuna katılır. Dağıtılmış kullanılabilirlik grubu oluşturduğunuzda, oluşturulduğu kümedeki kullanılabilirlik grubu birincil kullanılabilirlik grubudur. Dağıtılmış kullanılabilirlik grubuna katılan kullanılabilirlik grubu, ikincil kullanılabilirlik grubudur.

<ag_name>

Dağıtılmış kullanılabilirlik grubunun yarısını oluşturan kullanılabilirlik grubunun adını belirtir.

LISTENER = 'TCP:// system-address:port'

Kullanılabilirlik grubuyla ilişkili dinleyicinin URL yolunu belirtir.

LISTENER yan tümcesi gereklidir.

'TCP:// system-address:port'

Kullanılabilirlik grubuyla ilişkili dinleyicinin URL'sini belirtir. URL parametreleri aşağıdaki gibidir:

sistem adresi

Sistem adı, tam etki alanı adı veya IP adresi gibi dinleyiciyi kesin olarak tanımlayan bir dize.

bağlantı noktası

Kullanılabilirlik grubunun yansıtma uç noktasıyla ilişkili bağlantı noktası numarası. Bunun dinleyicinin bağlantı noktası olmadığını unutmayın.

AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }

Birincil çoğaltmanın işlemi belirli bir birincil veritabanına işleyebilmesi için önce birincil çoğaltmanın günlük kayıtlarının sağlamlaştırmasını (yazmasını) kabul etmesinin ikincil kullanılabilirlik grubunun beklemesi gerekip gerekmediğini belirtir.

SYNCHRONOUS_COMMIT

Birincil çoğaltmanın, ikincil kullanılabilirlik grubunda sağlamlaştırılana kadar işlemleri işlemeyi bekleyeceğini belirtir. Birincil kullanılabilirlik grubu da dahil olmak üzere en fazla iki kullanılabilirlik grubu için SYNCHRONOUS_COMMIT belirtebilirsiniz.

ASYNCHRONOUS_COMMIT

Birincil çoğaltmanın, bu ikincil kullanılabilirlik grubunun günlüğü sağlamlaştırmasını beklemeden işlemleri işlediğini belirtir. Birincil kullanılabilirlik grubu dahil olmak üzere en fazla iki kullanılabilirlik grubu için ASYNCHRONOUS_COMMIT belirtebilirsiniz.

AVAILABILITY_MODE yan tümcesi gereklidir.

FAILOVER_MODE = { MANUEL }

Dağıtılmış kullanılabilirlik grubunun yük devretme modunu belirtir.

EL İLE

Veritabanı yöneticisi tarafından planlı el ile yük devretmeyi veya zorunlu el ile yük devretmeyi (genellikle zorlamalı yük devretme olarak adlandırılır) etkinleştirir.

İkincil kullanılabilirlik grubuna otomatik yük devretme desteklenmez.

SEEDING_MODE = { OTOMATIK | MANUAL }

İkincil kullanılabilirlik grubunun başlangıçta nasıl dağıtılacağını belirtir.

OTOMATİK

Otomatik tohumlama etkinleştirir. Bu yöntem, ikincil kullanılabilirlik grubunu ağ üzerinden dağıtacaktır. Bu yöntem, ikincil kullanılabilirlik grubunun çoğaltmalarında birincil veritabanının bir kopyasını yedeklemenizi ve geri yüklemenizi gerektirmez.

EL İLE

El ile tohumlama belirtir. Bu yöntem, birincil çoğaltmada veritabanının yedeğini oluşturmanızı ve bu yedeklemeyi ikincil kullanılabilirlik grubunun çoğaltmalarına el ile geri yüklemenizi gerektirir.

KULLANıLABILIRLIK GRUBUNU DEĞIŞTIR

Dağıtılmış kullanılabilirlik grubunun kullanılabilirlik grubu ayarlarından herhangi birini değiştirir. Değiştirilecek kullanılabilirlik gruplarının listesi, kullanılabilirlik grubu adını ve her kullanılabilirlik grubu için bir WITH (...) yan tümcesini içerir.

Önemli

Bu komut hem birincil kullanılabilirlik grubunda hem de ikincil kullanılabilirlik grubu örneklerinde yinelenmelidir.

HERHANGI BIR VERITABANı OLUŞTURMA IZNI VERME

Kullanılabilirlik grubunun, doğrudan çekirdek oluşturmayı (SEEDING_MODE = OTOMATIK) destekleyen birincil çoğaltma adına veritabanları oluşturmasına izin verir. Bu parametre, bu ikincil kullanılabilirlik grubuna katıldıktan sonra doğrudan dağıtım destekleyen her ikincil çoğaltmada çalıştırılmalıdır. CREATE ANY DATABASE izni gerektirir.

HERHANGI BIR VERITABANı OLUŞTURMAYı REDDET

Kullanılabilirlik grubunun birincil çoğaltma adına veritabanı oluşturma yeteneğini kaldırır.

<add_listener_option>

ADD LISTENER aşağıdaki seçeneklerden birini alır:

DHCP ILE [ AÇIK { ('four_part_ipv4_address','four_part_ipv4_mask') } ]

Kullanılabilirlik grubu dinleyicisinin Dinamik Ana Bilgisayar Yapılandırma Protokolü'nü (DHCP) kullanacağını belirtir. İsteğe bağlı olarak, bu dinleyicinin oluşturulacağı ağı belirlemek için ON yan tümcesini kullanın. DHCP, kullanılabilirlik grubunda bir kullanılabilirlik çoğaltması barındıran her sunucu örneği için kullanılan tek bir alt ağ ile sınırlıdır.

Önemli

Üretim ortamında DHCP'nin kullanılması önerilmez. Bir kesinti süresi varsa ve DHCP IP kirasının süresi dolarsa, dinleyici DNS adıyla ilişkili yeni DHCP ağ IP adresini kaydetmek ve istemci bağlantısını etkilemek için ek süre gerekir. Ancak DHCP, kullanılabilirlik gruplarının temel işlevlerini doğrulamak ve uygulamalarınızla tümleştirme için geliştirme ve test ortamınızı ayarlamak için uygundur.

Örneğin:

WITH DHCP ON ('10.120.19.0','255.255.254.0')

WITH IP ( { ('four_part_ipv4_address','four_part_ipv4_mask') | ('ipv6_address') } [ , ... n ] ) [ , PORT = listener_port ]

Kullanılabilirlik grubu dinleyicisinin DHCP yerine bir veya daha fazla statik IP adresi kullanacağını belirtir. Birden çok alt ağda kullanılabilirlik grubu oluşturmak için, her alt ağ dinleyici yapılandırmasında bir statik IP adresi gerektirir. Belirli bir alt ağ için statik IP adresi bir IPv4 adresi veya bir IPv6 adresi olabilir. Yeni kullanılabilirlik grubu için bir kullanılabilirlik çoğaltması barındıracak her alt ağın statik IP adresini almak için ağ yöneticinize başvurun.

Örneğin:

WITH IP ( ('10.120.19.155','255.255.254.0') )

ipv4_address

Kullanılabilirlik grubu dinleyicisi için dört parçalı IPv4 adresi belirtir. Örneğin, 10.120.19.155.

ipv4_mask

Kullanılabilirlik grubu dinleyicisi için bir IPv4 dört parçalı maske belirtir. Örneğin, 255.255.254.0.

ipv6_address

Kullanılabilirlik grubu dinleyicisi için bir IPv6 adresi belirtir. Örneğin, 2001::4898:23:1002:20f:1fff:feff:b3a3.

BAĞLANTI NOKTASI = listener_port

BIR WITH IP yan tümcesi tarafından belirtilen bir kullanılabilirlik grubu dinleyicisi tarafından kullanılacak bağlantı noktası numarası-listener_port belirtir. PORT isteğe bağlıdır.

Varsayılan bağlantı noktası numarası olan 1433 desteklenir. Ancak, güvenlikle ilgili endişeleriniz varsa farklı bir bağlantı noktası numarası kullanmanızı öneririz.

Örneğin: WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777

'dns_name' ( <modify_listener_option> ) DINLEYICISINI DEĞIŞTIRME

Bu kullanılabilirlik grubu için mevcut bir kullanılabilirlik grubu dinleyicisini değiştirir. Yalnızca birincil çoğaltmada desteklenir.

<modify_listener_option>

MODIFY LISTENER aşağıdaki seçeneklerden birini alır:

IP EKLE { ('four_part_ipv4_address','four_part_ipv4_mask') | ('dns_nameipv6_address__')__ }

Belirtilen IP adresini , dns_name tarafından belirtilen kullanılabilirlik grubu dinleyicisine ekler.

BAĞLANTI NOKTASI = listener_port

Bu bölümün önceki bölümlerinde bu bağımsız değişkenin açıklamasına bakın.

IP'YI KALDIR { ('four_part_ipv4_address') | ('ipv6_address') }

Şunlar için geçerlidir: SQL Server 2025 (17.x) ve sonraki sürümleri

Belirtilen kullanılabilirlik grubu dinleyicisinden belirtilen IP adresini kaldırır.

'dns_name' DINLEYICIYI YENIDEN BAŞLAT

Belirtilen DNS adıyla ilişkili dinleyiciyi yeniden başlatır. Yalnızca birincil çoğaltmada desteklenir.

'dns_name' DINLEYICISINI KALDıRMA

Belirtilen DNS adıyla ilişkili dinleyiciyi kaldırır. Yalnızca birincil çoğaltmada desteklenir.

ÇEVRİMDIŞI

Çevrimiçi kullanılabilirlik grubunu çevrimdışına alır. Zaman uyumlu işleme veritabanları için veri kaybı olmaz.

Kullanılabilirlik grubu çevrimdışı olduktan sonra veritabanları istemciler tarafından kullanılamaz duruma gelir ve kullanılabilirlik grubunu yeniden çevrimiçi yapamazsınız. Bu nedenle, çevrimdışı seçeneğini yalnızca Always On kullanılabilirlik gruplarının kümeler arası geçişi sırasında, kullanılabilirlik grubu kaynaklarını yeni bir WSFC kümesine geçirirken kullanın.

Daha fazla bilgi için bkz. Kullanılabilirlik Grubunu Çevrimdışına Alma (SQL Server).

Önkoşullar ve Kısıtlamalar

Kullanılabilirlik çoğaltmaları ve konak sunucu örnekleri ve bilgisayarlarındaki önkoşullar ve kısıtlamalar hakkında bilgi için bkz. Always On Kullanılabilirlik Grupları (SQL Server) için Önkoşullar, Kısıtlamalar ve Öneriler.

KULLANıLABILIRLIK GRUBU Transact-SQL deyimlerindeki kısıtlamalar hakkında bilgi için bkz. Always On Kullanılabilirlik Grupları (SQL Server) için Transact-SQL Deyimlerine Genel Bakış.

İzinler

Kullanılabilirlik grubu üzerinde ALTER AVAILABILITY GROUP izni, CONTROL AVAILABILITY GROUP izni, ALTER ANY AVAILABILITY GROUP izni veya CONTROL SERVER izni gerektirir. Ayrıca ALTER ANY DATABASE izni gerektirir.

Örnekler

A. İkincil çoğaltmayı kullanılabilirlik grubuna ekleme

Aşağıdaki örnek, kullanılabilirlik grubuna bağlı olduğunuz ikincil bir çoğaltmayı AccountsAG birleştirir.

ALTER AVAILABILITY GROUP AccountsAG JOIN;  
GO  

B. Kullanılabilirlik grubunun yük devretmesini zorlama

Aşağıdaki örnek, kullanılabilirlik grubunu bağlı olduğunuz ikincil çoğaltmaya yük devretmeye zorlar AccountsAG .

ALTER AVAILABILITY GROUP AccountsAG FORCE_FAILOVER_ALLOW_DATA_LOSS;  
GO  

C. Kullanılabilirlik grubuyla bağlantılarda şifrelemeyi zorlama

Bu bölümdeki örnekler kullanılabilirlik grubuyla bağlantılarda şifrelemeyiAccountsAG zorlar.

Sunucu adı her sertifikada herhangi bir yöntemle tanımlandığı şekilde listeleniyorsa şu seçeneği atlayabilirsiniz HostNameInCertificate :

ALTER AVAILABILITY GROUP [AccountsAG]
   SET (
   CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict')  

Yöntem 1'i izlediyseniz ve sunucu adınız sertifikada Konu Alternatif Adı olarak listelenmiyorsa, seçenekteki Konu Alternatif Adı'ndaHostNameInCertificate listelenen değeri belirtmeniz gerekir.

ALTER AVAILABILITY GROUP [AccountsAG]
   SET (
   CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict;HostNameInCertificate=<Subject Alternative Name>')

Yöntem 1'i izlediyseniz ve için ServerCertificatebir değer sağlamak yerine özelliğini kullanmak HostNameInCertificate istiyorsanız:

ALTER AVAILABILITY GROUP [AccountsAG]
   SET (
   CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict;ServerCertificate=C:\Users\admin\SqlAGCertificate.cer')

Ayrıca Bkz.

KULLANILABİLİRLİK GRUBU OLUŞTUR (Transact-SQL)
ALTER DATABASE SET HADR (Transact-SQL)
DROP KULLANıLABILIRLIK GRUBU (Transact-SQL)
sys.availability_replicas (Transact-SQL)
sys.availability_groups (Transact-SQL)
Always On Kullanılabilirlik Grupları Yapılandırmasının Sorunlarını Giderme (SQL Server)
Always On Kullanılabilirlik Grupları (SQL Server) Genel Bakış
Kullanılabilirlik Grubu Dinleyicileri, İstemci Bağlantısı ve Uygulama Yük Devretme (SQL Server)