tìm hiểu cơ chế nâng cao hiệu năng và tính sẵn sàng trong mysql

53 715 2
tìm hiểu cơ chế nâng cao hiệu năng và tính sẵn sàng trong mysql

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Đình Đô TÌM HIỂU CƠ CHẾ NÂNG CAO HIỆU NĂNG VÀ TÍNH SẴN SÀNG TRONG MYSQL KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI-2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Đình Đô TÌM HIỂU CƠ CHẾ NÂNG CAO HIỆU NĂNG VÀ TÍNH SẴN SÀNG TRONG MYSQL KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán bộ hướng dẫn: ThS. Lê Hồng Hải HÀ NỘI-2015 1 LỜI CẢM ƠN Sau nhiều tháng nghiên cứu và thực hiện, khóa luận của tác giả đã hoàn tất và đã đạt được một số kết quả nhất định. Lời đầu tiên, tác giả xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới thầy Lê Hồng Hải, người đã tận tình hướng dẫn và chỉ bảo tác giả trong suốt quá trình thực hiện khóa luận tốt nghiệp. Tác giả chân thành cảm ơn các thầy, cô trong bộ môn Hệ thống thông tin đã tạo điều kiện thuận lợi để tác giả tiến hành thực nghiệm khóa luận của mình. Tác giả cũng xin gửi lời cảm ơn đến tất cả các thầy cô trong trường Đại học Công Nghệ đã cho tác giả một môi trường rất tốt để học tập và nghiên cứu. Các thầy cô đã giảng dạy và cho tác giả những kiến thức quý báu, làm nền tảng để tác giả hoàn thành khóa luận cũng như công việc trong tương lai. Tác giả cũng xin gửi lời tri ân tới các bạn trong lớp K56CB đã luôn bên cạnh, ủng hộ và giúp đỡ tác giả trong suốt quá trình học tập tại trường. Cuối cùng tác giả muốn gửi lời cảm ơn vô hạn tới gia đình và bạn bè – những người thân yêu luôn ở bên, khuyến khích và động viên tác giả trong cuộc sống cũng như trong học tập. Tác giả xin chân thành cảm ơn. Hà Nội, Tháng 04/2015 Sinh viên thực hiện Nguyễn Đình Đô 2 TÓM TẮT NỘI DUNG Xã hội ngày càng phát triển, con người vận động, sáng tạo đi kèm với đó là sự phát triển của công nghệ đã tạo ra khối lượng thông tin vô cùng lớn. Với hàng triệu lượt truy cập mỗi ngày thì đòi hỏi hệ thống máy chủ cơ sở dữ liệu phải cực kì mạnh mẽ và linh hoạt. Một hệ thống mạnh mẽ là một hệ thống đáp ứng được tất cả các truy vấn của client trong thời gian ngắn nhất, client có thể thực hiện truy vấn trên bất kì nút nào - hệ thống phân tải (hiệu năng cao). Bên cạnh khả năng cân bằng tải thì hệ thống phải đáp linh hoạt trong việc đáp ứng các yêu cầu về tính sẵn sàng, nhất quán dữ liệu trên các máy chủ - nếu một máy chủ gặp sự cố thì các máy chủ khác sẵn sàng đáp ứng các truy vấn từ client mà không làm ảnh hưởng đến hiệu xuất hệ thống. Các yếu tố này liên kết mật thiết với nhau đảm bảo hệ thống vận hành ổn định. Nếu một hệ thống không đáp ứng được các yếu tố này thì thảm họa có thể xảy ra bất cứ lúc nào, điều này gây ra tổn thất vô cùng nặng nề cho doanh nghiệp. Đã có rất nhiều giải pháp được các nhà nghiên cứu đưa ra cho các hệ quản trị cơ sở dữ liệu, tuy nhiên có nhiều giải pháp không giải quyết được các yếu tố cần thiết cho hệ thống máy chủ. Vì vậy trong khóa luận này tác giả xin trình bày một số giải pháp Replication (nhân bản cơ sở dữ liệu) trong hệ quản trị cơ sở dữ liệu MySQL. Trong khóa luận tác giả sẽ tập chung vào chủ yếu vào giải pháp đang được sử dụng phổ biến nhất và toàn diện nhất đó là giải pháp Multi master Replication trong MySQL sử dụng Galera. Các giải pháp được đưa ra đều hướng đến mục đích nhân bản cơ sở dữ liệu - tạo ra một cơ sở dữ liệu mới giống hệt cơ sở dữ liệu đang sử dụng để đảm bảo tính sẵn sàng dữ liệu - sử dụng dữ liệu mọi lúc mọi nơi. Giải pháp giúp hệ thống tự động sửa lỗi khi có sự cố xảy ra, phân tải đến các máy chủ trong hệ thống. Ngoài những yếu tố đó dữ liệu trên các máy chủ phải nhất quán và thời gian đồng bộ dữ liệu là ngắn nhất. Từ khóa: Replication, nhân bản. Giao dịch, những sự kiện làm thay đổi cơ sở dữ liệu. Semi-synchronous Replication, nhân bản bán đồng bộ. Multi master Replication, nhân bản với nhiều máy chủ chính. 3 TÀI LIỆU THAM KHẢO [1] SÉBASTIEN HAN, (2012), (MySQL Multi-master Replication With Galera), Available: http://www.sebastien-han.fr/blog/2012/04/01/mysql-multi-master-replication-with-galera/ (Accessed: 2012, April 1). [2] GaLera, (2014), (GALERA CLUSTER DOCUMENTATION), Available: http://galeracluster.com/documentation-webpages/ (Accessed: 2014). [3] ADVAIT, (2015), (SEMI-SYNCHRONOUS REPLICATION IN MYSQL), Available: http://avdeo.com/2015/02/02/semi-synchronous-replication-in-mysql/ (Accessed: February 2, 2015). [4] root@opentodo#, (2012), (MySQL Multi Master replication with Galera), Available: http://opentodo.net/2012/12/mysql-multi-master-replication-with-galera/ (Accessed: 12, 2012). [5] Severalnines, (2013) (Scaling Drupal on Multiple Servers with Galera Cluster for MySQL), Avaiable: http://www.severalnines.com/blog/scaling-drupal-multiple-servers- galera-cluster-mysql (Accesed: April 26, 2013). [6] Giuseppe Maxia, (2010), (Testing MySQL 5.5 semi-synchronous replication), Avaiable:http://datacharmer.blogspot.com/2010/11/testing-mysql-55-semi-synchronous.html (Accesed: 2010) [7] (Multi-master replication) Avaiable: http://en.wikipedia.org/wiki/Multi-master_replication (Accesed: 18 March 2015). [8] Manish Bhandari, (2014), (Galera with MySQL cluster) Avaiable: http://linuxbhandari1.blogspot.com/2014/07/galera-with-mysql-cluster.html (Accesed: Thursday, 3 July 2014) [9] Seppo Jaakola (Codership) and Alexey Yurchenko (Codership), (2010), (Galera - Synchronous Multi-master Replication For InnoDB) Avaiable: http://en.oreilly.com/mysql2010/public/schedule/detail/13286 (Accesed: 04/14/2010) [10] Codeship, (Codeship Documentation) Avaiable: https://codeship.com/documentation (2015) [11] Tool test tự động, (2014), (Cài đặt và sử dụng Jmeter – test hiệu năng website) Avaiable: http://testerth.forumvi.com/t8-topic (Accesed: 22/8/2014) [12] Mitchell Anicas, (2014), (How To Use Apache JMeter To Perform Load Testing on a Web Server) Avaiable: https://www.digitalocean.com/community/tutorials/how-to-use- apache-jmeter-to-perform-load-testing-on-a-web-server (Accesed: Jun 24, 2014) 4 LỜI CAM ĐOAN Để hoàn thành khóa luận này thực sự tác giả không thể chỉ dựa vào kiến thức hạn hẹp của bản thân, vì vậy tác giả đã tham khảo tài liệu, các công trình nghiên cứu của những người đi trước. Thực sự tác giả cảm ơn những các tác giả đi trước đã cung cấp cho tác giả những kiến thức để tác giả hoàn thành tốt khóa luận của mình. Tác giả cam đoan tất cả những kiến thức tác giả tham khảo đều đã được chỉ rõ trong phần tài liệu tham khảo. 5 MỤC LỤC LỜI CẢM ƠN 1 TÓM TẮT NỘI DUNG 2 TÀI LIỆU THAM KHẢO 3 LỜI CAM ĐOAN 4 MỤC LỤC 5 DANH MỤC HÌNH ẢNH 7 DANH MỤC CÁC THUẬT NGỮ 9 MỞ ĐẦU 10 Chương 1: Tổng quan về Replication 11 1.1. Giới thiệu 11 1.2. Lợi ích của Replication 11 1.3. Giải pháp 12 1.4. Phân loại 13 Chương 2: Giải pháp Replication trong MySQL 15 2.1. Replication cơ bản 15 2.1.1. Giới thiệu 15 2.1.2. Nguyên lý hoạt động 15 2.1.3. Cài đặt và kiểm thử hệ thống 16 2.2. Giải pháp semi-synchronous Replication 18 2.2.1. Đặt vấn đề 18 2.2.2. Giải quyết vấn đề và nguyên lý hoạt động của giải pháp 19 2.2.3. Cài đặt và kiểm thử hệ thống 21 Chương 3: Giải pháp Multi master Replication sử dụng Galera 24 3.1. Nhân rộng đồng bộ 24 3.2. Giới thiệu về giải pháp Multi master Replication 25 3.3. Giới thiệu về Galera Cluster 26 3.3.1. Tổng quan 26 6 3.4. Nguyên lý hoạt động của giải pháp Multi master Replication sử dụng Galera 30 3.4.1. Thành phần cấu tạo của hệ thống 30 3.4.2. Trình tự sử lý một giao dịch trong cụm Galera 33 3.5. Cài đặt và kiểm thử hệ thống 36 3.5.1. Cài đặt và cấu hình hệ thống 36 3.5.2. Kiểm tra hệ thống 38 3.5.3. Nối một nút mới vào cụm 39 3.5.4. Khi một nút trong cụm gặp sự cố 42 3.6. Xây dựng hệ thống cân bằng tải 44 3.7. Đánh giá 48 Chương 4: Kết luận 49 7 DANH MỤC HÌNH ẢNH Hình 1.1. Mô hình nhân bản cơ sở dữ liệu 11 Hình 1.2. Mô hình sử dụng cho cơ sở dữ liệu sẵn có 13 Hình 1.3. Mô hình sử dụng để cân bằng tải 14 Hình 2.1. Mô hình MySQL Replication 15 Hình 2.2. Nguyên lý hoạt động của Replicaion cơ bản 15 Hình 2.3. Trình tự xử lý giao dịch của Replication cơ bản 19 Hình 2.4. Một giao dịch với nhân rộng bán đồng bộ 20 Hình 3.1. Không đồng bộ giữa master và slave 25 Hình 3.2. Mô hình đồng bộ Multi Master 26 Hình 3.3. Đồ thị biểu diễn thông lượng của Galera và NDB 27 Hình 3.4. Đồ thị biểu diễn thời gian phản hồi của Galera và NDB 28 Hình 3.5. Đồ thị so sánh số lượng người dùng của Galera và NDB 28 Hình 3.6. Biểu đồ so sánh hiệu xuất 2 giải pháp 29 Hình 3.7. Thành phần một cụm Galera 30 Hình 3.8. Một nút trong cụm Galera 30 Hình 3.9. Cấu trúc write-set 32 Hình 3.10. Client gửi giao dịch đến một nút 33 Hình 3.11. Thông điệp được gửi đến các nút khác 34 Hình 3.12. Các nút thực hiện đồng bộ ảo 34 Hình 3.13. Các nút thực hiện những đổi có trong thông điệp 34 Hình 3.14. Biểu đồ tuần tự quá trình thực hiện đồng bộ 35 Hình 3.15. Tạo cơ sở dữ liệu trên node1 38 Hình 3.16. Show cơ sở dữ liệu trên node2 39 Hình 3.17. Show cơ sở dữ liệu trên node3 39 Hình 3.18. Thêm một nút vào trong cụm 40 Hình 3.19. Nút mới gửi yêu cầu đến cụm để yêu cầu tham gia 41 Hình 3.20. Nút được chọn backup dữ liệu lên nút mới 41 Hình 3.21. Nút mới đã được thêm vào cụm 41 Hình 3.22. Sự phân rã của cụm 43 Hình 3.23. Cụm phân rã thành 2 phần bằng nhau 43 Hình 3.24. Mô hình cân bằng tải 44 Hình 3.25. Cân bằng tải giữa các nút 45 Hình 3.26. Cấu hình Jmeter 45 Hình 3.27. Kết quả đo bằng Jmeter 46 Hình 3.28. Tạo ứng dụng trên Máy cân bằng tải (LB) 46 8 Hình 3.29. Ứng dụng được đồng bộ trên node1 47 Hình 3.30. Ứng dụng được đồng bộ trên node2 47 Hình 3.31. Ứng dụng được đồng bộ trên node3 47 [...]... kết hợp các kinh nghiệm trong việc sao chép đồng bộ và các nghiên cứu mới nhất trong lĩnh vực này một nhóm nghiên cứu đã phát triển giải pháp Multi master Replication sử dụng Galera Galera cung cấp một số cải thiện đáng kể để nâng cao tính sẵn sàng cho hệ quản trị MySQL Có những cách khác nhau để nâng cao tính sẵn sàng trong MySQL và một trong những cách đó được cài đặt sẵn trong Galera Cluster Có... (tính sẵn sàng) Khóa luận tốt nghiệp của tác giả trình bày sau đây gồm 4 chương như sau: Chương 1 Giới thiệu về Replication: Giới thiệu về nhân bản cơ sở dữ liệu, lợi ích và đưa ra các giải pháp Chương 2 Các giải pháp Replication trong MySQL: giới thiệu một số giải pháp nhân bản cơ sở dữ liệu trong MySQL (MySQL Replication cơ bản và Semi – Synchronous Replication) Chương 3 Multi master Replication trong. ..  Tính sẵn sàng cao: Nhân rộng đồng bộ cung cấp cho cụm cơ sở dữ liệu tính sẵn sàng cao và đảm bảo dịch vụ sẵn sàng 24/7: - Không mất dữ liệu khi nút bị hỏng - Dữ liệu trên các nút luôn được đồng bộ - Không phức tạp, tốn thời gian cho chuyển đổi dự phòng  Hiệu xuất được cải thiện: Việc đồng bộ cho phép chúng ta có thể thực hiện các truy vấn trên tất cả các nút trong cụm song song với nhau -> tăng hiệu. .. dụng phổ biến trong Replication đó là cấu hình được sử dụng để nhân bản cơ sở dữ liệu sẵn có và loại thứ 2 là để cân bằng tải  Cấu hình sử dụng để nhân bản cơ sở dữ liệu sẵn có Trong mô hình này chỉ có một cơ sở dữ liệu là master server còn các cơ sở dữ liệu khác là slave server Hình 1.2 Mô hình sử dụng cho cơ sở dữ liệu sẵn có Có thể có nhiều hơn một slave server tùy thuộc vào tải và các nhu cầu... liệu MySQL đó là các giải pháp Replication cơ bản, Semisynchronous Replication và giải pháp Multi master Replication sử dụng Galera 14 Chương 2: Giải pháp Replication trong MySQL 2.1 Replication cơ bản 2.1.1 Giới thiệu Replication trong MySQL cho phép dữ liệu từ một database MySQL server (master server) sẽ tạo bản sao cho một hoặc nhiều database MySQL servers ( slaves server ) Replication trong MySQL. .. Với hàng triệu lượt truy cập mỗi ngày thì đòi hỏi hệ thống máy chủ cơ sở dữ liệu phải cực kì lớn và mạnh mẽ Một hệ thống mạnh mẽ là một hệ thống đáp ứng được tất cả các truy vấn của client trong thời gian ngắn nhất - hệ thống cân bằng tải (hiệu năng cao) Bên cạnh khả năng cân bằng tải thì hệ thống cũng phải đáp ứng được tính sẵn sàng cao và nhất quán dữ liệu giữa các máy chủ Các yếu tố này liên kết mật... server 22 Kiểm tra trên slave server Các table đã được đồng bộ Phần tiếp theo của khóa luận tác giả sẽ đi sâu vào giải pháp Multi master Replication trong MySQL sử dụng Galera Giải pháp này có thể nói là toàn diện nhất Giải pháp giúp nâng cao hiệu năng và tính sẵn sàng của hệ thống cài đặt hệ quản trị MySQL Đây cũng là nội dung cốt lõi của khóa luận mà tác giả muốn trình bày với người đọc 23 Chương 3: Giải... Chương 3 Multi master Replication trong MySQL sử dụng Galera: Giới thiệu và đi sâu vào giải pháp nhân bản cơ sở dữ liệu trong MySQL sử dụng Galera Chương 4 Kết luận 10 Chương 1: Tổng quan về Replication 1.1 Giới thiệu Replication có ý nghĩa là “nhân bản” là tạo ra một phiên bản giống hệt phiên bản đang tồn tại, đang sử dụng Với cơ sở dữ liệu nhu cầu lưu trữ lớn, đòi hỏi cơ sở dữ liệu phải toàn vẹn, không... trên các kết nối từ xa và thậm chí cả trên các kết nối tạm thời hoặc liên tục như một dịch vụ dial-up Tùy thuộc vào cấu hình, bạn có thể nhân bản tất cả các database, có thể lựa chọn database mà bạn muốn nhân bản hoặc thậm chí là bảng trong một cơ sở dữ liệu Hình 2.1 Mô hình MySQL Replication Replication trong MySQL có tính năng hỗ trợ cho một chiều, sao chép không đồng bộ, trong đó một máy chủ hoạt... mới trong việc đồng bộ sao lưu dữ liệu Thế nhưng phương pháp multi master truyền thống vẫn có các nhược điểm như:  Phức tạp và khó triển khai  Việc ghi trên nhiều nút dẫn đến xung đột giữa các nút  Hiệu suất không cao, khả năng sẵn sàng kém hiệu quả Vì vậy phần tiếp theo của khóa luận sẽ trình bày phương pháp đồng bộ nhân rộng dữ liệu: Muilti master Replication trên MySQL sử dụng Galera 3.3 Giới thiệu . HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Đình Đô TÌM HIỂU CƠ CHẾ NÂNG CAO HIỆU NĂNG VÀ TÍNH SẴN SÀNG TRONG MYSQL KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành:. QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Đình Đô TÌM HIỂU CƠ CHẾ NÂNG CAO HIỆU NĂNG VÀ TÍNH SẴN SÀNG TRONG MYSQL KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công. Giới thiệu về nhân bản cơ sở dữ liệu, lợi ích và đưa ra các giải pháp. Chương 2 . Các giải pháp Replication trong MySQL: giới thiệu một số giải pháp nhân bản cơ sở dữ liệu trong MySQL (MySQL

Ngày đăng: 28/08/2015, 11:58

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan