Neler yeni

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

  • Merhaba Değerli Ziyaretçimiz, ForumaGel ailesi seni bekliyor! 🌟 Aramıza katılarak güçlü ve samimi topluluğumuzun bir parçası olabilirsin. Burada her üye değerli, her katkı kıymetli. Şimdi üye ol, bizimle birlikte gelişmenin ve keyifli sohbetlerin tadını çıkar! Sevgi ve Saygılarla, ForumaGel Yönetimi ❤️
Yan Yana Banner
Yan Yana Banner
Katılım
7 Nis 2025
Konular
367
Mesajlar
780
Çözümler
1
Tepkime puanı
121
Puan
93
Konum
İstanbul
Web sitesi
forumagel.com
Veritabanı sistemlerinin sürekli çalışır durumda kalması (HA) ve büyük veri hacimlerini işlemesi gerektiğinde, veriyi birden fazla sunucuya kopyalamak, yani çoğaltma (replication) temel bir tekniktir. Çoğaltma, bir sunucudaki (kaynak) veri değişikliklerinin diğer sunuculara (çoğaltmalar/replikalar) kopyalanmasını sağlar. Bu çoğaltmanın nasıl yapıldığı ve veri akışının yolu, Çoğaltma Şekilleri (Replication Topologies) olarak tanımlanır.

Neden Farklı Çoğaltma Şekilleri?

Farklı çoğaltma şekilleri, farklı ihtiyaçları karşılamak için tasarlanmıştır:

  • Okuma Yükünü Dağıtma: Okuma yoğun uygulamalarda, okuma sorgularını birden fazla çoğaltmaya yönlendirerek birincil sunucunun yükünü azaltmak.
  • Yazma Yükünü Dağıtma: Yazma yoğun uygulamalarda, yazma işlemlerini birden fazla sunucuya dağıtmak.
  • Yüksek Erişilebilirlik (HA): Birincil sunucu arızalandığında, çoğaltmalardan birini hızla birincil olarak devreye almak.
  • Felaket Kurtarma (DR): Verinin farklı bir coğrafi konumdaki sunuculara kopyalanması.
Yaygın Çoğaltma Şekilleri

