Aracılığıyla paylaş


Kapsanan kullanılabilirlik grubu nedir?

Şunlar için geçerlidir: SQL Server 2022 (16.x)

Kapsanan kullanılabilirlik grubu, desteklenen bir Always On kullanılabilirlik grubudur (AG):

  • örnek düzeyine ek olarak AG düzeyinde meta veri nesnelerini (kullanıcılar, oturum açma bilgileri, izinler, SQL Aracısı işleri vb.) yönetme.

  • AG içindeki özelleştirilmiş kapalı sistem veritabanları.

Bu makalede, kapsanan AG'lerin benzerlikleri, farklılıkları ve işlevleri ayrıntılı olarak açıklanır.

Genel bakış

AG'ler genellikle eşgüdümlü grup olarak çalışması amaçlanan ve kümedeki bazı düğümlerde çoğaltılan bir veya daha fazla kullanıcı veritabanından oluşur. Düğümde veya birincil kopyayı barındıran düğümdeki SQL Server'ın durumunda bir hata olduğunda, veritabanları grubu toplu halde Kullanılabilirlik Grubu (AG) içindeki başka bir çoğaltma düğümüne taşınır. Tüm kullanıcı veritabanları, AG'nin tüm çoğaltmalarında ya zaman uyumlu ya da zaman uyumsuz modda senkronize tutulur.

Bu, yalnızca bu kullanıcı veritabanı kümesiyle etkileşim kuran uygulamalar için iyi sonuç verir, ancak uygulamaların sistem veritabanlarından birinde (master veya msdb) depolanan kullanıcılar, oturum açma bilgileri, izinler, aracı işleri vb. nesnelere de güvenmesi gibi zorluklar vardır. Uygulamaların sorunsuz ve öngörülebilir bir şekilde çalışması için yöneticinin el ile bu nesnelerdeki tüm değişikliklerin AG'deki tüm çoğaltma örneklerinde yinelendiğinden emin olması gerekir. AG'ye yeni bir örnek getirilirse, veritabanları basit bir işlemle otomatik olarak veya el ile dağıtılabilir, ancak ardından tüm sistem veritabanı özelleştirmelerinin diğer çoğaltmalarla eşleşecek şekilde yeni örnekte yeniden yapılandırılması gerekir.

İçerilen AG'ler, çoğaltılan veritabanı grubu kavramını master ve msdb veritabanlarının ilgili bölümlerini içerecek şekilde genişletir. Bunu, kapsanan AG kullanan uygulamalar için yürütme bağlamı olarak düşünün. Fikir, kapsanan AG ortamının, uygulamanın bunlara bağlı olmasını etkileyebilecek ayarları içermesidir. Bu nedenle, kapsanan AG ortamı uygulamanın etkileşimde bulunduğu tüm veritabanlarını, kullandığı kimlik doğrulamasını (oturum açma bilgileri, kullanıcılar, izinler), çalışmasını beklediği zamanlanmış işleri ve uygulamayı etkileyen diğer yapılandırma ayarlarını kapsar.

Bu, kullanıcı hesapları için farklı bir mekanizma kullanan ve kullanıcı bilgilerini veritabanının içinde depolayan kapsanan veritabanlarından farklıdır. Kapsanan veritabanları yalnızca oturum açma bilgilerini ve kullanıcıları çoğaltır ve çoğaltılan oturum açma bilgilerinin veya kullanıcının kapsamı bu tek veritabanı (ve çoğaltmaları) ile sınırlıdır.

Buna karşılık, kapsanan bir AG'de, AG düzeyinde kullanıcılar, oturum açmalar, izinler vb. oluşturabilirsiniz ve bunlar, AG'deki çoğaltmalar ve kapsanan AG içindeki veritabanları arasında otomatik olarak tutarlıdır. Bu, yöneticinin bu değişiklikleri el ile yapmak zorunda olmasını engeller.

SQL Server 2025 değişiklikleri

SQL Server 2025 (17.x) Önizlemesi, kapsanan kullanılabilirlik grupları için dağıtılmış kullanılabilirlik grubu desteği sağlar.

Farklılıklar

