SQL Server Contained Databases Nedir?
Contained Databases, diğer veritabanlarından ve veritabanını barındıran SQL Server örneğinden yalıtılmış bir veritabanıdır . SQL Server, kullanıcının veritabanını 4 şekilde izole etmesine yardımcı olur.
- Bir veritabanını tanımlayan meta verilerin çoğu veritabanında tutulur.(Ana veritabanında meta verileri korumaya ek olarak veya bunun yerine.)
- Tüm meta veriler aynı harmanlama kullanılarak tanımlanır.
- Kullanıcı kimlik doğrulaması, veritabanı tarafından gerçekleştirilebilir, bu da SQL Server örneğinin oturum açmalarına olan veritabanlarına bağımlılığı azaltır.
- SQL Server ortamı (DMV’ler, XEvents, vb.) raporlama yapar ve kapsama bilgisine göre hareket edebilir.
Teoride güzel görünen veritabanı özelliği SQL Server 2022 ile birlikte bir “Always-On” mimarisi içerisinde kullanılabilir duruma geliyor.
Peki Contained Database’lerin SQL Server Always-On içerisinde gelmesi ne gibi bir avantaj sağlar?
Always On Failover Cluster Instances (FCI’ler) dışındaki tüm SQL Server kullanılabilirlik özelliklerinin (secondary replica/warm standby/mirror ) bir “sorunu” vardır:Bu sorun ise failover sonrasında ikincil yeni patron olarak devraldığında, bazı öğeler ki misal SQL Server Agent, oturum açma vb. orada gibi işlemlerin birincil sunucuda kalma durumudur. Bu işlem ise her zaman manuel olarak biz veritabanı yöneticilerin takip etmesi gereken bir konu olmuştu ve bu “sorun”, SQL Server’ı yönetmekten sorumlu olanlar için uzun süredir devam eden bir acı noktasıydı.Piyasada bu durumun önemine çok defa şahit olmuş bir ekibiz. İşte böyle bir durumu ortadan kaldırmak için SQL Server 2022 ile gelen Contained Availability Groups , AG mekanizmasının bir parçası olarak kendi master ve msdb veritabanlarını senkronize ederek bu sorunu çözüme kavuşturmuş olmaktadır.
Yeni gelen özellikleri düşündüğünüzde mevcut SQL Server sürümünüzü yeni SQL Server 2022 sürümüne yükseltmenin önemli olacağını düşünmekteyim.