Thiết lập sao chép mà bạn không thể duy trì khi nâng cấp lên MySQL 5.5
Bạn sẽ phải đi với Master / Slave. Đây là lý do:
Ai đó đã hỏi một câu hỏi về sự vô nghĩa xuất hiện trong nhật ký nhị phân và tôi đã trả lời câu hỏi này
Trong câu trả lời của tôi, tôi đã giải thích rằng nhật ký nhị phân bắt đầu ở các vị trí khác nhau trong các phiên bản khác nhau của MySQL
Đây là những vị trí:
- 107 cho MySQL 5.5
- 106 cho MySQL 5.1
- 98 cho MySQL 5.0 trở lại
Với nhân rộng, những con số này cũng áp dụng cho các bản ghi chuyển tiếp. Hiệu ứng ròng là Slave có thể sao chép từ phiên bản cũ hơn của MySQL, nhưng không phải là cách khác.
Bạn nên làm như sau:
- Chuyển đổi Master / Master thành Master / Slave
- Nâng cấp lên MySQL 5.5 trên Slave
- Trỏ tất cả các ứng dụng tại Slave (hiện được gọi là NewMaster)
- dịch vụ mysql dừng trên Master
- Nâng cấp lên MySQL 5.5 trên Master (hiện được gọi là NewSlave) nhưng không khởi động mysql
- dịch vụ mysql dừng trên NewMaster
- rsync / var / lib / mysql của NewMaster sang / var / lib / mysql của NewSlaves
- rm /var/log/mysql/master.info trên NewMaster
- rm /var/log/mysql/master.info trên NewSlave
- dịch vụ mysql bắt đầu - kết nối mạng trên NewMaster
- chạy RESET MASTER trên NewMaster
- dịch vụ mysql khởi động lại trên NewMaster
- dịch vụ mysql bắt đầu trên NewSlave
- chạy RESET MASTER trên NewSlave
- thiết lập Bản sao chính / Master bằng cách sử dụng vị trí 107 khi bắt đầu master_log_pose
Liên quan đến việc sử dụng yum để nâng cấp, tôi hoảng loạn và hét lên kinh hoàng khi nghĩ về nó.
Đây là cách tiếp cận bảo thủ hơn của tôi:
- Tôi sẽ mysqldump tất cả mọi thứ NGOẠI TRỪ lược đồ mysql.
Chạy cái này để tạo SQL cho tất cả các khoản trợ cấp của người dùng mysql:
mysql -hhostaddr -umyuserid -pmypassword --skip-cột-name -A -e "CHỌN CONCAT ('SHOW GRANTS FOR' '', user, '' '@' '', host, '' ';') TỪ mysql .user Người dùng WHERE <> '' "| mysql -hhostaddr -umyuserid -pmypassword --skip-cột-name -A | sed 's / $ /; / g'> /root/MySQLGrant.sql
Gỡ cài đặt MySQL 5.1
- Cài đặt MySQL 5.5 từ RPM bằng tay.
- Tải /root/MySQLGrant.sql vào MySQL 5.5
- Tải dữ liệu mysqldump'd trở lại vào MySQL 5.5
yum
chỉ là công cụ kết thúc cácrpm
giao dịch của bạn . :)