Ubuntu sunucularında MariaDB replikasyonu, veritabanı yüksek kullanılabilirliğini artırmak ve veri yedekliliğini sağlamak için kritik bir özelliktir.
Ubuntu sunucularında MariaDB replikasyonu, veritabanı yüksek kullanılabilirliğini artırmak ve veri yedekliliğini sağlamak için kritik bir özelliktir. Replikasyon, master sunucudaki değişikliklerin slave sunucuya otomatik olarak kopyalanmasını sağlar. Bu yapı, okuma işlemlerini dağıtarak performansı optimize eder ve felaket kurtarma senaryolarında güvenilirlik sunar. Ubuntu ortamında MariaDB replikasyonunu kurmak, standart araçlarla hızlıca gerçekleştirilebilir. Bu makalede, adım adım kurulum, konfigürasyon ve test süreçlerini ele alacağız. Kurumsal ortamlarda veri bütünlüğünü korumak amacıyla, her aşamada dikkatli yapılandırma öneriyoruz. Replikasyonun başarılı olması için ağ bağlantısı, firewall ayarları ve sunucu saat senkronizasyonu öncelikle sağlanmalıdır.
Replikasyon sürecine başlamadan önce, her iki Ubuntu sunucusunda (master ve slave) MariaDB’nin en güncel sürümünü kurun. Ubuntu 22.04 LTS gibi stabil bir sürümde çalışmanızı tavsiye ederiz. Öncelikle, paket listesini güncelleyin ve MariaDB repository’sini ekleyin. Bu, resmi MariaDB paketlerini kullanmanızı sağlar ve güvenlik güncellemelerini kolaylaştırır.
apt update && apt upgrade -y komutunu çalıştırın.curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc | sudo gpg --dearmor -o /usr/share/keyrings/mariadb-keyring.gpg.echo "deb [signed-by=/usr/share/keyrings/mariadb-keyring.gpg] https://dlm.mariadb.com/repo/mariadb-server/10.11/repo/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/mariadb.list (sürümü uyarlayın).sudo apt update && sudo apt install mariadb-server -y.sudo systemctl enable --now mariadb.Kurulum sonrası güvenlik script’ini çalıştırarak root şifresini ayarlayın: sudo mariadb-secure-installation. Her sunucuya benzersiz server-id atayın (/etc/mysql/mariadb.conf.d/50-server.cnf dosyasında [mysqld] altında server-id=1 master için, server-id=2 slave için). Bu ayarlar, replikasyonun temelini oluşturur ve çakışmaları önler. Firewall’da 3306 portunu açmayı unutmayın: sudo ufw allow 3306. Bu hazırlık aşaması, yaklaşık 100 kelimelik bir özetle özetlenemez; detaylı adımlar veri kaybını minimize eder.
Master sunucuda replikasyonu etkinleştirmek, binary log’ların tutulmasını gerektirir. Bu loglar, slave’e gönderilecek değişiklikleri kaydeder. Konfigürasyon dosyasını düzenleyin ve MariaDB’yi yeniden başlatın. Ardından, slave’in bağlanacağı bir replikasyon kullanıcısı oluşturun.
/etc/mysql/mariadb.conf.d/50-server.cnf dosyasının [mysqld] bölümüne şu satırları ekleyin: log_bin = /var/log/mysql/mariadb-bin, binlog_do_db = veritabanı_adı (isteğe bağlı filtreleme için), bind-address = 0.0.0.0. Değişiklikleri kaydedin ve sudo systemctl restart mariadb ile uygulayın. Binary log formatını ROW olarak ayarlamak (binlog_format = ROW), veri tutarlılığını artırır. Bu ayarlar, yüksek hacimli işlemler için optimize edilmiştir ve master’ın yükünü dengeler.
MariaDB’ye bağlanın: sudo mariadb -u root -p. Ardından şu SQL komutlarını çalıştırın: CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘güvenli_şifre’; GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’; FLUSH PRIVILEGES;. Master status’ünü not alın: SHOW MASTER STATUS;. File ve Position değerlerini slave için kaydedin. Bu kullanıcı, yalnızca replikasyon için yetkilendirilmiştir, böylece güvenlik sağlanır. Kurumsal standartlarda, şifreyi güçlü tutun ve erişimi sınırlayın.
Slave sunucuda, master’dan veri çekmek için relay log’lar tanımlanır. Konfigürasyonu tamamladıktan sonra CHANGE MASTER TO komutuyla bağlantı kurun ve slave’i başlatın. Bu aşama, veri senkronizasyonunun kalbidir.
Slave’da konfigürasyon dosyasına relay-log = /var/log/mysql/relay-bin ve server-id=2 ekleyin, servisi yeniden başlatın. MariaDB’ye bağlanarak: CHANGE MASTER TO MASTER_HOST=’master_ip’, MASTER_USER=’repl’, MASTER_PASSWORD=’şifre’, MASTER_LOG_FILE=’not_aldığınız_file’, MASTER_LOG_POS=not_aldığınız_pos;. Bu komut, master’daki binary log pozisyonundan senkronizasyonu başlatır. IP adresini doğru girin ve ağ gecikmesini test edin.
START SLAVE; komutunu çalıştırın. Durumu kontrol edin: SHOW SLAVE STATUS\G;. Slave_IO_Running ve Slave_SQL_Running: Yes olmalıdır. Seconds_Behind_Master değeri düşükse senkronizasyon başarılıdır. Hatalar için Last_Error alanını inceleyin. Başarılı kurulumda, master’da bir tablo oluşturup slave’de görmelisiniz: master’da CREATE DATABASE testdb; USE testdb; CREATE TABLE test (id INT); INSERT INTO test VALUES (1);. Slave’de sorgulayın. Bu test, replikasyonun çalıştığını doğrular.
MariaDB replikasyonu Ubuntu’da başarıyla uygulandığında, sisteminiz ölçeklenebilir ve dayanıklı hale gelir. Düzenli bakım için cron job’larla log rotasyonu ayarlayın ve monitöring araçları entegre edin. Potansiyel sorunlar gibi ağ kesintilerinde GTID (Global Transaction ID) kullanımını etkinleştirerek kurtarmayı kolaylaştırın (gtid_mode=ON). Bu yapılandırma, kurumsal veritabanı yönetiminde standart bir yaklaşımdır ve uzun vadeli performans sağlar.