Katılı AG'lerle çalışırken, katılı sistem veritabanlarının oluşturulması ve örnek düzeyinde bağlanmak yerine katılı AG düzeyinde bağlantıyı zorlamak gibi bazı pratik farklılıklar vardır.

Kapsanan sistem veritabanları

İçeren her AG'nin, kullanılabilirlik grubunun adından sonra adlandırılan kendi master ve msdb sistem veritabanları vardır. Örneğin, içinde bulunan AG MyContainedAGMyContainedAG_master ve MyContainedAG_msdbadlı veritabanlarınız vardır. Bu sistem veritabanları otomatik olarak yeni çoğaltmalara dağıtılır ve güncelleştirmeler de bir kullanılabilirlik grubundaki diğer veritabanları gibi bu veritabanlarına çoğaltılır. Kapsanan AG'ye bağlıyken bir oturum açma veya temsilci işi gibi bir nesne eklediğinizde, kapsanan AG başka bir örneğe yüklendiğinde, kapsanan AG'ye bağlandığınızda hala temsilci işlerini görebilir ve kapsanan AG'de oluşturulan oturum açma bilgilerini kullanarak kimlik doğrulaması yapabilirsiniz.

Önemli

İçerilen AG'ler, bir kullanılabilirlik grubunun çoğaltmaları arasında yürütme ortamı yapılandırmalarının tutarlı kalmasını sağlamak için bir mekanizmadır. güvenlik sınırını temsil etmiyorlar. Örneğin, kapsanan AG'ye bağlantının AG dışındaki veritabanlarına erişmesini engelleyen bir sınır yoktur.

Yeni oluşturulan bir kapsanan AG'deki sistem veritabanları, CREATE AVAILABILITY GROUP komutunun çalıştırıldığı örnekten kopyalanmamıştır. Bunlar başlangıçta veri içermeyen boş şablonlardır. Oluşturulduktan hemen sonra, kapsayıcı AG'yi oluşturan örnekteki yönetici hesapları, kapsanan AG master'a kopyalanır. Bu şekilde, yönetici kapsanan AG'de oturum açabilir ve yapılandırmanın geri kalanını ayarlayabilir.

Örneğinizde yerel kullanıcılar veya yapılandırmalar oluşturursanız, bunlar, bağımsız sistem veritabanlarınızı oluşturduğunuzda otomatik olarak görünmez ve kapsanan AG'ye bağlandığınızda görünmez. Kullanıcı veritabanı, iç içe geçmiş bir AG'ye katıldıktan sonra, bu kullanıcılar için hemen erişime kapatılır. İçerilen AG bağlamında, doğrudan veritabanına bağlanarak veya dinleyici uç noktasını kullanarak bunları kapsanan sistem veritabanlarında el ile yeniden oluşturmanız gerekir. Bunun istisnası, ana örnekte sysadmin rolündeki tüm oturum açma bilgilerinin, kapsanan AG oluşturulduğunda yeni AG'ye özgü master veritabanına kopyalanmasıdır.

Not

master veritabanı her bir kapsanan kullanılabilirlik grubu için ayrı olduğundan, kapsanan AG bağlamında gerçekleştirilen sunucu kapsamı etkinlikleri yalnızca kapsanan sistem veritabanında kalıcı hale getirilir. Buna denetim de dahildir. SQL Server Denetleme ile sunucu düzeyi etkinliğini denetlerseniz, her bir AG içerisinde aynı sunucu denetimlerini oluşturmanız gerekir.

İlk Veri eşitleme

Kapsanan sistem veritabanları yalnızca ilk veri eşitleme yöntemi olarak otomatik tohumlama desteği sağlar.

SQL Server 2022 (16.x) ve önceki sürümlerinde, kapsanan kullanılabilirlik gruplarının oluşturma sırasında otomatik dağıtım kullanması gerekir. SQL Server Management Studio'da CREATE AVAILABILITY GROUP deyimini veya Yeni Kullanılabilirlik Grubu sihirbazını kullanırken, yalnızca otomatik tohumlama desteği olan kullanıcı veritabanlarını ekleyin. El ile tohumlama ()JOIN ONLY kullanarak büyük veritabanları eklemek için, kapsanan AG oluşturulana kadar bekleyin.

