Contents
GIỚI THIỆU VỀ MÔ HÌNH MYSQL REPLICATION MASTER-MASTER
Trong mô hình MSQL Replication này, mọi thay đổi trên MSQL master 1 đều sẽ được tự động thực hiện trên MYSQL Master 2, luôn luôn đảm bảo dữ liệu trên MYSQL master 1 và master 2 giống nhau. Khi dữ liệu thay đổi trên Master 2 thì đông thời trên Master 1 cũng được thay đổi tương tự.
HƯỚNG DẪN CÀI ĐĂT
- Tại mô hình này, cần 2 VPS cài đặt Mysql, ta sẽ sử dụng 2 VPS 61.14.232.23 và 61.14.232.76.
- Tiến hành cài đặt mysql tại 2 VPS này
Cài đặt mysql 5.6
- Cài đặt các repo cần thiết
yum install epel-release
yum upgrade ca-certificates --disablerepo=epel
rpm -Uvh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
- Tiến hành cài đặt mysql 5.6
yum install mysql-server
- Khởi động mysql
service mysqld start
- Cài đặt mật khẩu cho mysql
mysqladmin –u root password ‘5Q5SzWfDXpawazud’
Cấu hình Mysql Replication Master – Master
Tại VPS Master 1: IP: 61.14.232.23
- Cấu hình lại file /etc/my.cnf
vi /etc/my.cnf
- Thêm các dòng sau nếu chưa có
server-id=1
log-bin = /var/lib/mysql/mysql-bin
- Khởi động lại mysqld
service mysqld restart
- Cấu hình mysql master
mysql –u root –p
- Tạo user và phân quyền cho user trong replication
create user 'replicator'@'%' identified by 'MYSQL!#$%^';
grant replication slave on *.* to 'replicator'@'%';
- Kiểm tra thông tin của Master
show master status;
- Lưu lại thông tin file và Position
Tại VPS Master 2 IP:61.14.232. 76
- Chỉnh sửa lại thông tin file /etc/my.cnf
vi /etc/my.cnf
server-id=2
log-bin = /var/lib/mysql/mysql-bin
- Khởi động lại mysqld
service mysqld restart
- Cấu hình mysql
mysqld –u root –p
- Tạo user và phân quyền cho user trong replication
create user 'replicator'@'%' identified by 'MYSQL!#$%^';
grant replication slave on *.* to 'replicator'@'%';
- Kiểm tra thông tin của Master
show master status;
- Lưu lại thông tin trên.
Cấu hình kết nối Master – Master
- Tại Master 1 – 61.14.232.23
mysql –u root –p
stop slave;
CHANGE MASTER TO MASTER_HOST = '61.14.232.76', MASTER_USER = 'replicator', MASTER_PASSWORD = 'MYSQL!#$%^', MASTER_LOG_FILE = 'mysql-bin.000010', MASTER_LOG_POS = 568;
start slave;
- Tại Master 2 – 61.14.232.76
mysql –u root –p
stop slave;
CHANGE MASTER TO MASTER_HOST = '61.14.232. 23', MASTER_USER = 'replicator', MASTER_PASSWORD = 'MYSQL!#$%^', MASTER_LOG_FILE = 'mysql-bin.000005', MASTER_LOG_POS = 423;
start slave;
Cấu hình auto_increment
Trong một số trường hợp khi không cấu hình auto_increment, trong database có bảng sử dụng auto_increment, khi một trong 2 Master server downtime (Master 1), dữ liệu được thêm vào sẽ được đánh số thứ tự bình thường ( 1,2,3). Server Master 1 tiêp tục down, trong thời gian down đó server Master 2 up, dữ liệu chưa kịp sync từ Master 1 sang, dữ liệu mới đã được thêm vào cũng theo thứ tự (1,2,3). Như vậy khi Master 1 up, dữ liệu được sync sang Master 2 sẽ bị trùng thứ tự.
Trong trường hợp này việc cài đặt auto_increment_increment và auto_increment_offset sẽ giải quyết được vấn đề trên.
- auto_increment_increment=N : N là giá trị mà server sẽ tự động tăng khi có bản ghi mới. VD khi N=2, giá trị mới sẽ được tăng dần +2 như 2,4,6 hoặc 1,3,5
- auto_increment_offset=x : Trong x là giá trị bắt đầu, VD trong trường hợp auto_increment_increment=2, auto_increment_offset=1 thì giá trị id khi bản ghi mới được them vào sẽ tự động được thêm là 1,3,5,7. Khi auto_increment_increment=3, auto_increment_offset=2 thì giá trị id khi bản ghi tự động được thêm vào sẽ là 2,5,8,11
Tiến hành chỉnh sửa file my.cnf tại Master1
vi /etc/my.cnf
- Thêm các dòng sau
auto_increment_increment=2
auto_increment_offset=1
- Khởi động lại mysqld
service mysqld restart
Tiến hành chỉnh sửa file my.cnf tại Master2
vi /etc/my.cnf
- Thêm các dòng sau
auto_increment_increment=2
auto_increment_offset=2
- Khởi động lại mysqld
service mysqld restart
Như vậy bạn đã cấu hình xong mô hình Mysql Replication Master – Master
Leave A Comment?