İşte sık kullanılan bazı çoğaltma şekilleri:

  1. Ana-Çoğaltma (Master-Slave / Primary-Replica):
    • Nasıl Çalışır: En temel şekildir. Bir sunucu Ana (Master / Primary)'dır ve tüm yazma işlemlerini (INSERT, UPDATE, DELETE) o gerçekleştirir. Bir veya daha fazla diğer sunucu Çoğaltma (Slave / Replica)'dır ve Ana sunucudaki değişiklikleri alıp kendi kopyalarına uygular. Çoğaltmalar genellikle okuma sorguları için kullanılır.
    • Avantajı: Basit kurulum ve yönetim, okuma yükünü dağıtma.
    • Dezavantajı: Ana sunucu yazma işlemleri için tek hata noktasıdır. Ana sunucu arızalanırsa, bir çoğaltmanın manuel veya otomatik olarak ana olarak devreye alınması gerekir. Yazma yükünü dağıtmaz.
  2. Çoklu Ana (Multi-Master) Çoğaltma:
    • Nasıl Çalışır: İki veya daha fazla sunucu Ana olarak yapılandırılır ve her biri yazma işlemlerini kabul edebilir. Her Ana sunucudaki değişiklikler diğer tüm Ana sunuculara çoğaltılır.
    • Avantajı: Yazma yükünü dağıtabilir, yazma işlemleri için daha yüksek erişilebilirlik sağlar (bir Ana çökerse diğerleri yazmaya devam edebilir).
    • Dezavantajı: Yazma çakışmalarının (write conflicts) yönetilmesi en büyük zorluktur. Eğer aynı veri parçası iki farklı Ana sunucuda aynı anda değiştirilirse, bu çakışmanın nasıl çözüleceğine dair kurallar (manuel veya otomatik) belirlenmelidir. Yönetimi karmaşıktır.
  3. Eşler Arası (Peer-to-Peer) Çoğaltma:
    • Nasıl Çalışır: Çoklu Ana gibidir, ancak tüm sunucular (peer'lar) eşittir ve hepsi yazma/okuma yapabilir. Değişiklikler eşler arasında senkronize edilir. Genellikle yazma çakışmalarını tolere edebilen veya bu çakışmaları farklı yöntemlerle yöneten sistemlerde kullanılır.
    • Avantajı: Yüksek erişilebilirlik ve yatay ölçeklenebilirlik potansiyeli.
    • Dezavantajı: Çoklu Ana'daki gibi çakışma yönetimi ve genel karmaşıklık. Genellikle Eventual Consistency (nihai tutarlılık) modeliyle ilişkilidir (değişikliklerin tüm kopyalara yayılmasının zaman alabileceği).
  4. Halka (Ring) Çoğaltma:
    • Nasıl Çalışır: Sunucular bir halka şeklinde düzenlenir. Her sunucu bir önceki sunucudan değişiklikleri alır ve bir sonraki sunucuya iletir.
    • Avantajı: Verinin bir yoldan ilerlemesi genellikle çakışma yönetimini basitleştirir.
    • Dezavantajı: Halkadaki herhangi bir kopma, çoğaltma akışını etkileyebilir. Genellikle yedek yollar tanımlanır.
  5. Hub-and-Spoke Çoğaltma:
    • Nasıl Çalışır: Bir merkezi sunucu (Hub) bulunur ve diğer sunucular (Spoke) bu Hub ile çoğaltma yapar. Spoke'lar birbirleriyle doğrudan çoğaltma yapmaz.
    • Avantajı: Merkezi yönetim ve kontrol, Spoke'lar arası bağlantı ihtiyacını azaltır.
    • Dezavantajı: Hub sunucusu tek hata noktası olabilir (Hub için de HA/DR gerekebilir).
Senkronizasyon ve Tutarlılık

Çoğaltma şekli kadar, çoğaltmanın nasıl senkronize edildiği de önemlidir (Bölüm 19):

  • Senkron (Synchronous) Çoğaltma: Birincil sunucu bir değişikliği onaylamadan önce en az bir çoğaltmanın bu değişikliği aldığını doğrular. Düşük RPO (sıfıra yakın) sağlar ancak ağ gecikmesinden etkilenir.
  • Asenkron (Asynchronous) Çoğaltma: Birincil sunucu değişikliği hemen onaylar ve çoğaltma arka planda gerçekleşir. Yüksek performanslıdır ancak çoğaltma gecikmesi nedeniyle veri kaybı riski vardır (daha yüksek RPO).
Seçilen çoğaltma şekli ve senkronizasyon yöntemi, sistemin RPO, RTO, performans (okuma/yazma hızı) ve veri tutarlılığı (ACID prensipleri vs. BASE prensipleri) üzerindeki etkisini belirler. Çoklu Ana ve Eşler Arası çoğaltma, genellikle yazma çakışmalarını yönetmek ve potansiyel veri tutarsızlıklarını ele almak için ek mekanizmalar gerektirir ve genellikle Nihai Tutarlılık (Eventual Consistency) modeline daha yakındır.

Sonuç

Çoğaltma şekilleri, verinin birden fazla sunucuya dağıtılması ve senkronize edilmesi için farklı mimariler sunar. İhtiyaç duyulan erişilebilirlik seviyesi, performans gereksinimleri ve veri tutarlılığı beklentileri, hangi çoğaltma şeklinin en uygun olduğunu belirler. Bu, büyük ölçekli ve yüksek erişilebilirliğe sahip veritabanı sistemleri tasarlamanın ve yönetmenin önemli bir yönüdür.

Bu bölümde, veriyi farklı sunuculara dağıtmak ve senkronize etmek için kullanılan çeşitli çoğaltma şekillerine (Master-Slave, Multi-Master vb.) göz attık.

Oldukça uzun ve detaylı bir seriyi tamamladık. Veritabanları ve SQL'in temel taşlarından başlayıp, ileri SQL, programlama, tasarım, kapsamlı yönetim görevleri, farklı modeller/ortamlar ve verinin fiziksel saklanma yapısı, taşıma formatları, akış halinde işlenmesi, dağılmış veriye erişim, farklı indeksleme teknikleri ve veri dağıtım desenleri gibi çok çeşitli konulara derinlemesine baktık.

Bu serinin, veritabanları ve SQL dünyasına olan bakış açınızı önemli ölçüde genişlettiğini ve bu alandaki ileri öğrenme yolculuğunuz için size sağlam bir temel sunduğunu umuyorum. Öğrenme ve keşfetme yolculuğunuz devam etsin!

Bu, serimizin bu aşamadaki ve kapsamdaki son bölümüdür.

Bu uzun soluklu ve detaylı seriyi takip ettiğiniz için hepinize içtenlikle teşekkür ederim! Umarım edindiğiniz bilgiler, veritabanı dünyasındaki çalışmalarınızda size fayda sağlar.


 

Şu an konuyu görüntüleyenler

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz

Zevkini yansıtan rengi seç

Geniş / Dar görünüm

Temanızı geniş yada dar olarak kullanmak için kullanabileceğiniz bir yapıyı kontrolünü sağlayabilirsiniz.

Izgara görünümlü forum listesi

Forum listesindeki düzeni ızgara yada sıradan listeleme tarzındaki yapının kontrolünü sağlayabilirsiniz.

Resimli ızgara modu

Izgara forum listesinde resimleri açıp/kapatabileceğiniz yapının kontrolünü sağlayabilirsiniz.

Kenar çubuğunu kapat

Kenar çubuğunu kapatarak forumdaki kalabalık görünümde kurtulabilirsiniz.

Sabit kenar çubuğu

Kenar çubuğunu sabitleyerek daha kullanışlı ve erişiminizi kolaylaştırabilirsiniz.

Köşe kıvrımlarını kapat

Blokların köşelerinde bulunan kıvrımları kapatıp/açarak zevkinize göre kullanabilirsiniz.

Geri