SQL Server 2025 (17.x) Önizlemesi'nde, CREATE AVAILABILITY GROUP dendiği durumda bile içerikli sistem veritabanları her zaman otomatik tohumlama kullanır, manuel tohumlama belirtmiş olsa da. Seeding modunu sınırlı AG oluşturmak için manuel olarak ayarlayabilir ve daha sonra otomatik tohumlama dışındaki eşitleme yöntemlerini kullanarak kullanıcı veritabanları ekleyebilirsiniz.

Kapsanan sistem veritabanını geri yükleme

Kapsanan sistem veritabanlarının yedeklerini geri yüklemek için şu adımları izleyin:

  1. kapsanan AG'yi bırakın.

  2. İçerilen master ve msdb veritabanlarını, içerilen AG'nin özgün birincil çoğaltmasına geri yükleyin.

  3. İkincil çoğaltmalardan yer alan master ve msdb veritabanını silin.

  4. Birincil replikada, WITH (CONTAINED, REUSE_SYSTEM_DATABASES) ve SEEDING_MODE = AUTOMATIC söz dizimini kullanarak özgün adı ve düğümleriyle kapsanan AG'yi yeniden oluşturun.

Kapsanan bir kullanılabilirlik grubunu yeniden oluştururken, kapsanan sistem veritabanlarını CREATE AVAILABILITY GROUP ifadesine eklemeyin. SQL Server, belirtildiğinde REUSE_SYSTEM_DATABASES bunları otomatik olarak algılar. SQL Server 2022 (16.x) ve önceki sürümlerde, yalnızca otomatik çekirdek oluşturma desteği olan küçük kullanıcı veritabanlarını içerir. İçerilen AG oluşturulduktan sonra büyük veritabanlarını ayrı olarak eklemek için JOIN ONLY kullanın.

Kapsanan kullanılabilirlik grubu işleri

Sınırlı kullanılabilirlik grubuna ait işler yalnızca birincil çoğaltma üzerinde çalışır. İkincil kopyalarda çalışmazlar.

Bağlan (kapsanan ortam)

Örneğe bağlanma ile kapsanan AG'ye bağlanma arasındaki farkı ayırt etmek önemlidir. kapsanan AG ortamına erişmenin tek yolu, kapsanan AG dinleyicisine bağlanmak veya kapsanan AG'de bulunan bir veritabanına bağlanmaktır.

"Persist Security Info=False;
User ID=MyUser;Password=*****;
Initial Catalog=MyContainedDatabase;
Server=MyServer;"

Burada MyContainedDatabase, içerilen AG içinde etkileşime geçmek istediğiniz bir veritabanıdır.

Bu, kapsanan AG'yi etkili bir şekilde kullanmak için kapsanan AG için bir dinleyici oluşturmanız gerektiği anlamına gelir. dinleyiciaracılığıyla doğrudan kapsanan AG'ye bağlanmak yerine, örneklerinden birine bağlanırsanız, kapsanan AG'de değil, örnek ortamında olursunuz.

Örneğin, kullanılabilirlik grubu MyContainedAGSERVER\MSSQLSERVERsunucusunda barındırılıyorsa ve MyContainedAG_Listenerdinleyiciye bağlanmak yerine SERVER\MSSQLSERVERkullanarak örneğe bağlanırsanız, örneğin ortamında olursunuz, MyContainedAGortamında değil. Bu, örneğin sistem veritabanlarında bulunan içeriklere (kullanıcılar, izinler, işler vb.) tabi olduğunuz anlamına gelir. Kapsanan AG'ye ait kapsanan sistem veritabanlarındaki içeriklere erişmek için, doğrudan kapsanan AG dinleyicisine (örneğin,MyContainedAG_Listener) bağlanın. İçerilen AG dinleyicisi aracılığıyla örneğe bağlandığınızda, masterile etkileşimde bulunduğunuzda, aslında içerilen master veritabanına (örneğin, MyContainedAG_master) yönlendirilirsiniz.

Salt okunur yönlendirme ve kapsanan kullanılabilirlik grupları

