Veritabanı kümeleme nedir? Aynı veritabanının 2 farklı sunucuda olmasına izin verirseniz, verileri senkronize etmek için nasıl tutarlar? Ve bunun bir veritabanı sunucusu perspektifinden yük dengelemeden farkı nedir?
Veritabanı kümeleme nedir? Aynı veritabanının 2 farklı sunucuda olmasına izin verirseniz, verileri senkronize etmek için nasıl tutarlar? Ve bunun bir veritabanı sunucusu perspektifinden yük dengelemeden farkı nedir?
Yanıtlar:
Veritabanı kümeleme biraz belirsiz bir terimdir, bazı satıcılar aynı depolamayı paylaşan iki veya daha fazla sunucuya sahip bir kümeyi düşünürken, bazıları bir kümeye bir dizi çoğaltılmış sunucu adını verir.
Replikasyon, coğrafi olarak dağılabilmek için depolamayı paylaşmak zorunda kalmadan bir dizi sunucunun senkronize kalmasını sağlayan yöntemi tanımlar, bunun için iki ana yol vardır:
master-master (veya multi-master) replikasyonu: Herhangi bir sunucu veritabanını güncelleyebilir. Genellikle veritabanı içindeki farklı bir modül (veya bazı durumlarda bunların üzerinde çalışan tamamen farklı bir yazılım) ile ilgilenilir.
Dezavantajı, iyi yapmanın çok zor olması ve bazı sistemlerin bu çoğaltma modunda olduğunda ACID özelliklerini kaybetmesidir.
İyi tarafı, esnek olması ve veritabanını güncellerken herhangi bir sunucunun arızasını destekleyebilmenizdir.
master-slave replikasyonu: Slave sunuculara gönderilen yetkili verilerin yalnızca tek bir kopyası vardır.
Dezavantajı, daha az hataya dayanıklı olmasıdır, eğer ana cihaz ölürse, yardımcılarda başka değişiklik olmaz.
Tersi, çoklu ana makineden daha kolay yapılması ve genellikle ACID özelliklerini korumasıdır.
Yük dengeleme farklı bir kavramdır, bu sunuculara gönderilen sorguları dağıtarak yükün olabildiğince eşit olarak dağıtılmasını içerir. Genellikle uygulama katmanında (veya bir bağlantı havuzu ile) yapılır. Çoğaltma ve yük dengeleme arasındaki tek doğrudan ilişki, dengeyi yükleyebilmek için bazı çoğaltmalara ihtiyaç duymanızdır, aksi takdirde tek bir sunucunuz olur.
SQL Server açısından:
Kümeleme size aktif - pasif bir konfigürasyon sağlayacaktır. Yani 2 düğümlü bir kümede, bunlardan biri aktif (hizmet veren) ve diğeri pasif olacak (aktif düğüm başarısız olduğunda devralmayı bekliyor). Donanım açısından yüksek bir kullanılabilirliktir.
Aktif-aktif bir kümeniz olabilir, ancak bu, her düğümde çalışan birden çok SQL Server örneğini gerektirecektir. (yani, Düğüm A üzerindeki Örnek 1, Düğüm B'de Örnek 2'ye yük devretme ve Düğüm B'deki örnek 1, Düğüm A'daki örnek 2'ye yük devretme).
Yük dengeleme (en azından SQL Server açısından) mevcut değildir (en azından web sunucusu yük dengeleme ile aynı anlamda). Yükü bu şekilde dengeleyemezsiniz. Bununla birlikte, uygulamanızı sunucu 1'deki bazı veritabanlarında çalışacak şekilde bölebilirsiniz ve ayrıca sunucu 2'deki bazı veritabanlarında da çalışabilirsiniz. Bu, SQL dünyasında "yük dengeleme" nin birincil anlamıdır.
Kümeleme, bir tür paylaşılan depolamayı kullanır (örneğin bir sürücü kafesi veya SAN) ve üzerine iki veritabanı ön ucu ekler. Ön uç sunucular, istemcilerin bağlanmak için kullandıkları bir IP adresini ve küme ağ adını paylaşır ve şu anda istemci isteklerine hizmet vermekten kimin sorumlu olduğuna kendi aralarında karar verirler.
Belirli bir veritabanı sunucusu hakkında soru soruyorsanız, bunu sorunuza ekleyin ve bunların uygulanmasına ilişkin ayrıntıları ekleyebiliriz, ancak özünde, kümeleme budur.
Veritabanı Kümeleme aslında iki veya muhtemelen daha fazla düğüm arasında, sisteminize eklenen bir hata toleransı işlevselliği ile eşzamanlı bir çoğaltma modudur ve bu da paylaşımlı bir yok mimarisinde. Hiçbir şey paylaşmamak, bireysel düğümlerin aslında disk veya bellek gibi herhangi bir fiziksel kaynağı paylaşmadığı anlamına gelir.
Verileri senkronize tutmak söz konusu olduğunda, bunu başarmak için tüm veri düğümlerinin SQL düğümü ile birlikte bağlandığı bir yönetim sunucusu vardır (özellikle MySQL hakkında konuşarak).
Şimdi farklılıklar hakkında: Yük dengeleme, kümeleme yoluyla elde edilebilecek sonuçlardan yalnızca bir tanesidir, diğerleri yüksek kullanılabilirlik, ölçeklenebilirlik ve hata toleransı içerir.