Veritabanı yönetimi dünyasında, bir veritabanının başka bir veritabanına kopyalanması, yani replikasyonu, aslında oldukça büyüleyici bir süreçtir. Belki de daha önce “MySQL replikasyonu nedir?” diye merak etmişsinizdir. Şimdi sizi bu sürecin arka planına, adım adım replikasyon yapmanın nasıl olduğunu keşfetmeye davet ediyorum!
Replikasyonun faydaları saymakla bitmez! Yedekleme sağlamak, yük dengelemesi yapmak veya veritabanı ölçeklendirmeyi kolaylaştırmak gibi çok sayıda avantajı vardır. Hadi gelin, bu süreci nasıl gerçekleştirebileceğimize bakalım!
#### 1. MySQL Master (Ana) Sunucusunun Hazırlanması
Öncelikle, master (ana) sunucusundaki verilerin izlenmesi için gerekli ayarlamaları yapmamız gerekiyor. Master sunucusunu yapılandırmak için aşağıdaki adımları takip edelim:
Konfigürasyon dosyasını düzenleyin:
```
sudo nano /etc/mysql/my.cnf
```
Burada, `[mysqld]` bölümünde bazı parametreler eklemeniz gerekecek. Bu parametreler, replikasyon işlemini başlatacak ve replikasyon sırasında veri kaybını engelleyecektir. Aşağıdaki satırları ekleyelim:
```
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name
```
Bu ayarlarla birlikte, master sunucusu tüm işlemlerini loglayacak ve birincil veritabanı (your_database_name) üzerinde işlem yapılacaktır.
# 2. MySQL Slave (Köle) Sunucusunun Hazırlanması
Slave sunucusunun kurulumu da oldukça basittir. İlk önce, slave sunucusunda veritabanı bağlantısını kabul etmek için gerekli yapılandırma dosyasını düzenleyelim:
```
sudo nano /etc/mysql/my.cnf
```
Burada, server-id parametresini farklı bir değerle değiştireceğiz (Örneğin, 2):
```
server-id = 2
relay_log = /var/log/mysql/mysql-relay.log
```
# 3. Master Sunucusunda Replikasyon İçin Kullanıcı Tanımlayın
Master sunucusuna replikasyon için bir kullanıcı oluşturmanız gerekecek. Bu kullanıcı, slave sunucusunun master sunucudan veri alabilmesi için gerekli izinlere sahip olmalı.
```sql
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;
```
Bu, 'repl_user' adında bir kullanıcı oluşturur ve ona tüm veritabanlarında replikasyon için gerekli izinleri verir.
# 4. Master Sunucusundan Veri İletisi Alın
Şimdi, slave sunucusu master sunucusundan veri almak için gerekli bilgileri almalıdır. Bu bilgiyi almak için master sunucusunda aşağıdaki komutu çalıştırın:
SHOW MASTER STATUS;
```
Burada `File` ve `Position` değerlerine ihtiyacınız olacak. Bunlar, slave sunucusunun ne zaman başlayacağına karar verir.
# 5. Slave Sunucusunda Replikasyonu Başlatın
Slave sunucusunda aşağıdaki komutları çalıştırarak replikasyonu başlatın:
CHANGE MASTER TO
MASTER_HOST='master_ip_address',
MASTER_USER='repl_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 154;
START SLAVE;
```
Burada `MASTER_HOST`, master sunucusunun IP adresini, `MASTER_LOG_FILE` ve `MASTER_LOG_POS` ise az önce aldığınız bilgileri temsil eder.
# 6. Replikasyon Durumunu Kontrol Edin
Replikasyonun doğru şekilde çalışıp çalışmadığını kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
SHOW SLAVE STATUS\G
```
Burada `Slave_IO_Running` ve `Slave_SQL_Running` değerlerinin “Yes” olması gerekir. Eğer her şey yolunda giderse, replikasyon başarılı bir şekilde başlatılmış demektir!
### Sonuç
MySQL replikasyonu, veritabanınızı çok daha güvenli ve ölçeklenebilir hale getirmenin harika bir yoludur. Bu adımları izleyerek, hızlıca veritabanınızı kopyalayabilir ve sisteminizin daha dayanıklı olmasını sağlayabilirsiniz.