VPS Sunucuda MySQL Replication

VPS sunucularında MySQL replikasyonu, veritabanı yönetiminin vazgeçilmez bir parçasıdır.

Reklam Alanı

VPS sunucularında MySQL replikasyonu, veritabanı yönetiminin vazgeçilmez bir parçasıdır. Bu teknoloji, verilerin bir ana (master) sunucudan ikincil (slave) sunuculara otomatik olarak kopyalanmasını sağlayarak yüksek erişilebilirlik, felaket kurtarma ve yük dengeleme gibi avantajlar sunar. Özellikle VPS ortamlarında, kaynakların verimli kullanımı ve kesintisiz hizmet için replikasyon kritik öneme sahiptir. Bu makalede, VPS sunucularında MySQL replikasyonunu adım adım kurma sürecini ele alacağız. Kurulum öncesi, her iki sunucuda da MySQL’in aynı sürümde (örneğin 8.0 veya üstü) yüklü olduğundan emin olun ve sunucular arası ağ bağlantısının sorunsuz çalıştığını test edin. Firewall kurallarını düzenleyerek 3306 portunu açın ve root kullanıcı erişimini SSH ile sağlayın.

MySQL Replication Temelleri ve VPS Hazırlığı

MySQL replikasyonu, binary log’lar aracılığıyla çalışır. Master sunucu, veritabanı değişikliklerini binary log’a kaydeder ve slave sunucular bu log’ları okuyarak kendi veritabanlarını senkronize eder. VPS ortamında bu yapı, tek bir sunucunun arızalanması durumunda trafiği diğerine yönlendirme imkanı verir. Öncelikle, her VPS sunucusunda MySQL’i güncelleyin: sudo apt update && sudo apt upgrade mysql-server komutuyla en son sürüme geçin. Ardından, my.cnf dosyasını (/etc/mysql/my.cnf) yedekleyin ve sunucu kimliklerini belirleyin. Master için benzersiz bir server-id (örneğin 1), slave için farklı bir id (örneğin 2) atayın.

Hazırlık aşamasında, veritabanı kullanıcılarını oluşturun. Master’da replikasyon kullanıcısı tanımlayın: CREATE USER 'repl'@'%' IDENTIFIED BY 'güvenlikli_parola'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;. Bu kullanıcı, slave’in master’a bağlanmasını sağlar. VPS sağlayıcınızın kaynak limitlerini göz önünde bulundurun; en az 2 GB RAM ve SSD depolama önerilir. Ağ gecikmesini minimize etmek için sunucuları aynı veri merkezinde konumlandırın. Bu adımlar, replikasyonun stabil çalışması için temel oluşturur ve olası hataları önler.

Master Sunucu Yapılandırması

Master VPS sunucusunda, my.cnf dosyasına şu satırları ekleyin: [mysqld] server-id=1 log-bin=mysql-bin binlog-format=ROW expire_logs_days=7. Bu ayarlar, binary logging’i etkinleştirir ve log’ların 7 gün saklanmasını sağlar. Dosyayı kaydedip MySQL’i yeniden başlatın: sudo systemctl restart mysql. Binary log konumunu öğrenmek için MySQL’e girin ve SHOW MASTER STATUS; komutunu çalıştırın. Çıktıda File ve Position değerlerini not alın; bunlar slave bağlantısı için gereklidir.

Binary Log Yönetimi

Binary log’lar, replikasyonun kalbidir. PURGE BINARY LOGS TO 'mysql-bin.000010'; ile eski log’ları temizleyin, ancak aktif replikasyon sırasında dikkatli olun. VPS’te disk alanı sınırlıysa, expire_logs_days parametresini 3’e düşürün. Log formatını ROW olarak tutun; bu, veri bütünlüğünü korur ve STATEMENT formatına göre daha güvenlidir. Düzenli bakım için cron job ekleyin: 0 2 * * * mysql -e "PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);". Bu, gece 2’de otomatik temizlik yapar ve VPS depolamasını optimize eder.

Güvenlik Ayarları

Master’ı korumak için bind-address=0.0.0.0 yerine belirli IP’leri belirtin ve SSL etkinleştirin: my.cnf’ye require_secure_transport=ON ekleyin. repl kullanıcı şifresini karmaşık tutun ve sadece gerekli IP’lerden erişime izin verin: GRANT REPLICATION SLAVE ON *.* TO 'repl'@'slave_ip';. VPS firewall’unda (ufw veya iptables) sadece slave IP’sine 3306 portu açın. Bu önlemler, yetkisiz erişimleri engeller ve replikasyon trafiğini güvence altına alır. Düzenli log incelemeleriyle (SHOW BINARY LOGS;) sorunları erken tespit edin.

Slave Sunucu Yapılandırması ve Test

Slave VPS’te my.cnf’ye server-id=2 relay-log=mysql-relay-bin read_only=1 ekleyin ve MySQL’i yeniden başlatın. Master’dan aldığınız File ve Position ile slave’i yapılandırın: CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='parola', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; START SLAVE;. Durumu kontrol edin: SHOW SLAVE STATUS\G. Slave_IO_Running ve Slave_SQL_Running: Yes olmalı. Hata varsa, Seconds_Behind_Master değerini izleyin.

Senkronizasyon Doğrulama

Başarılı bağlantı sonrası, master’da bir test tablosu oluşturun: CREATE DATABASE testrep; USE testrep; CREATE TABLE ornek (id INT PRIMARY KEY); INSERT INTO ornek VALUES (1);. Slave’de aynı veriyi kontrol edin: SELECT * FROM testrep.ornek;. Veri görünüyorsa replikasyon çalışıyor demektir. VPS yükü altında gecikmeleri önlemek için relay-log alanını izleyin ve gerekirse slave’i optimize edin. Dump alma alternatifi: mysqldump ile master veritabanını slave’e aktarın ve CHANGE MASTER öncesi yükleyin.

Bakım ve Sorun Giderme

Uzun vadeli bakımda, STOP SLAVE; RESET SLAVE; ile yeniden başlatın. Yaygın hatalar: GTID uyumsuzluğu veya network kesintisi. VPS’te monitöring araçları (örneğin Prometheus) entegre edin. Slave read_only=1 ile yazma koruması sağlayın; sadece raporlama için kullanın. Performansı artırmak için slave_parallel_workers=4 ayarlayın. Düzenli SHOW SLAVE STATUS; kontrolleri ve log rotasyonu, VPS kaynaklarını verimli kılar ve kesintisiz operasyon sağlar.

VPS sunucularında MySQL replikasyonunu başarıyla kurmak, işletmenizin veri güvenilirliğini önemli ölçüde artırır. Bu adımları takip ederek, ölçeklenebilir bir veritabanı mimarisi oluşturun. Düzenli testler ve güncellemelerle sistemi optimize edin; böylece yüksek performanslı bir altyapıya sahip olun. Replikasyon, VPS’inizin potansiyelini tam olarak kullanmanızı sağlar.

Kategori: Genel
Yazar: Meka
İçerik: 661 kelime
Okuma Süresi: 5 dakika
Zaman: Bugün
Yayım: 22-03-2026
Güncelleme: 22-03-2026