Çift ana MySQL çoğaltması kullanıyorum ve şimdi çoğaltması olmayan tek bir veritabanına geçmek istiyorum. Her iki veritabanında da çoğaltmayı nasıl tamamen devre dışı bırakabilirim?
Çift ana MySQL çoğaltması kullanıyorum ve şimdi çoğaltması olmayan tek bir veritabanına geçmek istiyorum. Her iki veritabanında da çoğaltmayı nasıl tamamen devre dışı bırakabilirim?
Yanıtlar:
Bir master-master kurulumuyla çoğaltmayı tamamen devre dışı bırakmak için her bir slave'de aşağıdakileri yapmanız gerekir:
STOP SLAVE;
RESET SLAVE;
( RESET SLAVE ALL;
MySQL 5.5.16 ve sonrası için kullanın )SLAVE STATUS
sonra bile sorguların eski çoğaltma bilgilerini rapor eder RESET SLAVE
. İzleme veya uzaktan yapılandırma yönetimi araçlarını bilmek önemlidir. CentOS 6.5'teki MySQL 5.5.38 ile doğrulanmış davranış.
Bunun eski bir soru olduğunu biliyorum ama köle değişkenlerini de sıfırlamak zorunda olduğumu öğrendim. Önerilen şekilde "blah" kullanıyorsanız, sunucu 'blah' sunucusunu bulmaya başlangıçta çalışacaktır.
Değişim
MASTER
içinMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';
Makinenin artık bir köle olmadığını doğrulayabilirsiniz.
SHOW SLAVE STATUS \G;
CHANGE MASTER TO MASTER_HOST=''
şimdi bir hata veriyor.
Bağımlı sunucu (lar) da:
MySQL'in ana veya köle üzerinde yeniden başlatılmasına gerek yoktur. Komple dokümantasyon MySQL Referans Kılavuzunun 19. bölümünde bulunabilir .
Önceki yapılandırmanıza geri dönmeye karar vermeniz durumunda, çoğaltma ayarlarının geri kalanını yerinde bırakmanızı tavsiye ederim. Bu şekilde, tüm kumaş kurulumunu yeniden oluşturmak yerine, verileri yukarı itmeniz ve köle konumunu sıfırlamanız (atla-köle başlangıcını kaldırmayı unutmayın) gerekir.
MySQL sürümünden bağımsız olarak, bunu yapmanın en eksiksiz yolu şudur:
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
Bu en son sürüm için çalışmalı, çünkü çoğaltma ayarı hala MySQL 5.5 için RAM'de kalıyor.
Bu konuda benzer bir soruyu yanıtladım: MySQL'in önceki kölesini master olmak ve köle durumu bilgilerini nasıl değiştirmek?
My.cnf dosyasını tek başına düzenlemek, çoğaltmayı devre dışı bırakmak için yeterli değildir. Aslında, artık bunu sağlamanın önerilen yolu değildir. Girişleri my.cnf dosyasına koymak yalnızca bir sonraki başlangıç için etkilidir ve komutu mysql istemcisine girmiş gibi davranın:
mysql> master'ı master_host = 'blah', master_user = 'blah', master_password = 'blah' ...;
Her iki yöntem de master.info adlı veri dizininde bir dosya oluşturacaktır . Bu dosya bulunduğu sürece, sunucu buradaki ayrıntıları kullanarak kopyalamaya çalışacaktır. "RESET SLAVE;" İlk cevapta listelenen komut, master.info dosyasından (ayrıca relay-log.info dosyasından) kurtulacaktır . İlk cevapta belirtildiği gibi, my.cnf dosyasında bu yapılandırma bilgisinin olmadığından emin olmak istersiniz, aksi takdirde sunucunun bir sonraki yeniden başlatılmasında, günlüğe kaydetme yeniden etkinleştirilecektir.
Bir cevap burada:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* MySQL yapılandırma dosyasını düzenleyin: /etc/my.cnf ve [7] başlıklı bölüme aşağıdaki 7 satırı kaldırın:
port=3306
log-bin
server-id=1
master-host=10.0.0.2
master-user=server_1_repl
master-password=server_1_passwd
master-port=3306*
MySQL'i yeniden başlatın.
Bunu Harrison Fisk'in cevabına ekliyorum:
Kullandıysanız RESET SLAVE ALL;
yeniden başlatma gerekli değildir.
Ayrıca, köle üzerinde devre dışı bırakılmış etkinlikleri etkinleştirmek isteyebilirsiniz:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
Her biri için:
alter event <event_name> enable;