Hỏi đáp

Nghĩa Của Từ Replication Là Gì ? Nghĩa Của Từ Replicate Trong Tiếng Việt – viettingame

1. Ra mắt

Right tool for right job. Trước tiên phải hiểu là MySQL Replication ko phải là giải pháp giải quyết và xử lý mọi bài toán về quá tải khối hệ thống trung tâm dữ liệu. Để mở bao la một khối hệ thống ta mang hai phương pháp mở bao la là scale up và scale out. Chính thức với cùng một sever thì hai phương pháp trên được diễn giải như sau:

Scale up Tức là với một sever ta làm cách nào khác để nó thậm chí phục vụ nhiều hơn thế số lượng kết nối, truy vấn. Nghĩa là giá trị 1/(số kết nối phục vụ) càng nhỏ thì càng tốt. Để đạt được mục đích này thì sẽ có 2 phương pháp:

Tăng phần cứng lên cho sever. Nghĩa là với CPU là 4 core, RAM là 8 GB phục vụ được 500 truy vấn thì giờ ta tăng CPU lên 24 core, RAM tăng thêm 32GB -> sever thậm chí phục vụ được số lượng kết nối truy vấn nhiều hơn thế. Optimize ứng dụng, câu truy vấn. Ví dụ với câu truy vấn lấy dữ liệu tốn 5s để lấy được dữ liệu, sau đó mới trả lại tài nguyên cho khối hệ thống phục vụ những truy vấn khác. Sever thậm chí đồng thời cùng lúc phục vụ 500 truy vấn dạng như vậy thì nếu ta tối ưu để truy vấn lấy dữ liệu chỉ tốn 1s => Sever thậm chí phục vụ đồng thời cùng lúc nhiều truy vấn hơn

Scale out là giải pháp tăng số lượng server và sử dụng những giải pháp load-balacer để phân phối truy vấn ra nhiều server. Ví dụ chúng ta có một server mang kinh nghiệm phục vụ 500 truy vấn. Nếu ta dựng thêm 5 server nữa mang thông số kỹ thuật tương tự, đặt thêm một LB phía trước để phân phối thì sẽ có kinh nghiệm khối hệ thống thậm chí phục vụ được 5×500 truy vấn đồng thời cùng lúc.

Đang xem: Replication là gì

MySQL Replication là một giải pháp scale out (tăng số lượng instance MySQL) nhưng vẫn không phải bài toán nào thì cũng sử dụng được. Những bài toán mà MySQL Replication sẽ giải quyết và xử lý tốt:

Scale ReadData ReportReal time backup

1.1 Scale Read

Scale Read thường bắt gặp ở những ứng dụng mà số truy vấn đọc dữ liệu nhiều hơn thế ghi, tỉ lệ read/write thậm chí 80/20 hoặc lớn hơn. Những ứng dụng thường bắt gặp là báo, trang tin tức.

Với scale read ta sẽ chỉ mang một Master instance phục vụ cho việc đọc/ghi dữ liệu. Thậm chí mang một hoặc nhiều Slave instance chỉ phục vụ cho việc đọc dữ liệu

Một số trong những ứng dụng write nhiều (thương mại điện tử) cũng có thể có sử dụng MySQL Replication để scale out khối hệ thống

1.2 Data Report

Một số trong những khối hệ thống cho phép một số trong những người (leader, manager, người làm report, thống kê, data) truy vấn vào dữ liệu trên production phục vụ cho công việc của họ. Việc chọc thẳng vào data production sẽ rất nguy hiểm vì như thế:

Vô tình chỉnh sửa làm sai lệnh dữ liệu (nếu như có quyền insert, update)Vô tình thực thi những câu truy vấn tốn nhiều tài nguyên, thời hạn truy vấn dài làm treo khối hệ thống

Việc setup một sever làm data report (application cũng sẽ không còn kết nối tới server này) làm giảm thiểu và hạn chế 2 rủi ro trên

1.3 Real time backup

Với trung tâm dữ liệu to việc backup ko thể triển khai thường xuyên được (hàng tiếng đồng hồ, hàng phút). Với những ứng dụng thanh toán tài chính, thanh toán, TMDT nếu như bị mất dữ liệu 1 giờ, một ngày thì thiệt hại sẽ rất rộng lớn (sever chính tư dưng bị hỏng). Real time backup là một giải pháp bổ sung cập nhật cho offline backup, chạy đồng thời cùng lúc cả 2 phương pháp này để đảm bảo an toàn sự an toàn và tin cậy cho dữ liệu.

