İçeriğe geç
parazade

Replikasyon Nedir?

İngilizce: Replication

Yayın: · Son güncelleme:

Replikasyon Nedir? Kısaca

Replikasyon, bir veritabanındaki verilerin bir veya daha fazla sunucuya sürekli olarak kopyalanmasıdır. Sunuculardan biri arızalandığında hizmetin sürmesine ve okuma yükünün birden fazla sunucuya dağıtılmasına yardımcı olur.

Replikasyon nedir?
İçindekiler
  1. Replikasyon nedir?
  2. Nasıl çalışır?
  3. Örnek senaryo
  4. Nelere dikkat etmeli?

Replikasyon nedir?

Replikasyon, verinin birden fazla yerde güncel kopyalarının tutulmasıdır. Ana sunucuya yazılan her değişiklik, kopya (replika) sunuculara aktarılır. Böylece aynı veri farklı makinelerde, hatta farklı veri merkezlerinde aynı anda bulunur.

Bu teknik, PostgreSQL, MySQL ve MongoDB gibi yaygın veritabanlarının neredeyse hepsinde yerleşik olarak bulunur.

Nasıl çalışır?

En yaygın yapı birincil-kopya (primary-replica) düzenidir. Yazma işlemleri birincil sunucuya yapılır, kopya sunucular bu değişiklikleri sırayla uygular. Kopyalama iki şekilde gerçekleşebilir:

Yöntem Nasıl çalışır? Sonuç
Eş zamanlı Kopya onay vermeden yazma tamamlanmaz Veri kaybı riski düşük, yazma daha yavaş
Eş zamansız Birincil beklemeden devam eder Hızlı, ama kısa bir gecikme olabilir

Örnek senaryo

Varsayımsal bir haber sitesinde okuma sayısı yazma sayısından çok daha fazla. Bir birincil ve iki kopya sunucu kurulur; editörlerin yazdığı haberler birincile kaydedilir, okurların sayfa istekleri ise kopyalardan karşılanır. Birincil sunucu arızalanırsa kopyalardan biri birincil rolüne yükseltilir ve site kısa bir kesintiyle çalışmaya devam eder.

Nelere dikkat etmeli?

Replikasyon bir yedek değildir. Birincilde yanlışlıkla silinen bir tablo, kopyalara da aynı hızla silinir. Bu yüzden düzenli ve ayrı tutulan yedekler ile bulut yedekleme gibi çözümler yine gereklidir.

Eş zamansız kopyalamada kopyadan okunan veri birkaç saniye geride kalabilir. Kullanıcı profilini güncelleyip hemen sayfayı yenileyen biri eski bilgiyi görebilir; bu tür kritik okumaları birincilden yapmak sorunu çözer.

Sıkça Sorulan Sorular

Replikasyon ile yedekleme arasındaki fark nedir?

Replikasyon veriyi sürekli ve neredeyse anlık kopyalar, hataları da kopyalar. Yedekleme ise belirli anlarda alınan ve geçmişe dönmeyi sağlayan ayrı kopyalardır. İkisi birbirinin yerine geçmez.

Replikasyon yazma performansını artırır mı?

Birincil-kopya yapısında genellikle hayır, çünkü tüm yazmalar yine birincil sunucuya gider. Okuma yükünü dağıtır ve erişilebilirliği artırır.

İlgili terimler

Yüksek Erişilebilirlik(High Availability)Yüksek erişilebilirlik (high availability, HA), bir sistemin arıza olduğunda bile kesintisiz ya da çok kısa kesintiyle çalışmaya devam edecek şekilde tasarlanmasıdır. Yedek bileşenler ve otomatik devralma ile sağlanır.Bulut Yedekleme(Cloud Backup)Bulut yedekleme, bilgisayar, sunucu ya da telefondaki verilerin düzenli aralıklarla internet üzerinden uzak bir veri merkezine kopyalanmasıdır. Cihaz arızası, hırsızlık veya fidye yazılımı gibi durumlarda verinin geri yüklenmesini sağlar.Dağıtık Sistem(Distributed System)Dağıtık sistem, ağ üzerinden birbirine bağlı birden fazla bilgisayarın ortak bir görevi yerine getirmek için birlikte çalıştığı ve kullanıcıya tek bir sistem gibi göründüğü yapıdır. Büyük web servisleri, bulut platformları ve blokzincirler bu modelle çalışır.Yatay Ölçekleme(Horizontal Scaling)Yatay ölçekleme (horizontal scaling, scale out), bir sistemin kapasitesini mevcut sunucuyu güçlendirmek yerine aynı işi yapan yeni sunucular ya da kopyalar ekleyerek artırma yöntemidir.PostgreSQLPostgreSQL (kısaca Postgres), SQL standartlarına sıkı bağlılığı, gelişmiş veri türleri ve eklenti desteğiyle bilinen açık kaynak kodlu, nesne-ilişkisel bir veritabanı yönetim sistemidir.MongoDBMongoDB, verileri tablolar yerine JSON benzeri dokümanlar hâlinde saklayan, doküman tabanlı bir NoSQL veritabanıdır. Esnek yapısı sayesinde alanları kayıttan kayda değişebilen veriler kolayca tutulur.Sunucu(Server)Sunucu (server), ağ üzerinden başka bilgisayarlara ve cihazlara veri, dosya, web sayfası ya da uygulama hizmeti sağlayan bilgisayar veya yazılımdır. İstek gönderen tarafa istemci denir.