Ayrıca yükseltme sırasında herhangi bir aksama süresinin önüne geçmek olasıdır.
Bunu yapmanın yolu, okunan bir çoğaltma görüntüsünden yeni bir RDS'yi kısaca başlatmak ve onu etkin / etkin Master'dan Master'a çoğaltma olarak yapılandırmaktır. Yapılandırıldıktan sonra, uygulama trafiğini herhangi bir kesinti olmadan bir APP sunucusundan değiştirebilirsiniz. Bu yaklaşımı AWS her zaman kesinti süresinden kaçınmak için planlı bakımlarımız sırasında RDS bakımları açıkladığında kullanırız.
https://workmarket.tech/zero-downtime-maintenances-on-mysql-rds-ba13b51103c2
İşte detaylar:
M1 - Orignal Master
R1 - M1'in Çoğaltmasını Oku
SNAP1 - R1'in anlık görüntüsü
M2 - Yeni Usta
M2 oluşturma sırası:
M1 → R1 → SNAP1 → M2
RDS'de SÜPER ayrıcalık kullanamadığımızdan — master_data2
, M1'deki mysqldump seçeneğini kullanmayız . Bunun yerine, M1'in binlog pozisyonunu elde etmek için R1'i başlattık . Sonra R1'den bir anlık görüntü (SNAP1) oluşturun ve ardından SNAP1'den M2'yi başlatın.
PK çakışmalarını önlemek için iki ayrı RDS parametre grubu oluşturun:
M1: auto_increment_ increment = 4 and auto_increment_offset = 1
M2: auto_increment_ increment = 4 and auto_increment_offset = 2
M1'de çoğaltma kullanıcısı oluştur
GRANT EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO
‘repl’@’%’ IDENTIFIED BY PASSWORD <secret>;
1. M1'den R1 oluşturun
-- Connect to the R1 and stop replication
CALL mysql.rds_stop_replication;
-- Obtain M1’s (!!) current binlog file and position
`mysql> show slave status\G
Master_Log_File: mysql-bin.000622
Exec_Master_Log_Pos: 9135555
2. R1'den SNAP1 oluşturun
4. Kurulum M / M çoğaltması
-- Configure M2 as a slave of M1
CALL mysql.rds_set_external_master (‘m1.xyxy24.us-east-1.rds.amazonaws.com’, 3306, ‘repl’, ‘mypassword’, ‘mysql-bin.000622, 9135555, 0);
CALL mysql.rds_start_replication;
-- Connect to M2 and obtain its current binlog file and position
mysql> show master status\G
File: mysql-bin.004444
Position: 6666622
-- Connect to M1 and configure it to be a slave of the M2
CALL mysql.rds_set_external_master (‘m2.xyxy24.us-east-1.rds.amazonaws.com’, 3306 , ‘repl’, ‘mypassword’, ‘mysql-bin.004444, 6666622, 0);
CALL mysql.rds_start_replication;
5. Artık gerekmedikleri için R1 ve SNAP1'i silin
6. AWS Konsolu ile M2 Yükseltme
Eşgörünümü gereksinimlerinize göre değiştirmek için standart prosedürü kullanın.
7. M2'ye Zarif Geçiş Yap
M / M çoğaltması başarıyla ayarlandığı için, uygulama sunucularını bir kerede zarafetle değiştirerek DB bakım işlemine kesinti olmadan devam etmeye hazırız.
İşte nasıl çalıştığıyla ilgili daha fazla ayrıntı.
https://workmarket.tech/zero-downtime-maintenances-on-mysql-rds-ba13b51103c2