Veritabanı Replikasyonu (Master-Slave) Nedir? Nasıl Yapılır?

Veritabanı replikasyonu, modern veri yönetim sistemlerinin vazgeçilmez bir bileşenidir.

Veritabanı replikasyonu, modern veri yönetim sistemlerinin vazgeçilmez bir bileşenidir. Özellikle yüksek erişilebilirlik, yük dengeleme ve felaket kurtarma senaryolarında kritik rol oynar. Master-Slave replikasyonu, bu yaklaşımların en yaygın ve temel modellerinden biridir. Bu modelde, birincil sunucu (Master) verileri günceller ve ikincil sunucular (Slave) bu güncellemeleri otomatik olarak kopyalar. Bu makalede, Master-Slave replikasyonunun ne olduğunu, nasıl çalıştığını ve pratik kurulum adımlarını detaylı bir şekilde ele alacağız. MySQL veritabanı örneğini temel alarak, kurumsal ortamlar için adım adım rehber sunacağız.

Veritabanı Replikasyonu (Master-Slave) Nedir?

Master-Slave replikasyonu, veritabanı işlemlerinin birincil sunucudan (Master) ikincil sunuculara (Slave) asenkron veya senkron olarak kopyalanmasıdır. Master sunucu, INSERT, UPDATE ve DELETE gibi yazma işlemlerini gerçekleştirir ve bu değişiklikleri binary log dosyalarına kaydeder. Slave sunucular ise bu logları okuyarak kendi veritabanlarını senkronize eder. Bu yapı, okuma işlemlerini Slave’lere dağıtarak sistem performansını artırır ve Master sunucunun yükünü hafifletir.

Bu modelin temel avantajı, veri yedekliliğidir. Örneğin, Master sunucuda bir arıza durumunda Slave’lardan biri hızlıca Master olarak terfi ettirilebilir. Replikasyon, SQL thread’leri ve I/O thread’leri aracılığıyla çalışır: I/O thread’i Master’dan logları alır, SQL thread’i ise bunları uygular. Kurumsal uygulamalarda, raporlama sorgularını Slave’lere yönlendirerek Master’ı korumak yaygındır. Ancak, replikasyon gecikmeleri (lag) izlenmeli ve çakışan yazma işlemleri önlenmelidir.

MySQL’de Master-Slave Replikasyonu Nasıl Kurulur?

Master Sunucu Yapılandırması

MySQL Master sunucuyu hazırlamak için öncelikle my.cnf dosyasını düzenleyin. server-id=1 belirterek benzersiz bir ID atayın. log-bin=mysql-bin ile binary logging’i etkinleştirin ve binlog-do-db=ornek_veritabani ile replike edilecek veritabanlarını belirtin. Sunucuyu yeniden başlatın: systemctl restart mysqld. Ardından, replikasyon kullanıcısı oluşturun: CREATE USER 'repl'@'%' IDENTIFIED BY 'guclu_sifre'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';. SHOW MASTER STATUS; komutuyla mevcut binary log dosyasını ve pozisyonunu not edin. Bu bilgiler Slave kurulumunda gereklidir ve yaklaşık 100 kelimelik bu adım, replikasyonun temelini atar.

Slave Sunucu Yapılandırması

Slave sunucuda my.cnf’ye server-id=2 ekleyin ve relay-log=mysql-relay-bin ile relay log’u tanımlayın. Sunucuyu yeniden başlatın. MySQL’e bağlanarak CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='guclu_sifre', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; komutunu çalıştırın. Burada master_ip, log_file ve pozisyon Master’dan alınan değerlerdir. Sonra START SLAVE; ile replikasyonu başlatın. SHOW SLAVE STATUS\G; ile Slave_IO_Running ve Slave_SQL_Running’in Yes olduğunu doğrulayın. Bu süreç, veri senkronizasyonunu sağlar ve gecikmeleri önlemek için ağ bağlantısını optimize edin.

Replikasyonu İzleme ve Sorun Giderme

Replikasyonun sağlıklı çalışmasını sağlamak için düzenli izleme şarttır. SHOW SLAVE STATUS ile Seconds_Behind_Master değerini takip edin; yüksek değerler gecikme belirtir. Hatalar için Last_Error alanını inceleyin. Örneğin, binary log pozisyonu uyumsuzluğunda STOP SLAVE; ardından doğru pozisyonu belirleyip START SLAVE; yapın. GTID (Global Transaction Identifier) kullanımını etkinleştirerek (gtid_mode=ON) daha güvenilir replikasyon elde edin. Bu adımlar, kurumsal ölçekte kesintisiz operasyonlar için esastır ve sistem loglarını (/var/log/mysql/error.log) düzenli kontrol edin.

Master-Slave Replikasyonunun Avantajları ve En İyi Uygulamalar

Bu replikasyon modeli, okuma ölçeklenebilirliği sağlar; Slave’ler raporlama ve analitik sorgular için idealdir. Yüksek erişilebilirlikte, failover senaryoları için uygundur. Veri yedekliliği sayesinde felaket kurtarma süresi kısalır. Kurumsal ortamlarda, birden fazla Slave ile coğrafi dağılım yapılabilir. Ancak, yazma işlemlerini sadece Master’a yönlendirin ve replikasyon filtrelerini (replicate-do-db) dikkatli kullanın.

En iyi uygulamalar arasında, SSL ile şifreli bağlantı kurmak (MASTER_SSL=1), otomatik failover script’leri (örneğin, MHA – Master High Availability) entegre etmek ve periyodik tam yedekleme almak yer alır. Replikasyon lag’ini azaltmak için hızlı diskler ve yeterli RAM kullanın. Test ortamında kurulum yaparak production’a geçin. Bu yaklaşımlar, sistem güvenilirliğini maksimize eder ve işletme sürekliliğini güvence altına alır.

Sonuç olarak, Master-Slave replikasyonu, veritabanı altyapınızı güçlendirmenin etkili bir yoludur. Yukarıdaki adımları takip ederek, kendi ortamınızda hızlıca uygulayabilirsiniz. Düzenli bakım ve izleme ile uzun vadeli faydalar elde edin; bu, veri odaklı kurumsal stratejilerinizin temel taşı olacaktır.

Yazar: Lorem
çerik: 545 kelime
Okuma Süresi: 4 dakika
Zaman: Bugün
Yayım: 24-02-2026
Güncelleme: 24-02-2026