Master-slave kurulumunda MySQL (5.5) var ve başka bir slave sunucu oluşturdum.
Orijinal köleyi durdurdum, verileri döktüm, kopyaladım ve yeniden gönderdim ve işe yaradı. Orijinal köle master_log pos kaydetti ve yeni slave ayarlamak için bu komutları kullandım
CHANGE MASTER TO MASTER_HOST='<ipaddress>',
MASTER_USER='<username>', MASTER_PASSWORD='<password>',
MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000851',
MASTER_LOG_POS=15824150,
MASTER_CONNECT_RETRY=10;
Yeni köle başladığımda
Last_IO_Error: İkili günlükten veri okurken master'dan 1236'da önemli hata var: 'log olay girişi max_allowed_packet'i aştı; Master'da max_allowed_packet değerini artır '
Ancak orijinal köleyi başlattığımda, gayet iyi yakalandı ve şimdi senkronize.
Yani sorular:
mevcut değer 16M, ne kadar büyük gideceğini nasıl bilebilirim? (Bir üretim sunucusu ile deneme yanılma önlemek istiyorum).
neden orijinal köle iyi başa çıkarken ustanın değerini arttırmam gerekiyor, sorun gerçekten yeni köle ile ilgili olabilir mi?
Güncelleme
Rolando'un usta, yaşlı köle ve yeni köle üzerinde önerdiği gibi max_allowed_packet'i 1073741824'e yükselttim ve onları yeniden başlattım ( SET GLOBAL max_allowed_packet = 1073741824;
bir nedenden dolayı görünmüyordu)
şimdi son IO hatası öncekiyle aynı, ama şimdi görüyorum
Last_SQL_Error: Geçiş günlüğü okuma hatası: Geçiş günlüğü olay girişi ayrıştırılamadı. Olası nedenler: kaptanın ikili günlüğü bozuk (bunu ikili günlüğünde 'mysqlbinlog' çalıştırarak kontrol edebilirsiniz), slave'in geçiş günlüğü bozuk (bunu aktarma günlüğünde 'mysqlbinlog' çalıştırarak kontrol edebilirsiniz), ağ sorunu veya master veya slave'in MySQL kodundaki bir hata. Kaptanın ikili günlüğünü veya köle'nin geçiş günlüğünü kontrol etmek isterseniz, bu slave üzerinde 'SLAVE STATUS GÖSTER' komutunu kullanarak adlarını öğrenebileceksiniz.
Master'ın dosyasında mysqlbinlog yaparsam, çağlar için oldukça mutlu komutlar ile geçmiş kaydırır - dosya 722M - köle geçiş günlüğü için bunu yaparsam
HATA: Log_event'te hata :: read_log_event (): 'Sağlık kontrolü başarısız', data_len: 38916267, event_type: 69
HATA: Ofset 253'teki giriş okunamadı: Günlük biçiminde hata veya okuma hatası.
Değişkenleri kontrol ettim ve değişiklikler çalıştı
mysql> değişkenleri göster LIKE '% max_allowed_packet%';
yeni köle gösterdi max_allowed_packet
VE slave_max_allowed_packet
nerede usta sadece olduğu gibimax_allowed_packet
bu yüzden master üzerinde bir versiyon kontrolü yaptım:
mysql> show variables LIKE '%version%';
+-------------------------+--------------------------------------+
| Variable_name | Value |
+-------------------------+--------------------------------------+
| innodb_version | 1.1.6 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.11-log |
| version_comment | MySQL Community Server (GPL) by Remi |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+--------------------------------------+
ve yeni kölede
mysql> show variables LIKE '%version%';
+-------------------------+--------------------------------------+
| Variable_name | Value |
+-------------------------+--------------------------------------+
| innodb_version | 5.5.32 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.32-log |
| version_comment | MySQL Community Server (GPL) by Remi |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+--------------------------------------+
Bu 2 versiyon çok mu fazla?