Xem thêm: Whole Wheat Flour Là Gì – Công Dụng Của Nó Như Thế Nào

2. Hoạt động và sinh hoạt thế nào?

2.1 Một số trong những quy mô

*

Với cả hai quy mô ta luôn luôn chỉ có một Master database phục vụ cho Write dữ liệu, thậm chí mang một hoặc nhiều Slave database. Tùy từng quy mô ta thậm chí thông số kỹ thuật mỗi web node connect vào một trong những Slave DB tương ứng hoặc thậm chí sử dụng một LB đặt trước cụm Slave để LB tự động phân phối connection vào cụ thể từng Slave DB theo thuật toán của LB

*

2.2 Cách hoạt động và sinh hoạt

Trên Master:

Những kết nối từ web app tới Master DB sẽ mở một Session_Thread lúc mong muốn ghi dữ liệu. Session_Thread sẽ ghi những statement SQL vào một trong những file binlog (ví dụ với format của binlog là statement-based hoặc mix). Binlog được lưu trữ trong data_dir (thông số kỹ thuật my.cnf) và thậm chí được thông số kỹ thuật những thông số kỹ thuật như kích thước tối đa bao nhiêu, lưu lại trên server bao nhiêu ngày.Master DB sẽ mở một Dump_Thread và gửi binlog tới cho I/O_Thread mỗi lúc I/O_Thread từ Slave DB yêu cầu dữ liệu

Trên Slave:

Trên mỗi Slave DB sẽ mở một I/O_Thread kết nối tới Master DB trải qua network, giao thức TCP (với MySQL 5.5 replication chỉ hỗ trợ Single_Thread nên mỗi Slave DB sẽ chỉ mở duy nhất một kết nối tới Master DB, những phiên bạn dạng sau 5.6, 5.7 hỗ trợ mở đồng thời cùng lúc nhiều kết nối hơn) để yêu cầu binlog.Sau lúc Dump_Thread gửi binlog tới I/O_Thead, I/O_Thread sẽ có được trách nhiệm đọc binlog này và ghi vào relaylog.Đồng thời cùng lúc trên Slave sẽ mở một SQL_Thread, SQL_Thread mang trách nhiệm đọc những sự kiện từ relaylog và apply những sự kiện đó vào Slave => quy trình replication hoàn thành.

Xem thêm: Nghĩa Của Từ Dynamics Trong Tiếng Việt

*

Về logic mỗi Slave DB sẽ chỉ nhận dữ liệu từ Master DB, mọi hành vi update dữ liệu BẮT BUỘC phải được triển khai trên Master. Về nguyên tắc nếu ghi dữ liệu trực tiếp lên Slave DB => hỏng replication. Nhưng thực ra ta trọn vẹn thậm chí ghi dữ liệu trên Slave miễn sao lúc Slave đọc binlog và apply ko đụng gì tới những trường dữ liệu mà ta mới ghi vào thì sẽ không xẩy ra lỗi (mục này sẽ nói thêm ở những phần sau)

Với MySQL 5.5 thì mỗi slave sẽ chỉ mang một slave_thread connect tới Master, tuy nhiên từ phiên bạn dạng 5.6 chúng ta thậm chí thông số kỹ thuật nhiều slave_thread để việc apply bin log tới những slave nhanh chóng hơn.

3. Hướng dẫn thiết đặt và thông số kỹ thuật

Quy mô:

Master DB: 172.17.0.1Slave DB: 172.17.0.2

Trên Master DB

Thông số kỹ thuật my.cnf

event-scheduler = onbind-address = 172.17.0.1server-id = 1log-binbinlog-format=rowbinlog-do-db=dwh_prodbinlog-ignore-db=mysqlbinlog-ignore-db=testsync_binlog=0expire_logs_days=2Tạo user replication

Về Viettingame.com

Viettingame.com - Chuyên trang web tổng hợp những thông tin hữu ích trên internet như thông tin về game, tin tổng hợp
Xem tất cả các bài viết của Viettingame.com →

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *