Veritabanı kümesi ve yük dengeleme


Yanıtlar:


132

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.


1
Ah, çoğaltmayı unuttum :) Evet, yük dengelemesini bu şekilde uygulama seviyesi mantığıyla kombinasyon halinde elde edebilirsiniz :). +1
Jimmy Chandra

1
Postgresql belgeleri "veritabanı kümesine" farklı bir şekilde atıfta bulunur: "Herhangi bir şey yapmadan önce, diskte bir veritabanı depolama alanını başlatmanız gerekir. Buna veritabanı kümesi diyoruz. (SQL, katalog kümesi terimini kullanır.) Bir veritabanı kümesi, Çalışan bir veritabanı sunucusunun tek bir örneği tarafından yönetilen veritabanları. " postgresql.org/docs/8.3/static/creating-cluster.html
Donato

1
ACID özellikleri ne anlama gelir veya daha doğrusu, onları korumazsanız tam olarak ne kaybedersiniz?
TheStoryCoder

@TheStoryCoder Bilgisayar biliminde, ACID (Atomiklik, Tutarlılık, İzolasyon, Dayanıklılık), hatalar, elektrik kesintileri vb. Durumlarda bile geçerliliği garanti etmeyi amaçlayan veritabanı işlemlerinin bir dizi özelliğidir. Veritabanları bağlamında, bir veritabanı dizisi ACID özelliklerini karşılayan işlemlere (ve bunlar veriler üzerinde tek bir mantıksal işlem olarak algılanabilir) işlem denir. Örneğin, bir banka hesabından diğerine para transferi, hatta bir hesabın borçlandırılması ve diğerinin kredilendirilmesi gibi birden çok değişikliği içeren bir para transferi tek bir işlemdir.
fizampou

17

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.


9

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.


7

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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.