Hướng dẫn cài đặt mô hình cơ sở dữ liệu MySQL replication
Ngày đăng: 28/02/2018
Với cơ sở dữ liệu, nhu cầu lưu trữ lớn, đòi hỏi cơ sở dữ liệu toàn vẹn, không bị mất mát trước những sự cố ngoài dự đoán là rất cao. Vì vậy, người ta nghĩ ra khái niệm “nhân bản”, tạo một phiên bản cơ sở dữ liệu giống hệt cơ sở dữ liệu đang tồn tại, và lưu trữ ở một nơi khác, đề phòng có sự cố.

Phiên bản cơ sở dữ liệu phục vụ ứng dụng được lưu trữ trên server master. Phiên bản cơ sở dữ liệu “nhân bản” được lưu trữ trên server slave. Quá trình nhân bản từ master sang slave gọi là replication.

Khi có một thay đổi trên cơ sở dữ liệu master, master sẽ ghi xuống log file (log ở dạng binary). Slave đọc log file, thực hiện những thao tác trong log file. Việc ghi, đọc log theo dạng binary được thực hiện rất nhanh.

Hệ thống thực tế gồm 02 Server database:

- Database Master xxx.xxx.xxx.1

- Database Slave xxx.xxx.xxx.2

Master Slave

Cách thức hoạt động

Tại thời điểm hoạt động bình thường mọi request sẽ được đưa đến vào MySQL master. Khi MySQL master gặp sự cố, request sẽ được đẩy qua cho MySQL slave xử lí. Khi MySQL master up lại bình thường, request sẽ được trả về cho MySQL master.

Các bước cài đặt, cấu hình

- Cài đặt MySQL trên 02 server: apt-get install mysql-server-5.7
- Cấu hình server Master
+ Tạo user cho phép MySQL slave được quyền REPLICATE
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
+ Sửa trong file /etc/my.cnf những option sau:
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
+ Start mysql trên MySQL master
- Cấu hình server Slave
+ Sửa trong file /etc/my.cnf option sau:
server-id=2
+ Start mysql trên MySQL slave.
+ Để replication, cần xem tình trạng ghi log hiện tại của MySQL master, để điều khiển slave bắt đầu replicate như thế nào.
+ Ngưng mọi tác động trên cơ sở dữ liệu MySQL master
mysql> FLUSH TABLES WITH READ LOCK;
+ Xem tình trạng của MySQL master
mysql > SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73 | test | manual,mysql |
+---------------+----------+--------------+------------------+
+ Cấu hình những thông tin cần thiết, để slave giao tiếp được với master:
mysql> CHANGE MASTER TO
-> MASTER_HOST='master.mydomain.com',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='slavepass',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;
+ Ghi chú: giá trị MASTER_LOG_FILE ở đây là file name [mysql-bin.003] và MASTER_LOG_POS là giá trị [Position] của câu lệnh SHOW MASTER STATUS;
+ Nếu trước khi thực hiện replication, master không ghi thành log file, thì giá trị tương ứng ở đây là: chuỗi rỗng (“”) và 4.
+ Giải phóng các table trên master:
mysql> UNLOCK TABLES;
+ Hoàn tất quá trình cấu hình.

Nguyễn Thế Hoàng Việt - IID

Tin liên quan

Trang 1 / 64 - 633 dòngFirstPrevNextLast v
Trang 1 / 64 - 633 dòngFirstPrevNextLast v

Các đơn vị đối tác

TRUNG TÂM PHÁT TRIỂN HẠ TẦNG CÔNG NGHỆ THÔNG TIN ĐÀ NẴNG

Giấy phép: Số 151/GP-TTĐT do Sở Thông tin và Truyền thông cấp ngày 15/4/2015.

Trưởng Ban biên tập: Nguyễn Thị Huyền Thu, Phó giám đốc Trung tâm Phát triển hạ tầng Công nghệ thông tin Đà Nẵng.

Trụ sở: Tòa nhà 02 Quang Trung, Phường Thạch Thang, Quận Hải Châu, Tp Đà Nẵng.

Điện thoại: 84.236.3888.666 Fax 84.236.3888.879 Email: iid@danang.gov.vn.