Bloğa geri dön

Ubuntu üzerinde MySQL'de Replikasyon Kurulumu

Ubuntu üzerinde MySQL'de Replikasyon Kurulumu

MySQL replikasyonu kullanıcıların bir veya daha fazla MySQL veritabanının birden fazla kopyasını yönetmesine olanak tanıyan ilginç bir özelliktir. Veriler otomatik olarak kaynak veritabanından replica veritabanlarına kopyalanır. Ana veritabanından ödün vermeden verilerle çalışmak, veri yedekleme veya veritabanı erişimini ölçeklendirmek gibi sayısız durumda yararlı olabilir.

Bu kılavuzda, bir sunucuda kaynak veritabanı olarak bir MySQL örneği kurma ve ardından başka bir sunucuda bunun replikası olarak çalışacak bir MySQL örneği yapılandırma adımlarını inceleyeceğiz.

Gereksinimler

Bu kılavuz, MySQL replikasyonunun çok basit bir örneğini gösterecektir. Bir kaynak ve bir replica veritabanı içerir. Kaynak veritabanı, veritabanının birincil kopyasıyken, replica veritabanı, kaynak veritabanının replikası olacaktır. Gösterimimiz için iki sunucu aşağıdaki IP adresleriyle yapılandırılmıştır:

  • Kaynak sunucu: 31.171.240.179
  • Replica sunucu: 31.171.250.139

Her sunucu en son Ubuntu 20.04 sunucu yapılandırmasıyla yapılandırılmıştır. İlk olarak, Ubuntu sunucunuzu nasıl kuracağınızı gösteren eğitimin adımlarını izleyin. Replica veritabanlarının sayısının daha fazla olabileceğini unutmayın. Bu kılavuz, MySQL'in zaten kurulu ve yapılandırılmış olduğunu varsayar. MySQL kurulumuyla ilgili yardıma mı ihtiyacınız var? Bu kılavuz, MySQL kurulumu ve temel kullanımı.

Kısacası, ihtiyacınız olan paketler şunlardır:

Her iki sistemdeki güvenlik duvarları, her iki sistemden gelen trafiğe şu bağlantı noktasında izin verecek şekilde yapılandırılmalıdır: 3306. Bu, MySQL için varsayılan bağlantı noktasıdır. Uygulamalı UFW temelleri hakkında blog yazımızdan daha fazla bilgi edinebilirsiniz.

Kaynak Veritabanı Yapılandırması

  • MySQL yapılandırmasını ince ayar yapma

MySQL, birincil yapılandırma dosyası olarak my.cnf dosyasını kullanır. my.cnf dosyasını, sunucuyu kaynak olarak belirlemek için güncelleyeceğiz. İlk olarak, yapılandırma dosyasını bir metin düzenleyiciyle açın:

Ardından, mysqld bölümünün altına aşağıdaki satırları ekleyin:

Replication in MySQL 4

Bu satırlar ne anlama geliyor?

  • bind-address: Bir hizmet ile bir IP adresi arasındaki ilişkiyi tanımlayan girdidir. Varsayılan olarak değer 127.0.0.1 (localhost) olabilir. Yeni değer, sunucunun IP adresi olacaktır.
  • server-id: MySQL replikasyonunda, her sunucunun benzersiz bir sunucu kimliğine (server ID) sahip olması gerekir. Herhangi bir sayı olabilir. Basitlik açısından, şu şekilde ayarlanmıştır: 1.
  • log_bin: Replikasyonun gerçek ayrıntılarını depolar. Replica veritabanı, günlükte (log) kayıtlı olan her şeyi kopyalayacaktır.
  • binlog_do_db: Bu girdi, replica sunucusunda replikasyona konu olacak veritabanını belirtir. Birden fazla veritabanı olabilir. Burada örnek veritabanı newdatabase.

şeklindedir. Değişiklikleri yaptıktan sonra yapılandırma dosyasını kaydedin. MySQL'in değişiklikleri şuraya yüklemesi için yeniden başlatılması gerekir: my.cnf:

  • Replica kullanıcısına izin verme

Bir sonraki adım, bir replica kullanıcısı oluşturmak ve uygun ayrıcalıkları vermektir. Bunun MySQL kabuğundan yapılması gerekir. İlk olarak, MySQL kabuğunu başlatın:

Ardından, replica veritabanı için özel bir kullanıcı oluşturun. Kullanıcı adını ve şifreyi uygun şekilde değiştirin:

Şimdi, kullanıcıya uygun ayrıcalıkları verin:

Blog yazımızdan MySQL kullanıcısı ve izinleri hakkında daha fazla bilgi edinebilirsiniz. Ardından, değişikliklerin geçerli olması için yetki tablosunu yeniden yükleyin:

FLUSH PRIVILEGES

  • Veritabanına ince ayar yapma

