Nó cũng là POSSIBLE để tránh bất kỳ thời gian chết trong quá trình nâng cấp.
Cách thực hiện là bằng cách khởi chạy nhanh một RDS mới từ ảnh chụp sao chép đã đọc và định cấu hình nó thành bản sao chủ động / hoạt động thành Master. Khi được định cấu hình, bạn có thể chuyển đổi lưu lượng ứng dụng một máy chủ APP tại thời điểm đó mà không có bất kỳ thời gian chết nào. Chúng tôi sử dụng phương pháp này mỗi khi AWS thông báo bảo trì RDS để tránh thời gian chết cũng như trong thời gian bảo trì theo lịch trình của chúng tôi.
https://workmarket.tech/zero-dftimeime-maintenances-on-mysql-rds-ba13b51103c2
Đây là những thông tin chi tiết:
M1 - Bậc thầy
R1 - Đọc bản sao của M1
SNAP1 - Ảnh chụp của R1
M2 - Thầy mới
Trình tự tạo M2:
M1 → R1 → SNAP1 → M2
Vì chúng tôi không thể sử dụng đặc quyền SUPER trên RDS, chúng tôi không sử dụng mysqldump với — master_data2
tùy chọn trên M1. Thay vào đó, chúng tôi khởi chạy R1 để có được vị trí binlog của M1 từ nó. Sau đó tạo ảnh chụp nhanh (SNAP1) từ R1 và sau đó khởi chạy M2 từ SNAP1.
Tạo hai nhóm tham số RDS riêng biệt với các offset sau để tránh các giới hạn PK:
M1: auto_increment_ increment = 4 and auto_increment_offset = 1
M2: auto_increment_ increment = 4 and auto_increment_offset = 2
Tạo người dùng sao chép trên M1
GRANT EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO
‘repl’@’%’ IDENTIFIED BY PASSWORD <secret>;
1. Tạo R1 từ M1
-- 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. Tạo SNAP1 từ R1
4. Thiết lập sao chép M / M
-- 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. Xóa R1 và SNAP1 vì chúng không còn cần thiết
6. Nâng cấp M2 qua Bảng điều khiển AWS
Sử dụng quy trình chuẩn để Sửa đổi sơ thẩm theo nhu cầu của bạn.
7. Thực hiện chuyển đổi duyên dáng sang M2
Khi sao chép M / M được thiết lập thành công, chúng tôi sẵn sàng tiến hành bảo trì DB mà không có thời gian chết bằng cách chuyển đổi duyên dáng các máy chủ ứng dụng tại thời điểm đó.
Dưới đây là chi tiết hơn về cách thức hoạt động.
https://workmarket.tech/zero-dftimeime-maintenances-on-mysql-rds-ba13b51103c2