Okuma amacı olan bağlantıları ikincil çoğaltmaya yeniden yönlendirmek için salt okunur yönlendirmeyi yapılandırıyorsanız (bkz. Always On kullanılabilirlik grubu için salt okunur yönlendirmeyi yapılandırma) ve yalnızca kapsanan AG'de oluşturulan bir oturum açma bilgilerini kullanarak bağlanmak istiyorsanız, dikkat etmeniz gereken bazı ek hususlar bulunmaktadır:

  • Bağlantı dizesinde kapsanan AG'nin parçası olan bir veritabanı belirtmelisiniz
  • Bağlantı dizesinde belirtilen kullanıcının, kapsanan AG'deki veritabanlarına erişme izni olmalıdır.

Örneğin, aşağıdaki bağlantı dizesinde, burada AdventureWorks, MyContainedListeneriçeren bir AG içindeki veritabanıdır ve burada MyUser, kapsanan AG'de tanımlanmış bir kullanıcıdır ve katılan örneklerden hiçbiri değildir:

"Persist Security Info=False;
User ID=MyUser;Password=*****;
Initial Catalog=AdventureWorks;
Server=MyContainedListener;
ApplicationIntent=ReadOnly"

Bu bağlantı dizesi, ReadOnly Yönlendirme yapılandırmasının parçası olan okunabilir ikincil öğeye bağlanmanızı sağlayacak ve siz de kapsanan AG'nin bağlamında olacaksınız.

Örneğe bağlanma ile kapsanan kullanılabilirlik grubuna bağlanma arasındaki farklar

  • İçeren bir AG'ye bağlandığında, kullanıcılar yalnızca bu AG'deki veritabanlarını ve tempdb'ü görür.
  • Örnek düzeyinde, kapsanan AG master ve msdb adları [contained AG]_master ve [contained AG]_msdb. İçerideki AG'de adları master ve msdb.
  • Kapsanan AG master için veritabanı kimliği, kapsanan AG'nin içindeyken 1 olur, ancak örneğe bağlandığında değişir ve başka bir şey olur.
  • Kullanıcılar, kapsanan bir AG bağlantısına bağlandığında sys.databases'de kapsanan AG'nin dışındaki veritabanlarını görmese de, bu veritabanlarına üç parçalı isimle veya USE komutuyla erişebilirler.
  • sp_configure üzerinden sunucu yapılandırması, kapsanan AG bağlantısından okunabilir ancak yalnızca örnek düzeyinde yazılabilir.
  • Sysadmin, kapsanan AG bağlantılarından SQL Server'ı kapatma gibi örnek düzeyinde işlemler gerçekleştirebilir.
  • Veritabanı düzeyi, uç nokta düzeyi veya AG düzeyi işlemlerinin çoğu yalnızca örnek bağlantılarından gerçekleştirilebilir, içerilmiş AG bağlantılarından gerçekleştirilemez.

Diğer özelliklerle etkileşimler

Belirli özellikleri içeren AG'lerle kullanırken dikkat edilmesi gereken ek hususlar vardır ve bazı özellikler şu anda desteklenmemektedir.

Yedeklemek

Kapsanan AG'deki veritabanlarını yedekleme yordamları, tüm kullanıcı veritabanı yedekleme yordamlarıyla aynıdır. Bu, hem kapsanan AG kullanıcı veritabanları hem de kapsanan AG sistem veritabanları için geçerlidir.

Yedekleme konumu yerelse, yedekleme dosyaları yedekleme işini çalıştıran sunucuya yerleştirilir. Bu, yedekleme dosyalarınızın farklı konumlarda olabileceği anlamına gelir.

Yedekleme konumu bir ağ kaynağındaysa, çoğaltmaları barındıran tüm sunucuların bu kaynağa erişmesi gerekir.

Dağıtılmış kullanılabilirlik grupları

