Ana içeriğe geç

Veritabanı Replikasyonu

İngilizcesi
Database Replication
Türkçe karşılığı
çoğaltma
Okunuşu
deytıbeys replikeyşın

Günlük kullanımda iki ad da yaygın.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/replication

Kısaca

Veritabanı replikasyonu, verinin bir sunucudan diğerlerine sürekli kopyalanmasıdır; böylece birkaç sunucu güvenilirlik ve ölçek için aynı veriyi tutar.

Veritabanı replikasyonu nedir?

Replikasyon, aynı veritabanının kopyalarını birden fazla sunucuda tutar. En yaygın kurulumda, birincil (primary) ya da lider adı verilen bir sunucu tüm yazmaları kabul eder; takipçi (follower) ya da okuma replikası da denen bir veya daha fazla replika ise bu değişikliklerin akışını alır ve kendi kopyasına uygular. Eski belgelerde buna master-slave replikasyonu denir.

Replikasyonun üç ana amacı vardır. Erişilebilirliği artırır; çünkü birincil sunucu arızalanırsa bir replika onun yerine terfi ettirilebilir, bu sürece failover denir; okumaları ölçekler; çünkü salt okunur sorgular replikalara dağıtılabilir; ve verinin kopyalarını diğer bölgelerdeki kullanıcılara daha yakın konumlandırabilir. PostgreSQL, MySQL, MongoDB ve Cassandra dahil çoğu ilişkisel ve NoSQL veritabanı bunu destekler.

Replikasyon senkron ya da asenkron olabilir. Senkron replikasyonda birincil sunucu, başarıyı bildirmeden önce her değişiklik için bir replikanın onayını bekler; bu daha güvenli ama daha yavaştır. Asenkron replikasyonda beklemez; bu yüzden replikalar biraz geride kalabilir ve sonraki okuma geride kalan bir replikaya giderse kullanıcı kendi güncellemesini göremeyebilir. Bazı sistemler, birkaç düğümün yazma kabul ettiği çok liderli ya da lidersiz replikasyon kullanır; bunun bedeli çakışan güncellemeleri çözmek zorunda kalmaktır.

Bu, bir öğretmenin cevap anahtarının birkaç asistan için fotokopisinin çekilmesine biraz benzer: herhangi bir asistan soruları yanıtlayabilir, ancak düzeltmeler aslında orijinal üzerinde yapılır ve sonra yeniden dağıtılır. Replikasyon çoğu zaman yedekleme ve sharding ile karıştırılır. Bir replika, yanlışlıkla çalıştırılan bir DELETE gibi hataları neredeyse anında kopyalar; bu yüzden yedek değildir. Farklı veriyi sunuculara bölen sharding'in aksine replikasyon her sunucuya aynı veriyi verir.

Bir bakışta

Uygulama her yazmayı birincil veritabanına gönderir, birincil de değişiklikleri iki replikaya kopyalar; uygulama replikalardan okur ve ikinci replika biraz geride kalmıştır.UygulamaBirinciltüm yazmaları alırReplika 1güncelReplika 2biraz gerideyazmaokumaokumareplikasyonasenkron
Yazmalar tek bir birincil sunucuya gider ve okumaları paylaşan replikalara kopyalanır. Asenkron replikasyonda bir replika biraz geride kalabilir.

Önemli noktalar

  • Replikasyon, aynı veriyi birden fazla veritabanı sunucusuna kopyalar.
  • Birincil-replika kurulumlarında birincil yazmaları, replikalar okumaları karşılar.
  • Birincil sunucu çökerse failover bir replikayı terfi ettirir.
  • Asenkron replikasyon daha hızlıdır, ancak replikaların birincilin gerisinde kalmasına izin verir.
  • Replika bir yedek değildir; çünkü hatalar da replike edilir.

Örnek

Yazmaları birincile, okumaları replikaya göndermekjavascript
// Using node-postgres (pg) with two connection pools
import pg from "pg";

const primary = new pg.Pool({ connectionString: process.env.PRIMARY_DATABASE_URL });
const replica = new pg.Pool({ connectionString: process.env.REPLICA_DATABASE_URL });

await primary.query("UPDATE users SET name = $1 WHERE id = $2", ["Ada", 42]);

// With asynchronous replication, this read may briefly return the old name
const { rows } = await replica.query("SELECT name FROM users WHERE id = $1", [42]);

Sık sorulan sorular

Replikasyon ile sharding arasındaki fark nedir?

Replikasyon, aynı veriyi çoğunlukla erişilebilirlik ve okuma ölçekleme için birkaç sunucuya kopyalar. Sharding ise depolamayı ve yazmaları ölçeklemek için verinin farklı parçalarını sunuculara böler ve her shard da çoğu zaman replike edilir.

Replikasyon gecikmesi (replication lag) nedir?

Replikasyon gecikmesi, birincilde onaylanan bir değişiklik ile o değişikliğin bir replikada görünmesi arasındaki gecikmedir. Genellikle milisaniyelerdir ancak yoğun yük altında artabilir; bu yüzden en güncel veriyi görmesi gereken okumalar birincile gitmelidir.

Veritabanı replikasyonu yedekle aynı şey midir?

Hayır. Replikasyon, yanlışlıkla yapılan silmeler ve bozulmuş veri dahil her değişikliği replikalara hızla kopyalar. Yedekler ise bir hatadan önceki veriyi geri yüklemenizi sağlayan belirli bir andaki anlık görüntülerdir; bu yüzden ikisine de ihtiyacınız vardır.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar