NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY

94 866 2
NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN  BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI  MYSQL PROXY

Đ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Ệ Trần Thị Giang NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ Thông tin HÀ NỘI – 2012 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Trần Thị Giang NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ Thông tin Cán bộ hƣớng dẫn: TS Nguyễn Hải Châu HÀ NỘI – 2012 VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY Tran Thi Giang RESEARCH INTO EXPERIMENT OF LOAD BALANCING SOLUTION FOR MYSQL DATABASE MANAGEMENT SYSTEM WITH MYSQL PROXY Major: Information technology Supervisor: Nguyen Hai Chau, PhD HA NOI – 2012 LỜI CẢM ƠN Lời đầu tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Tiến sĩ Nguyễn Hải Châu, ngƣời đã tận tình hƣớng dẫn và chỉ bảo tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp. Tôi 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ôi tiến hành thực nghiệm khóa luận của mình. Tôi 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ôi 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ôi những kiến thức quý báu, làm nền tảng để tôi hoàn thành khóa luận cũng nhƣ công việc trong tƣơng lai. Tôi cũng xin gửi lời tri ân tới các bạn trong lớp K53CC và K53CLC đã luôn bên cạnh, ủng hộ và giúp đỡ tôi trong suốt quá trình học tập tại trƣờng. Cuối cùng, tôi 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ôi trong cuộc sống cũng nhƣ trong học tập. Tôi xin chân thành cảm ơn. Hà nội, tháng 5 năm 2012 Sinh viên Trần Thị Giang NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY Trần Thị Giang Khóa QH-2008-I/CQ, ngành Công nghệ thông tin Tóm tắt Khóa luận tốt nghiệp: Sự bùng nổ của internet trong những năm gần đây khiến số lƣợng ngƣời dùng truy cập qua internet đến các máy chủ cơ sở dữ liệu ngày càng tăng mạnh. 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ẽ, nếu không máy chủ sẽ bị quá tải. Một hệ thống máy chủ mạnh mẽ là hệ thống có khả năng đáp ứng đƣợc tất cả các truy vấn của client trong khoảng thời gian nhanh nhất – hệ thống có khả năng cân bằng tải. Bên cạnh khả năng cân bằng tải, thì hệ thống cũng cần có khả năng mở rộng và tính sẵn sàng cao. Ba yếu tố này liên hệ mật thiết với nhau để đảm bảo hệ thống hoạt động ổn định. Nếu một hệ thống mà không đáp ứng đƣợc một trong ba yêu cầu trên thì thảm họa có thể xảy ra bất cứ lúc nào. Điều này gây ra một tổn thất vô cùng nặng nề cho doanh nghiệp. Do vậy, cân bằng tải, khả năng mở rộng và tính sẵn sàng cao quyết định đến yếu tố sống còn của một doanh nghiệp. Đã có rất nhiều giải pháp cân bằng tải đƣợc các nhà nghiên cứu đƣa ra cho các hệ quản trị CSDL. Tuy nhiên nhiều giải pháp không giải quyết đƣợc đầy đủ cả ba yếu tố trên cho hệ thống máy chủ. Vì vậy, khóa luận lựa chọn giải pháp sử dụng MySQL proxy để cân bằng tải cho các máy chủ cơ sở dữ liệu MySQL. MySQL proxy nhận các truy vấn từ phía client, lọc ra các truy vấn để gửi đến các máy chủ phù hợp dựa trên thuật toán cân bằng tải, sau đó nhận dữ liệu từ các máy chủ để trả lại cho khách hàng. Không chỉ đáp ứng đƣợc yêu cầu cân bằng tải, giải pháp này còn đáp ứng đƣợc nhu cầu mở rộng và đảm bảo tính sẵn sàng cao của hệ thống nhờ việc sử dụng phƣơng pháp Replication cho MySQL. Thực nghiệm đƣợc tiến hành với hai mô hình, một mô hình chỉ có hai máy chủ - mô hình với một master và một slave, và một mô hình mở rộng hơn với ba máy chủ – mô hình một master và hai slave. Kết quả thu đƣợc từ các tham số đánh giá tải và hiệu năng của server cho thấy rằng, giải pháp đƣợc kiểm nghiệm là khả quan và áp dụng đƣợc trong thực tế. Từ khóa: MySQL Proxy, cân bằng tải RESEARCH INTO EXPERIMENT OF LOAD BALANCING SOLUTION FOR MYSQL DATABASE MANAGEMENT SYSTEM WITH MYSQL PROXY Tran Thi Giang QH-2008-I/CQ course, Information Technology major Abstract of thesis: In recent years, the boost of internet cause the number of user who access to database server through Internet increase rapidly. With millions of clients access every day, this require server system powerfull, otherwise the system will be overload. A powerfull server system is system can be satisfy all clients requests within the shortest possible time – the system is capable of load balancing. In addition, the system also need scalability and high availability. These three factors combine together closely to ensure stable system operation. If the system is lacks of one factor, disater will happen any time. This cause an extremely heavy loss for businesses. Therefore, load balancing, scalability and high availability factors determine survival of businesses. The researchers in over the world gave a lot of load balancing solutions for database mannagement systems. However, there are some solutions do not satisfy fully three factors above. So the thesis chooses a load balancing solution for MySQL database management system that uses a load balancer, called MySQL Proxy. MySQL Proxy is a program that sits between clients and MySQL servers. All of MySQL Proxy‟s activities based on the Lua scripting language and Load Balancing Algorithms. It receives queries from clients, monitors, analyzes them, passes them to the MySQL server and returns the responses from the MySQL Server to the appropriate client. Not only load balancing, this solution also solves the scalability and high availability problem base on the Replication MySQL method. The experiment based on three models of Replication, the first model there is only one MySQL server, the second model is the simple replication model (one master and one slave), and last model is the master – multi slaves replication model (one master and two slaves). The load parameters assessment and the performance of the servers show that the results is satisfactory and this solution can apply in fact. Keywords: MySQL Proxy, Load balancing LỜI CAM ĐOAN Tôi xin cam đoan giải pháp cân bằng tải hệ quản trị CSDL MySQL sử dụng MySQL Proxy và thực nghiệm đƣợc trình bày trong khóa luận này là do tôi thực hiện dƣới sự hƣớng dẫn và chỉ bảo của Tiến sĩ Nguyễn Hải Châu. Tất cả các tài liệu tham khảo từ các nghiên cứu liên quan đều đƣợc nêu nguồn gốc một cách rõ ràng từ danh mục Tài liệu tham khảo trong khóa luận. trong khóa luận, không có việc sao chép tài liệu, công trình nghiên cứu của ngƣời khác mà không chỉ rõ về tài liệu tham khảo Hà nội, tháng 5 năm 2012 Sinh viên Trần Thị Giang MỤC LỤC MỞ ĐẦU 1 CHƢƠNG 1: SỰ CẦN THIẾT CỦA VIỆC CÂN BẰNG TẢI TRUY VẤN ĐỌC CHO HỆ QUẢN TRỊ CSDL MYSQL 3 1.1. CÁC KIỂU QUÁ TẢI MÁY CHỦ [8] 3 1.1.1. Số lƣợng truy cập hợp lệ đến máy chủ quá lớn 3 1.1.2. Máy chủ bị tấn công 3 1.1.3. Internet 4 1.2. SỰ CẦN THIẾT CỦA VIỆC CÂN BẰNG TẢI CHO CÁC HỆ QUẢN TRỊ CSDL NÓI CHUNG VÀ MYSQL NÓI RIÊNG 5 1.2.1. Sự cần thiết của việc cân bằng tải cho các hệ quản trị nói chung 5 1.2.2. Sự cần thiết của việc cân bằng tải hệ quản trị CSDL MySQL với việc sử dụng bộ cân bằng tải là MySQL Proxy 6 1.3. MỘT SỐ TIÊU CHÍ ĐÁNH GIÁ TẢI VÀ HIỆU NĂNG CỦA MÁY CHỦ 7 1.3.1. CPU Utilization 7 1.3.2. Memory usage 8 1.3.3. Thời gian phản hồi 8 1.4. XÁC ĐỊNH MỤC TIÊU NGHIÊN CỨU CỦA KHÓA LUẬN LÀ CÁC ỨNG DỤNG QUÁ TẢI TRUY VẤN ĐỌC 8 CHƢƠNG 2: CÁC GIẢI PHÁP CÂN BẰNG TẢI CHO CÁC HỆ QUẢN TRỊ CSDL. . 10 2.1. CÁC GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL 10 2.1.1. Giải pháp sử dụng Replication cơ sở dữ liệu với MySQL Proxy 10 2.1.2. Giải pháp sử dụng Clustering [3] 10 2.2. GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL POSTGRESQL 12 2.2.1. Giải pháp sử dụng Replication cơ sở dữ liệu 12 2.2.2. Giải pháp sử dụng Partitioning cơ sở dữ liệu - Cân bằng tải các truy vấn ghi với PL/Proxy 17 2.3. GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL ORACLE 18 2.3.1. Giải pháp cân bằng tải phía client 18 2.3.2. Giải pháp cân bằng tải phía server 19 2.3.3. Giải pháp Oracle Real Application Cluster 19 2.4. GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL SQL 21 2.4.1. Giải pháp sử dụng Replication cơ sở dữ liệu 21 2.4.2. Giải pháp Database mirroring 26 2.4.3. Giải pháp Network Load Balancing 27 2.5. Các thuật toán cân bằng tải 29 2.5.1. Giải thuật thuật Roun-robin 29 2.5.2. Hàm băm 30 2.5.3. Giải thuật xác định tổng số kết nối nhỏ nhất 32 CHƢƠNG 3: BÀI TOÁN CÂN BẰNG TẢI READ CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY. 33 3.1. GIỚI THIỆU VỀ MYSQL PROXY VÀ NGÔN NGỮ KỊCH BẢN LUA 33 3.1.1. Giới thiệu về mysql proxy 33 3.1.2. Giới thiệu về ngôn ngữ kịch bản Lua 34 3.1.3. Nguyên lý hoạt động của MySQL Proxy với ngôn ngữ kịch bản Lua [25] 35 3.2. GIỚI THIỆU VỀ GIẢI PHÁP REPLICATION TRONG HỆ QUẢN TRỊ CSDL MYSQL 37 3.3. GIỚI THIỆU VỀ CÔNG CỤ MYSQLSLAP 42 3.4. PHÁT BIỂU BÀI TOÁN 43 3.5. MÔ HÌNH GIẢI QUYẾT BÀI TOÁN 44 3.4.1. Mô hình MySQL Proxy – một master – một slave 44 3.4.2. Mô hình MySQL Proxy – một master – multi slave 44 CHƢƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ 46 4.1. MÔI TRƢỜNG THỰC NGHIỆM 46 4.2. TIẾN HÀNH THỰC NGHIỆM 46 4.2.1. Cài đặt MySQL Proxy 46 4.2.2. Cấu hình cho giải pháp replication trong hệ quản trị CSDL MySQL [7] 49 4.2.3. Kịch bản Lua 51 4.2.4. Thử nghiệm 53 4.3. PHÂN TÍCH, ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM 55 4.3.1. Client gửi truy vấn trực tiếp đến máy chủ MySQL 55 4.3.2. Mô hình MySQL Proxy – một master – một slave 56 4.3.3. Mô hình MySQL Proxy – một master – hai slave 64 4.4. NHẬN XÉT 74 4.4.1. Khả năng chịu tải của server 74 4.4.2. Khả năng mở rộng 74 4.4.3. Tính sẵn sàng cao 75 KẾT LUẬN 76 [...]... cân bằng tải 15 Hình 4: Giải pháp cân bằng tải hệ quản trị CSDL PostgreSQL với PL /Proxy 17 Hình 5: Giải pháp cân bằng tải cho hệ quản trị CSDL Oracle phía client 18 Hình 6: Giải pháp cân bằng tải phía server cho hệ quản trị CSDL Oracle 19 Hình 7: Giải pháp cân bằng tải cho hệ quản trị CSDL Oracle Real Application Cluster 20 Hình 8: Giải pháp Merge replication cân bằng tải cho hệ quản. .. replication cân bằng tải cho hệ quản trị CSDL SQL 22 Hình 9: Giải pháp Transaction replication cân bằng tải cho hệ quản trị CSDL SQL 24 Hình 10: Giải pháp Log shipping để cân bằng tải cho hệ quản trị CSDL SQL 25 Hình 11: Giải pháp Database Mirroring cân bằng tải cho hệ quản trị CSDL SQL 27 Hình 12: Giải pháp Network load balancing cân bằng tải cho hệ quản trị CSDL SQL 29 Hình 13: Các thủ tục cần... là lớn hơn rất nhiều so với các truy vấn ghi Do nhu cầu trên, nên khóa luận tập trung nghiên cứu và thử nghiệm giải pháp cân bằng tải cho các truy vấn đọc 9 CHƢƠNG 2: CÁC GIẢI PHÁP CÂN BẰNG TẢI CHO CÁC HỆ QUẢN TRỊ CSDL 2.1 CÁC GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL 2.1.1 Giải pháp sử dụng Replication cơ sở dữ liệu với MySQL Proxy Giải pháp này là mục tiêu nghiên cứu của khóa luận, chi tiết... gây quá tải máy chủ, từ đó xác định tính cần thiết của việc cân bằng tải cho các hệ quản trị CSDL nói chung và cho hệ quản trị CSDL MySQL Chƣơng 1 cũng giới thiệu về các tiêu chí đánh giá tải và hiệu năng của máy chủ Chƣơng 2: Giới thiệu một số giải pháp cân bằng tải cho các hệ quản trị CSDL: MySQL, PostgreSQL, Oracle và SQL Trình bày một số thuật toán đƣợc sử dụng trong các giải pháp cân bằng tải 1... cân bằng tải hệ quản trị CSDL PostgreSQL với PL /Proxy 17 2.3 GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL ORACLE Oracle là một hệ quản trị CSDL đối tƣợng – quan hệ đƣợc cung cấp và phát triển bởi tập đoàn Oracle Đây là một hệ quản trị CSDL có tính an toàn, bảo mật cao, tính nhất quán và toàn vẹn dữ liệu, cho phép ngƣời dùng truy cập tới cơ sở dữ liệu phân tán nhƣ một khối thống nhất [16] 2.3.1 Giải pháp. .. hỏng thiết bị có thể làm cho hỏng hoặc mất dữ liệu, thì giải pháp này tránh đƣợc tình trạng đó bằng cách phục hồi dữ liệu đã đƣợc sao lƣu Tuy nhiên, giải pháp này chƣa giải quyết đƣợc vấn đề cân bằng tải cho server Hai giải pháp trên đều không khả thi khi thì giải pháp replication cơ sở dữ liệu với bộ cân bằng tải MySQL Proxy đã đƣợc đƣa ra cho hệ quản trị CSDL MySQL Giải pháp này đang đƣợc các doanh... toán cân bằng tải cho hệ quản trị CSDL MySQL với Load Balancer là MySQL Proxy Chƣơng này tìm hiểu về giải pháp replication trong hệ quản trị CSDL MySQL, nguyên lý hoạt động của MySQL Proxy, ngôn ngữ kịch bản Lua đƣợc sử dụng để điều khiển các hành động của MySQL Proxy và công cụ mysqlslap để giả lập các client, sinh truy vấn đến các máy chủ Chƣơng 4: Thực nghiệm và đánh giá Tiến hành thực nghiệm cân bằng. .. của hệ thống cao hơn rất nhiều Khi một database server bị lỗi, thì một server khác thay thế server bị lỗi ngay tức khắc Ba yếu tố này liên hệ mật thiết với nhau, hỗ trợ nhau để đảm bảo hệ thống hoạt động tốt, ổn định trong thời gian dài 1.2.2 Sự cần thiết của việc cân bằng tải hệ quản trị CSDL MySQL với việc sử dụng bộ cân bằng tải là MySQL Proxy Hệ quản trị CSDL MySQL đã trở thành hệ quản trị CSDL. .. các hệ quản trị CSDL Tuy nhiên nhiều phƣơng pháp không giải quyết đƣợc đầy đủ cả ba yếu tố trên cho hệ thống máy chủ Vì vậy, khóa luận đƣa ra phƣơng pháp sử dụng MySQL proxy để cân bằng tải cho các máy chủ cơ sở dữ liệu MySQL MySQL proxy không chỉ đáp ứng đƣợc yêu cầu cân bằng tải mà còn đáp ứng đƣợc nhu cầu mở rộng và đảm bảo tính sẵn sàng cao của hệ thống nhờ việc sử dụng phƣơng pháp Replication cho. .. đó sẽ tự động gửi yêu cầu của ứng dụng tới các MySQLD (192.168.1.70 và 192.168.1.80) thật MySQLD nhận truy vấn, xử lý và gửi lại kết quả cho ứng dụng 11 2.2 GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL POSTGRESQL PostgreSQL là hệ quản trị CSDL đối tƣợng - quan hệ mạnh mẽ và mã nguồn mở Nó đã đƣợc phát triển 15 năm, và đã đƣợc chứng mình là hệ quản trị CSDL có độ bền mạnh, tính toàn vẹn dữ liệu và tính . solution for MySQL database management system that uses a load balancer, called MySQL Proxy. MySQL Proxy is a program that sits between clients and MySQL servers. All of MySQL Proxy s activities. CÂN BẰNG TẢI READ CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY. 33 3.1. GIỚI THIỆU VỀ MYSQL PROXY VÀ NGÔN NGỮ KỊCH BẢN LUA 33 3.1.1. Giới thiệu về mysql proxy 33 3.1.2. Giới thiệu về ngôn ngữ. tải cho hệ quản trị CSDL MySQL với Load Balancer là MySQL Proxy. Chƣơng này tìm hiểu về giải pháp replication trong hệ quản trị CSDL MySQL, nguyên lý hoạt động của MySQL Proxy, ngôn ngữ kịch bản

Ngày đăng: 27/08/2014, 12:04

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan