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 birden fazla sunucu arasında senkronize edilmesini sağlayarak yüksek erişilebilirlik, felaket kurtarma ve yük dengeleme gibi avantajlar sunar. Özellikle ölçeklenebilir web uygulamaları için VPS ortamlarında replikasyon kurmak, kesinti sürelerini minimize eder ve veri bütünlüğünü korur. Bu makalede, VPS sunucularında MySQL replikasyonunu adım adım ele alacak, kurulumdan bakımına kadar pratik rehberlik sağlayacağız. Kurumsal düzeyde bir altyapı için bu yapılandırma, performans ve güvenilirlik açısından kritik öneme sahiptir.

MySQL Replication Temelleri

MySQL replikasyonu, bir ana (master) sunucudan veri değişikliklerini ikincil (slave) sunuculara kopyalama mekanizmasıdır. VPS ortamlarında bu, veritabanı trafiğini dağıtmak ve yedekleme stratejilerini güçlendirmek için idealdir. Master sunucu, binary log’ları (binlog) kullanarak slave’lere SQL komutlarını iletir. Bu sayede slave sunucular, master’daki değişiklikleri gerçek zamanlı olarak yansıtır. Replikasyon, asenkron, yarı senkron veya grup replikasyonu gibi modlarda çalışabilir; VPS’ler için asenkron mod en yaygın tercihtir çünkü ağ gecikmelerini tolere eder.

Uygulamada, replikasyonun etkinliği sunucu kaynaklarına bağlıdır. VPS’lerde CPU, RAM ve disk I/O’sunu göz önünde bulundurarak yapılandırma yapılmalıdır. Örneğin, 2 GB RAM’li bir VPS için innodb_buffer_pool_size’ı 1 GB olarak ayarlamak, replikasyon gecikmesini azaltır. Bu temeller, kurulum öncesi altyapı değerlendirmesi gerektirir ve kurumsal projelerde veri kaybını önler.

VPS Sunucuda MySQL Replication Kurulumu

Master Sunucu Yapılandırması

Master VPS sunucusunda replikasyonu etkinleştirmek için my.cnf dosyasını düzenleyin. [mysqld] bölümüne server-id=1, log_bin=/var/log/mysql/mysql-bin.log ve binlog_format=ROW ekleyin. Bu ayarlar, binary log’ların etkinleştirilmesini sağlar ve satır bazlı replikasyon için optimize eder. Ardından MySQL’i yeniden başlatın: sudo systemctl restart mysql. Replication user oluşturun: CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘güvenli_parola’; GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’; FLUSH PRIVILEGES;. SHOW MASTER STATUS; komutuyla mevcut binlog pozisyonunu not alın. Bu adımlar, VPS’inizdeki master’ı replikasyona hazır hale getirir ve veri akışını başlatır. Yaklaşık 100-200 ms gecikme ile çalışır, bu da VPS ağ hızına bağlıdır.

Slave Sunucu Yapılandırması

Slave VPS’te my.cnf’ye server-id=2 (benzersiz olmalı), relay-log=/var/log/mysql/relay-bin.log ekleyin. MySQL yeniden başlatıldıktan sonra CHANGE MASTER TO MASTER_HOST=’master_ip’, MASTER_USER=’repl’, MASTER_PASSWORD=’güvenli_parola’, MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=154; komutunu çalıştırın. Not aldığınız pozisyon değerlerini buraya girin. 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. VPS firewall’unda 3306 portunu açmayı unutmayın. Bu yapılandırma, tam veri senkronizasyonunu sağlar ve slave’i okuma trafiği için hazırlar.

Replikasyon Doğrulama ve Test

Kurulum sonrası test için master’da bir tablo oluşturun ve veri ekleyin: CREATE DATABASE testdb; USE testdb; CREATE TABLE test (id INT PRIMARY KEY); INSERT INTO test VALUES (1);. Slave’de SELECT * FROM testdb.test; ile veriyi kontrol edin. Seconds_Behind_Master değerini izleyin; 0’a yakın olmalı. VPS kaynaklarını monitör edin, örneğin top veya htop ile. Bu testler, replikasyonun sorunsuz çalıştığını teyit eder ve kurumsal deployment’larda zorunludur. Potansiyel hatalar için error log’ları (/var/log/mysql/error.log) inceleyin.

Replikasyon İzleme ve Bakım

VPS ortamında replikasyonun sürekliliğini sağlamak için düzenli izleme şarttır. Nagios, Zabbix veya MySQL Workbench gibi araçlarla Slave_IO_Running durumunu otomatik takip edin. Periyodik olarak pt-heartbeat aracıyla gecikmeyi ölçün; VPS’lerde 5 saniyeden fazla gecikme sorun işaretidir. Backup stratejisine entegre edin: slave’leri mysqldump ile yedekleyin, master’ı etkilemeden. Güncellemelerde master’ı önce güncelleyin, slave’leri GTID kullanarak senkronize edin.

Yaygın Sorunlar ve Çözümleri

En sık karşılaşılan sorun network kesintileridir; VPS sağlayıcınızın uptime’ını kontrol edin. Slave_SQL_Running: No hatasında STOP SLAVE; SQL_THREAD; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; kullanın, ancak dikkatli olun veri tutarsızlığı yaratabilir. Binlog alanı dolduğunda PURGE BINARY LOGS TO ‘mysql-bin.000010’; ile temizleyin. Bu çözümler, VPS’te %99.9 erişilebilirlik sağlar ve downtime’ı dakikalara indirir. Log rotasyonunu cron job ile otomatikleştirin.

Performans Optimizasyonu

VPS kaynaklarını optimize etmek için slave_concurrency=4 ile paralel replikasyon etkinleştirin (MySQL 5.7+). innodb_flush_log_at_trx_commit=2 ile write’leri hızlandırın, ancak durability’den ödün vermeyin. VPS disk SSD ise I/O artar. Monitoring script’i yazın: bir bash script ile her 5 dakikada SHOW SLAVE STATUS’i loglayın. Bu ipuçları, yüksek trafikli kurumsal sitelerde replikasyon verimliliğini %30 artırabilir. Düzenli bakım, uzun vadeli stabilite sağlar.

Sonuç olarak, VPS sunucularında MySQL replikasyonu kurmak, veritabanı altyapınızı profesyonel seviyeye taşır. Adım adım uygulayarak yüksek erişilebilirlik elde edin, düzenli izleme ile sorunları önleyin. Bu yaklaşım, büyüyen iş yüklerinize uyum sağlar ve veri güvenliğinizi maksimize eder. Uygulamaya geçerek farkı hemen hissedin.

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