Genel MySQL

MySQL’de Veri Replikasyonu Nasıl Yapılır?

MySQL'de Veri Replikasyonu Nasıl Yapılır?

MySQL’de Veri Replikasyonu Nasıl Yapılır?

MySQL veri replikasyonu, veritabanı yönetiminde oldukça kritik bir işlemdir. Verilerin farklı sunucular arasında senkronize edilmesini sağlar ve veri kaybını en aza indirir. Bu makalede, MySQL’de veri replikasyonu nasıl yapılır detaylı bir şekilde ele alacağız. İster bir yazılımcı ister bir bilgisayar mühendisi olun, bu süreç ile veritabanı yönetim becerilerinizi geliştirebilirsiniz.

MySQL Veri Replikasyonunun Amacı

Replikasyonun birçok kullanım alanı ve faydası bulunmaktadır:

Yük Dengeleme: Okuma işlemlerini birden fazla sunucuya yayarak veritabanı yükünü azaltır.
Yüksek Erişilebilirlik ve Yedekleme: Birincil sunucu arızalandığında erişilebilirliğiniz devam eder.
Veri Dağıtımı: Farklı lokasyonlarda bulunan sunucular arasında veri paylaşımını kolaylaştırır.

Bu avantajlardan yararlanmak, doğru yapılandırma ile mümkündür. Bu nedenle, MySQL replikasyonunun nasıl yapıldığını adım adım incelemek önemlidir.

MySQL Replikasyonu Adımları

1. Sunucu Hazırlıkları

İlk olarak, replikasyonda yer alacak sunucularınızı hazırlamanız gerekmektedir. Eğer replikasyon için güçlü bir alt yapıya ihtiyacınız var ise VDS sunucu veya Cloud sunucu seçeneklerini değerlendirebilirsiniz.

2. Ana Sunucu (Master) Ayarları

Master sunucuda replikasyonun başlaması için birkaç önemli konfigürasyon yapılması gerekmektedir.

my.cnf Dosyası

Master sunucunun my.cnf dosyasını aşağıdaki gibi düzenleyin:

[mysqld]
log-bin=mysql-bin
server-id=1
binlog-do-db=your_database_name

log-bin: Binlog dosyalarının tutulmasını sağlar, replikasyon için gereklidir.
server-id: Her sunucunun benzersiz bir kimliği olmalıdır. Master için genellikle 1 kullanılır.
binlog-do-db: Hangi veritabanlarının replikasyon için kullanılacağını belirtir.

Replikasyon Kullanıcısı Oluşturma

Replikasyon işlemi için özel bir kullanıcı oluşturmak gerekmektedir:

CREATE USER 'replica_user'@'%' IDENTIFIED BY 'secure_password';
GRANT REPLICATION SLAVE ON . TO 'replica_user'@'%';
FLUSH PRIVILEGES;

3. Yedek Oluşturma

Replikasyonun tutarlılığı için Master sunucunun bir yedeğini almalısınız:

mysqldump -u root -p --all-databases --master-data > database_dump.sql

4. Slave Sunucu Ayarları

Slave sunucu, Master sunucudan veri almak için yapılandırılmalıdır.

my.cnf Dosyası

Slave sunucunun my.cnf dosyasını aşağıdaki gibi düzenleyin:

[mysqld]
server-id=2
relay-log=relay-log

server-id: Slave sunucu için benzersiz bir kimlik belirleyin, örneğin 2.

Master Bağlantısı Kurma

Slave sunucuda aşağıdaki SQL komutları ile Master sunucuya bağlanın:

CHANGE MASTER TO
MASTER_HOST='master_host_ip',
MASTER_USER='replica_user',
MASTER_PASSWORD='secure_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=120;

MASTER_LOG_FILE ve MASTER_LOG_POS değerleri, aldığınız yedek dosyasındaki bilgilerle eşleşmelidir.

Slave Sunucuyu Başlatma

Son olarak, replikasyonu başlatmak için:

START SLAVE;

Slave sunucunun durumu SHOW SLAVE STATUS\G; komutu ile kontrol edilebilir ve potansiyel hatalar hızlıca çözülmelidir.

Tüm Sürecin Yönetimi

Replikasyon sürecini kurduktan sonra, sunucularınızın güvenliğini ve stabilitesini düşünmelisiniz. Örneğin, FireWall hizmetleri ile ek güvenlik sağlayabilirsiniz.

Yüksek erişilebilirlik ve veri kaybını önlemek için, yukarıda detaylandırılan adımları takip ederek güçlü bir replikasyon altyapısı oluşturabilirsiniz. Bu sayede MySQL veritabanınız daha güvenli ve efektif bir yapıya kavuşacaktır.