Dağıtılmış kullanılabilirlik grubu, temel alınan iki kullanılabilirlik grubuna yayılan özel bir kullanılabilirlik grubu türüdür. Dağıtılmış bir kullanılabilirlik grubu yapılandırdığınızda, global birincil (ilk AG'nizin birincil çoğaltması olan) üzerinde yapılan değişiklikler, ikinci AG'nizin iletici olarak bilinen birincil çoğaltmasına çoğaltılır.

SQL Server 2025 (17.x) Önizleme sürümünden başlayarak, iki bağımsız AG arasında dağıtılmış bir kullanılabilirlik grubu yapılandırabilirsiniz. Kapsanan AG, kapsanan master ve msdb sistem veritabanlarına bağlı olduğundan, dağıtılmış bir kullanılabilirlik grubu oluşturmak için ikinci AG'nin (iletici) genel birincil ile aynı kapsanan AG sistem veritabanına sahip olması gerekir.

Dağıtılmış kullanılabilirlik grubunda iletici olarak bir kapsanan AG kullanmayı planlıyorsanız, AUTOSEEDING_SYSTEM_DATABASES deyiminin seçeneği için WITH | CONTAINED yan tümcesini kullanarak kapsanan AG'yi oluşturmanız gerekir. Madde AUTOSEEDING_SYSTEM_DATABASES, SQL Server'a kendi kapsanan AG sistem veritabanlarını oluşturmayı atlamasını ve bunun yerine genel birincilden AG sistem veritabanlarını başlatmasını söyler.

Kaynak yöneticisi

Toplu Güncelleştirme 18'den önceki SQL Server 2022'de (16.x) ve SQL Server'ın eski sürümlerinde, içerilen kullanılabilirlik grubu bağlantılarında resource governor'ın yapılandırılması veya kullanılması desteklenmez.

SQL Server 2022 (16.x) Toplu Güncelleştirme 18'den başlayarak, örnek bağlantısında kaynak yöneticisi yapılandırıyorsanız, örnek bağlantılarında veya kapsanan kullanılabilirlik grubu bağlantılarında kaynak tüketimi beklendiği gibi yönetilir. İçerilen kullanılabilirlik grubu bağlantısında kaynak yöneticisini yapılandırmaya çalışırsanız bir hata alırsınız.

Resource Governor, Veritabanı Altyapısı örnek düzeyinde çalışır. Durum düzeyinde kaynak kontrolcüsü yapılandırması kullanılabilirlik kopyalarına aktarılmaz. Kullanılabilirlik çoğaltmasını barındıran her bir örnekte kaynak yöneticisini yapılandırmanız gerekir.

Tavsiye

Kullanılabilirlik grubu yük devretmeleri gerçekleşirken tutarlı bir davranış elde etmek için kullanılabilirlik çoğaltmalarını barındıran tüm Veritabanı Altyapısı örnekleri için aynı kaynak yöneticisi yapılandırmasını kullanmanızı öneririz.

Daha fazla bilgi için bkz . Resource governor ve Resource governor yapılandırma örnekleri ve en iyi yöntemler.

Veri yakalamayı değiştirme

Değişiklik veri yakalama (CDC), SQL Aracısı işleri olarak uygulanır, bu nedenle SQL Aracısı'nın kapsanan AG'de çoğaltmaları olan tüm örneklerde çalışması gerekir.

Kapsanan bir AG ile değişiklik verilerini yakalama kullanabilmek için, CDC’yi yapılandırırken AG dinleyicisine bağlanın. Böylece, CDC meta verileri kapsanan sistem veritabanları kullanılarak yapılandırılır.

Veri günlüğü aktarımı

Kaynak veritabanı kapsanan Yüksek Kullanılabilirlik Grubu (AG)'ndeyse günlük gönderimi yapılandırılabilir. Ancak log shipping hedefi, bir kapsamlı AG içinde desteklenmez. Ayrıca, CDC yapılandırıldıktan sonra günlük gönderme işlemini değiştirmek için ek bir adım daha vardır.

Günlük gönderimini bağımsız bir Erişilebilirlik Grubu (AG) ile yapılandırmak için şu adımları izleyin:

  1. İçerilen AG dinleyicisine bağlanın.
  2. log gönderimini normalde yaptığınız gibi yapılandırın.
  3. Günlük taşıma işi yapılandırıldıktan sonra, yedekleme yapmadan önce işi içerilen AG dinleyicisine bağlanacak şekilde değiştirin.

Saydam veri şifrelemesi (TDE)

Saydam veri şifrelemesini (TDE) kapsanan bir AG'deki veritabanlarıyla kullanmak için, Veritabanı Ana Anahtarını (DMK) kapsanan AG içindeki kapsanan master veritabanına el ile yükleyin.

TDE kullanan veritabanları, Veritabanı Şifreleme Anahtarının (DEK) şifresini çözmek için master veritabanındaki sertifikalara dayanır. Bu sertifika olmadan SQL Server, TDE ile şifrelenmiş veritabanlarının şifresini çözemez veya çevrimiçi yapamaz. SQL Server, iç içe geçmiş AG'de, DMK için hem master veritabanlarını hem de örnek için master veritabanını ve veritabanının şifresini çözmek için iç içe geçmiş AG içindeki master veritabanını denetler. Sertifikayı herhangi bir konumda bulamazsa SQL Server veritabanını çevrimiçi duruma getiremez.

DMK'yi örnekteki master veritabanından kapsayıcı master veritabanına aktarmak için, öncelikle DMK'nin eski sunucudan yenisine aktarıldığı bölümlere odaklanarak, TDE korumalı bir veritabanını başka bir SQL Server'a taşıma konusundaki bölümüne,başlığı altında bakın.

Not

SQL Server örneğindeki tüm veritabanlarını şifrelemek sistem veritabanını da şifrelertempdb.

SSIS paketleri & bakım planları

Bakım planları dahil olmak üzere SSIS paketlerinin kullanılması, kapsanan kullanılabilirlik gruplarında desteklenmez.

Desteklenmiyor

Şu anda aşağıdaki SQL Server özellikleri, kapsayıcı AG ile desteklenmiyor.

  • Herhangi bir türde SQL Server Replikasyonu (İşlem, Birleştirme, Anlık Görüntü vb.).
  • Hedef veritabanının kapsanan AG'de bulunduğu günlük gönderimi. Kapsanan AG'deki kaynak veritabanıyla günlük gönderimi desteklenir.

DDL değişiklikleri

Tek DDL değişiklikleri CREATE AVAILABILITY GROUP iş akışındadır. İki seçenek içeren bir WITH yan tümce vardır:

<with_option_spec> ::=
CONTAINED [REUSE_SYSTEM_DATABASES | AUTOSEEDING_SYSTEM_DATABASES ]

İÇEREN

Bu, oluşturulan AG'nin kapsanan bir AG olması gerektiğini belirtir.

SİSTEM_VERİTABANLARINI_YENİDEN_KULLAN

Bu REUSE_SYSTEM_DATABASES seçenek yalnızca kapsanan AG'ler için geçerlidir ve yeni oluşturulan AG'nin aynı ada sahip önceki bir kapsanan AG için mevcut kapsanan sistem veritabanlarını yeniden kullanması gerektiğini belirtir. Örneğin, MyContainedAGadlı bağımsız bir AG'niz varsa ve bunu bırakıp yeniden oluşturmak istiyorsanız, özgün kapsanan sistem veritabanlarının içeriğini yeniden kullanmak için bu seçeneği kullanabilirsiniz. Bu seçeneği kullanırken sistem veritabanı adlarını belirtmeyin. SQL Server bunları otomatik olarak algılar.

AUTOSEEDING_SİSTEM_VERİTABANLARI

Şunlar için geçerlidir: SQL Server 2025 (17.x) Önizleme ve üzeri

Dağıtılmış kullanılabilirlik grubunda iletici olarak kapsanan AG'nizi kullanmayı planlıyorsanız, kapsanan AG'yi AUTOSEEDING_SYSTEM_DATABASES seçeneğini kullanmanız gerekir. Bu seçenek, SQL Server'a kendi kapsanan AG sistem veritabanlarını oluşturmayı atlayarak, bunun yerine genel birincilden kapsanan AG sistem veritabanlarını başlatmasını söyler.

DMV değişiklikleri

Kapsamlı AG'lerle ilgili DMV'lere iki yeni ekleme vardır.

  • DMV sys.dm_exec_sessions'a bir sütun eklenmiştir: contained_availability_group_id
  • sys.availability_groups kataloğu görünümüne ekstra sütun eklendi: is_contained