Soru Mysql köle nasıl kullanılır gerçekten ana başarısızlık veya yanmış olarak


İyi çalışan MySQL master-slave çoğaltma var; Çoğaltmayı kullanmak için standart prosedürü bulmak için tüm net ve MySQL sitesini araştırdım ama hiçbir şey bulamadım. Yöneticiler çoğaltma yapmaktan mutluluk duyuyorlar, fakat zamanın felaketten kurtarılması söz konusu olduğunda, hiçbir başlangıç ​​planı uygulamaya konulmadı ve halka açık bir şekilde paylaşılmadı.

Ne bilmek istiyorum köle makine nasıl daha sonra hasarlı, yanmış, vb köle makine ustası yerine nasıl yapılır köle makine ana adresi ağ almalıdır ama başka ne yapılmalıdır? Örneğin, MySQL kullanıcı izinlerini değiştirmek veya bazı komutları çalıştırmak! Lütfen varsa referansları ekleyin.


6
2017-08-22 07:42


Menşei


Bunu tespit eden herkes, çoğaltmanın ana ve köle arasında eşzamansız olduğunu not etmelidir. Yani, ana ölür ve köle ustalaştığı söylenirse, kölenin veritabanının durumunu tamamen güncellediğine dair bir garanti yoktur. Veritabanınıza beklediğiniz yazmaların miktarına bağlı olarak veritabanının bayat olması çok olasıdır, hatta büyük olasılıkla mümkündür. - searchengine27


Cevaplar:


Bir DR çözümü için büyük olasılıkla yarı manuel bir işlem istersiniz. Yani, felaketin tam bir DR yük devretme sistemini doğruladığına karar vermeniz gerekiyor ve bu sadece küçük bir ağ saptırması değil ve günlerce geri çalışma ile sıkışıp kalıyorsunuz.

MySQL slave'i master'a çevirmek için, sadece birkaç tane mysql komutu verirsiniz. Mysql detayları bulunabilir İşte.

Tüm süreci betimlemenizi (ve test etmenizi) şiddetle tavsiye ederim ve DR yük devretme işlemini yapmak için kutuda çalıştırmak isteyebileceğiniz başka komutları ekleyin (web katmanını yeniden başlatın veya başka ne gerekiyorsa). Kullanırız fonk Bir yönetim sunucusunda yük devretme komutlarını uygulamalarımızın tüm katmanlarını çalıştırmak için.

Felaket kurtarma başvurusu yaparken site hatası hakkında konuşuyorum. Bir kümelenme yük devretme için, işler muhtemelen otomatik ve çok daha basit olmalıdır.


10
2017-08-22 08:12



çok bilgilendirici ve yararlı, teşekkürler - Jawad Al Shaikh


MySQL sunucusunun replika ile değiştirilmesi gereken tek şey, sunucunun IP adresini değiştirmektir, MySQL'de başka komutlar gerekmez.

Daha fazla rahatlık için biraz rahatlamak istiyorsanız ve bunu otomatik olarak yapmak için aşağıdakileri yapabilirsiniz:

  • Her iki MySQL sunucusunda master-master çoğaltması var, kontrol et İşte
  • İlk ana sunucu tarafından kullanılacak bir Sanal IP oluşturun, bunun için kullanıcı kalp atışı (LinuxHA projesinin bir parçası) ancak tercih ettiğiniz işletim sistemini OS için kullanabilirsiniz.
  • IP'nin değişmesi için parametreleri yapılandırın, bu ağ aşağı iner, diğer makine ölüyor olabilir veya sadece MySQL kapatılıyor olabilir

Bu kurulumun bir çok avantajı var, trafiği diğerine kolayca değiştirerek bir düğümde kolayca bakım yapabilir ve sorunsuz bir kurtarma sağlayabilirsiniz, hatta yataktan kalkmanıza bile gerek kalmaz :) Her ne kadar bir öneri olsa da, Sanal IP parametreleriniz hakkında akıllı olursanız, istenen sonucu olmayan Sanal IP'yi talep etmeye çalışan her iki düğümle de sonlanabilir.


4
2017-08-22 08:12



çok iyi bir çözüm buldum ama sanal ip şeylerini hiç duymadım ve şu an kurulumum usta-üstat değil, cevap olarak seçerdim ama başka birini seçti. Tekrar teşekkürler. - Jawad Al Shaikh


2 MySQL Slaves'e sahip olduğunuzu varsayarsak: slave 1 ve slave 2. Master'ınız kapalıysa, slave 1'i yeni bir master haline getirmeye teşvik edersiniz. İzlemek için bir prosedür öneririm:

Tüm kölelerin röle günlüğündeki ifadeleri aşağıdaki gibi işlediğinden emin olun:

mysql> STOP SLAVE IO_THREAD;
mysql> SHOW PROCESSLIST; to see `Has read all relay log` state.

köle 1'de, şu şekilde bir usta olmak için tanıtın:

mysql> STOP SLAVE;
mysql> RESET MASTER;

köle 2, ile yeni usta gelin:

mysql> CHANGE MASTER TO MASTER_HOST='slave 1';
mysql> START SLAVE;

Son olarak her müşteriye ifadelerini Slave 1'e yönlendirmesi talimatını veriyor.

http://dev.mysql.com/doc/refman/5.0/en/replication-solutions-switch.html


2
2017-08-22 08:11



İyi, ama yine de bir şeyleri benim gereksinimlerimin parçası değildi. ikinci köleyi getireceğim yerden tek bir köle-usta aldım! ama yine de cevap için teşekkür ederim. - Jawad Al Shaikh
Eğer öyleyse, sadece stop slave;ifadeleri işlemek için bir süre bekleyin ve reset master;. - quanta