Replika üzerinde kaynak veritabanının bir kopyasına ihtiyacımız var. Yapıyı manuel olarak oluşturmak mümkündür. Ancak çoğu durumda bu oldukça zahmetlidir. Bu nedenle veritabanını doğrudan dışa aktarmak en optimal çözümdür. Bu örnekte kaynak veritabanı: newdatabase. Mevcut veritabanını değiştirin:

Aşağıdaki komut veritabanını kilitleyerek yeni değişiklikler yapılmasını önleyecektir:

Ardından, veritabanı durumunu kontrol edin:

Replication in MySQL 3

Bu konumdan itibaren replika veritabanı, kaynaktan replikasyona başlayacaktır. Bu sayılar daha sonra yararlı olacaktır, bu nedenle bunları kaydedin. Aynı pencereden herhangi bir değişiklik yapılırsa, MySQL veritabanının kilidini otomatik olarak açacaktır. Bu nedenle, aşağıdaki adımları farklı bir terminal sekmesinde veya penceresinde gerçekleştirmeniz önerilir. Veritabanı hala kilitli. Taşınabilir bir SQL dosyasına aktarın:

İşlem tamamlandı. Sırada, veritabanının kilidini açın:

Son olarak, kabuktan çıkın:

Replika Yapılandırması

Şimdi replika veritabanını yapılandırma zamanı.

  • Kaynak veritabanını içe aktarma

Replika sunucusunda kaynak veritabanının bir kopyasına ihtiyacımız var. Bunu yapmak için daha önce dışa aktardığımız SQL dosyasını kullanacağız. MySQL kabuğunu başlatın:

Bundan sonra, aynı veritabanı adını kullanarak boş bir veritabanı oluşturun:

Ardından, kabuktan çıkın:

Şimdi, SQL dosyasını veritabanına aktarın:

sudo mysql -u

  • MySQL yapılandırmasını ince ayar yapma

MySQL yapılandırma dosyasında belirtilmesi gereken birkaç şey vardır. Yapılandırma dosyasını bir metin düzenleyicide açın:

Aşağıdaki girdiler mysqld bölümünün altına gelecektir. Aksi takdirde çalışmayacaktır. İlki sunucu kimliğidir (server ID). Daha önce belirtildiği gibi, kaynak-replika replikasyon yapılandırmasındaki tüm sunucular için benzersiz olmalıdır. Gösterim amacıyla şu şekilde ayarlanmıştır: 2:

Ardından, aşağıdaki satırları ekleyin:

Replication in MySQL 2

Burada, yalnızca relay-log yeni bir girdidir. Replika sunucusunun replikasyon sırasında oluşturduğu günlük dosyasıdır. Günlük biçimi, ikili günlük (binary log) ile aynıdır. Yapılandırma dosyasını kaydedin ve MySQL'i yeniden başlatın:

  • Replikasyonu etkinleştirme

Son olarak, MySQL içinden replikasyonu etkinleştirmeye hazırız. MySQL kabuğunu başlatın:

Aşağıdaki komutu çalıştırın. İlk olarak, IP adresini, kullanıcı adını ve şifreleri uygun şekilde değiştirin:

CHANGE MASTER TO MASTER_HOST

Komut şunları gerçekleştirir:

  • Mevcut sunucu, kaynak sunucunun replikası olarak işaretlenir.
  • Replika sunucusu uygun oturum açma kimlik bilgilerine sahiptir.
  • Replika sunucusu replikasyona nereden başlayacağını bilir. Kaynak sunucuda kontrol ettiğimiz veritabanı durumunu hatırlıyor musunuz? Kaynak günlük dosyası ve günlük konumu oradan gelir.

Son olarak, replika sunucusunu etkinleştirin:

START REPLICA

  • Çeşitli

Replikanın mevcut durumunun ayrıntılarını kontrol etmeniz mi gerekiyor? MySQL kabuğunda aşağıdaki komutu çalıştırın. Sonundaki \G ifadesi, metinleri daha okunabilir hale getirmek için yeniden düzenlemek içindir:

Replication in MySQL 1

Bir bağlantı sorunu varsa, bunu atlamak için replika sunucusunu başlatmayı deneyin:

Sonuç

MySQL replikasyonunun birçok etkisi vardır. Bu, temel formunun yalnızca kısa bir gösterimidir. Ancak, birden fazla kaynak-replika yapılandırmasına kolayca genişletilebilir. Aynı adımlar, daha üst düzey karmaşık yapılandırmalar için de geçerli olacaktır. Herhangi bir yapılandırmayı sonrasında test etmek her zaman iyi bir fikirdir. Kaynak veritabanında bazı insertdelete veya update komutlarını çalıştırmayı deneyin. Kurulum çalışıyorsa, replika veritabanı her şeyi düzgün bir şekilde almalıdır.

Ayrıca, MySQL ile neler yapabileceğinizi kapsayan blogumuzdaki diğer kaynaklara da göz atabilirsiniz:

Keyifli çalışmalar!

 

author

Hark Labs

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.