Báo Cáo Phần A Hệ Quản Trị Cơ Sở Dữ Liệu Chủ Đề Thiết Lập Nhân Bản 1 Master - 2 Slave, Áp Dụng Thử Nghiệm Với Cơ Sở Dữ Liệu Quản Lý Điểm Thi Sinh Viên..pdf

18 0 0
Tài liệu đã được kiểm tra trùng lặp
Báo Cáo Phần A Hệ Quản Trị Cơ Sở Dữ Liệu Chủ Đề Thiết Lập Nhân Bản 1 Master - 2 Slave, Áp Dụng Thử Nghiệm Với Cơ Sở Dữ Liệu Quản Lý Điểm Thi Sinh Viên..pdf

Đ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

Trang 1

Trường Đại học Công nghệ - ĐHQGHN Khoa công nghệ thông tin

-BÁO CÁO PHẦN A HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Chủ đề: Thiết lập nhân bản 1 Master - 2 Slave, áp dụng thử nghiệm với

cơ sở dữ liệu quản lý điểm thi sinh viên.

Giảng viên: Vũ Bá Duy

Ngày: 15/5/2023 Chuẩn bị bởi: Nhóm 15 Thành viên:

Đỗ Tấn Lập - 20020202 Nguyễn Kiên Trung - 20020489 Đinh Nam Khuê - 20020110

Trang 2

1.3 Tài liệu tham khảo 4

2 Tìm hiểu mô hình Master - Slave 4

2.1 Định nghĩa 4

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

2.3 Quy trình hoạt động 4

2.4 Ưu điểm và nhược điểm 5

3 Thiết kế cơ sở dữ liệu 6

3.1 Biểu đồ quan hệ (Entity-Relationship Diagram) 6

3.2 Thiết kế bảng dữ liệu (table) 7

3.2.1 Student (sinh viên) 7

Trang 3

5.2.1 Độ phức tạp 15 5.2.2 Hiệu năng 15 6 Tổng kết 15

Trang 4

Lịch sử sửa đổi

Đỗ Tấn Lập Nguyễn Kiên Trung Đinh Nam Khuê

17/5/2023 Thêm bản thiết kế cơ sở dữ liệu.

Đỗ Tấn Lập Nguyễn Kiên Trung Đinh Nam Khuê

17/5/2023 Triển khai cơ sở dữ liệu

Danh mục hình ảnh

Hình 3.1: Biểu đồ quan hệ (ER diagram) 7

Hình 4.1 Cấu trúc thư mục thực hiện 12

Hình 4.2 Ví dụ về cấu hình mysql cho Master 13

Hình 4.3 Ví dụ cấu hình file môi trường cho node Master 13

Hình 4.5 Kết quả sau khi chạy docker-compose up 13

Hình 4.4 Cấp quyền Replication Slave 13

Hình 4.5 Địa chỉ ip của node Master 14

Hình 4.6 Thông tin về Master status 14

Hình 4.7 Bắt đầu tạo bản sao 14

Hình 5.1 Các bảng dữ liệu 15

Hình 5.2 Kết quả sau quá trình Slave (trên 1 node, tương tự với node còn lại) 15

Hình 5.3 Thêm dữ liệu trong node Master 15

Hình 5.4 Dữ liệu được cập nhật trong node Slave 16

Trang 5

1.Tổng quan 1.1 Giới thiệu

Đây là báo cáo môn học Hệ quản trị cơ sở dữ liệu về chủ đề “Thiết lập nhân bản 1 Master - 2 Slave, áp dụng cho cơ sở dữ liệu quản lý điểm thi sinh viên” được thực hiện và trình bày bởi nhóm 15.

1.2 Đề xuất cách đọc

Tài liệu này mô tả về việc tìm hiểu mô hình Master - Slave và thực nghiệm áp dụng với cơ sở dữ liệu quản lý điểm sinh viên Tài liệu được chia thành các phần như sau:

● Tìm hiểu về mô hình Master - Slave ● Thiết kế cơ sở dữ liệu quản lý điểm sinh viên ● Triển khai mô hình

● Đánh giá kết quả 1.3 Tài liệu tham khảo

[1] MySQL Replication:https://dev.mysql.com/doc/refman/8.0/en/replication.html [2] Docker Documentation:https://docs.docker.com/

[3] Giới thiệu về MySQL Replication (Viblo):

https://viblo.asia/p/gioi-thieu-ve-mysql-replication-master-slave-bxjvZYwNkJZ 2.Tìm hiểu mô hình Master - Slave

2.1 Định nghĩa

Mô hình Master - Slave (hay MySQL Replication Master-Slave) là một mô hình cơ sở dữ liệu phân tán trong đó có một máy chủ chính (Master) và một hoặc nhiều máy chủ phụ (Slave) Mô hình này sử dụng nhằm mục đích tăng tính sẵn sàng, độ tin cậy và hiệu suất của cơ sở dữ liệu.

Trang 6

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

Trong mô hình Master-Slave, máy chủ Master là nơi nhận và xử lý các thao tác ghi như INSERT, UPDATE, DELETE từ hệ thống hoặc người quản trị Dữ liệu mới được ghi vào máy chủ Master và sau đó được sao chép lại đến các máy chủ Slave.

Máy chủ Slave nhận các bản sao dữ liệu từ máy chủ Master và được sử dụng cho các thao tác đọc (read) Điều này giúp phân bố tải giữa các máy chủ, giảm thiểu tình trạng quá tải và cung cấp khả năng mở rộng đọc 2.3 Quy trình hoạt động

Mô hình Master-Slave hoạt động như sau:

● Đồng bộ hóa ban đầu (Initial Synchronization): Ban đầu, các máy chủ Master và Slave sẽ được đồng bộ với nhau Sau đó một bản sao dữ liệu của Master sẽ được tạo ra và chép sang Slave.

● Ghi dữ liệu (Write Operation): Các thao tác ghi dữ liệu (như INSERT, UPDATE, DELETE) sẽ được thực hiện trên máy chủ Master Mỗi khi có thay đổi trên máy chủ Master, các bản ghi tương ứng sẽ được ghi vào binary log.

● Sao chép dữ liệu (Data Replication): Máy chủ Slave theo dõi binary log trên Master, khi có thay đổi thì sẽ thực hiện thay đổi tương ứng trên máy chủ Slave Dữ liệu sẽ được sao chép từ Master sang Slave thông qua giao thức replication.

● Đọc dữ liệu (Read Operations): Các thao tác đọc dữ liệu (SELECT) sẽ được chia tải ra cả Master và Slave.

● Xử lý sự cố và khôi phục: Trong trường hợp máy chủ Master gặp sự cố, một máy chủ Slave có thể được chuyển đổi để đảm nhận vai trò làm Master và tiếp tục theo quy trình Sau khi khắc phục được sự cố, máy chủ bị lỗi sẽ được khôi phục với vai trò là Slave và tiếp tục đồng bộ với Master mới.

Trang 7

2.4 Ưu điểm và nhược điểm

- Tăng tính sẵn có và độ tin cậy cao, với mô hình này nếu máy chủ Master bị lỗi thì Slave có thể đảm (SELECT) nên giảm được tải cho máy chủ Master Điều này giúp cải thiện hiệu suất và thời gian đáp ứng của hệ thống.

- Sao lưu và khôi phục dữ liệu: Có thể coi máy chủ Slave là một bản sao lưu dự phòng của Master Nếu Master gặp sự cố thì dữ liệu vẫn được bảo toàn và khôi phục từ Slave.

- Độ trễ trong sao chép dữ liệu: Máy chủ Slave nhận dữ liệu từ máy chủ Master qua quá trình sao chép nên sẽ có độ trễ nhất định và có chênh lệch về dữ liệu giữa Master và Slave.

- Khả năng xung đột dữ liệu - Quản lý phức tạp: Yêu cầu cấu hình

và quản lý phức tạp hơn so với một máy chủ đơn lẻ.

- Đòi hỏi kiến thức chuyên môn cao để quản lý.

Trang 8

3.Thiết kế cơ sở dữ liệu

3.1 Biểu đồ quan hệ (Entity-Relationship Diagram)

Hình 3.1: Biểu đồ quan hệ (ER diagram) 3.2 Thiết kế bảng dữ liệu (table)

3.2.1 Student (sinh viên)

Tên trườngMô tảKhóaKiểu dữ liệuKích thước tối đamssv Mã số định danh sinh viên (Mã sinh

Trang 9

full_nameTên đầy đủ của sinh viênnoneVARCHAR250date_of_birthNgày sinh của sinh viênnoneDATE

emailEmail của sinh viênnoneVARCHAR250phone_number Số điện thoạinoneVARCHAR50

3.2.2 Course (khóa học)

Tên trườngMô tảKhóaKiểu dữ liệuKích thước tối đacourse_idĐịnh danh môn họcKhóa chínhINT

course_nameTên môn họcnoneVARCHAR50creditsSố tín chỉ của môn họcnoneINT

descriptionMô tả môn họcnoneTEXT

3.2.3 Class (lớp khóa học)

Tên trườngMô tảKhóaKiểu dữ liệuKích thước tối đaclass_idĐịnh danh lớp họcKhóa chínhINT

course_id Định danh khóa học, liên kết với bảngcourse qua trường course_id Khóa ngoạiINT

Định danh giảng viên của lớp khóahọc, liên kết với bảng teacher quatrường teacher_id

Khóa ngoạiINT

3.2.4 Enrollment (đăng ký học)

Tên trườngMô tảKhóaKiểu dữ liệuKích thước tối đa

Trang 10

với bảng student qua trường student_idKhóa ngoại INT

class_id Định danh lớp học được đăng ký, liên

kết với bảng class qua trường class_id Khóa ngoại INT enrollment_date Ngày đăng kýnoneDATE

3.2.5 Teacher (giảng viên)

Tên trườngMô tảKhóaKiểu dữ liệuKích thước tối đateacher_idĐịnh danh giảng viênKhóa chínhINT

Định danh với khoa của giảng viên,liên kết với bảng department quatrường department_id

Khóa ngoạiINT

first_nameHọ của giảng viênnoneVARCHAR10last_nameTên của giảng viênnoneVARCHAR10full_nameTên đầy đủ của giảng viênnoneVARCHAR50emailEmail của giảng viênnoneVARCHAR20phone_numberSố điện thoạinoneVARCHAR10

3.2.6 Department (khoa)

Tên trườngMô tảKhóaKiểu dữ liệuKích thước tối đadepartment_idĐịnh danh khoaKhóa chínhINT

department_name Tên khoanoneVARCHAR30

3.2.7 Assignment (bài tập)

Tên trườngMô tảKhóaKiểu dữ liệuKích thước tối đaassignment_idĐịnh danh bài tậpKhóa chínhINT

Trang 11

teacher_id Định danh giảng viên, liên kết với

bảng teacher qua trường teacher_id Khóa ngoại INT assignment_nam

e Tiêu đề của bài tập none VARCHAR 50 descriptionMô tả bài tập (câu hỏi, mẫu)noneTEXT

due_dateHạn nộp bàinoneDATE

3.2.8 Submission (bài tập đã nộp)

Tên trườngMô tảKhóaKiểu dữ liệuKích thước tối đasubmission_idĐịnh danh bài tập đã nộpKhóa chínhINT

Định danh sinh viên đã nộp bài, liênkết với bảng student qua trườngstudent_id

Khóa ngoạiINT

assignment_id Định danh bài tập, liên kết với bảng

assignment qua trường assignment_id Khóa ngoại INT submission_date Ngày nộp bàinoneDATE

file_pathĐường dẫn tới file bài tập đã nộpnoneVARCHAR250

3.2.9 Grade (điểm)

Tên trườngMô tảKhóaKiểu dữ liệuKích thước tối đagrade_idĐịnh danh điểm sốKhóa chínhINT

Định danh sinh viên liên quan đếnđiểm này, liên kết với bảng studentqua trường student_id

Khóa ngoạiINT

Định danh khóa học liên quan đếnđiểm, liên kết với bảng course quatrường course_id

Khóa ngoạiINT

Định danh lớp học liên quan tới điểm,liên kết với bảng class qua trườngclass_id

Khóa ngoạiINT

Trang 12

giữa kỳ, điểm cuối kỳ, ) none ENUM weightTrọng số của điểm(10%, 30% 70%)noneENUM

4.Triển khai thử nghiệm

Trong phần triển khai thực nghiệm này, ta sẽ triển khai mô hình 1 Master - 2 Slave với cơ sở dữ liệu quản lý điểm sinh viên đã xây dựng ở trên Mô hình sẽ được triển khai thử nghiệm trên hệ điều hành windows với docker.

4.1 Chuẩn bị

● Docker: Phiên bản 23.0.5 hoặc cao hơn ● Docker-compose: Phiên bản 2.17.3 4.2 Triển khai

4.2.1 Cấu hình môi trường (Environment)

Cấu trúc folder bao gồm 3 thư mục: Master, Slave1 và Slave2, lưu file cấu hình cho mysql, file môi trường env, và file docker-compose.yml.

Trang 13

Hình 4.1 Cấu trúc thư mục thực hiện

Cấu hình file my.cnf cho node Master và 2 node Slave Chú ý thuộc tính server-id là duy nhất, nguyên dương với mỗi node Ở đây với node Master: server-id=1, với Slave1: server-id=2, với Slave2: server-id=3.

Trang 14

Hình 4.2 Ví dụ về cấu hình mysql cho Master.

Cấu hình file môi trường: env cho 3 node File này bao gồm các biến môi trường dùng trong các node tương ứng.

Hình 4.3 Ví dụ cấu hình file môi trường cho node Master.

Chạy docker-compose up -d để chạy docker-compose, được kết quả như hình:

Hình 4.5 Kết quả sau khi chạy docker-compose up. 4.2.2 Cấu hình MySQL

Tạo người dùng và cấp quyền REPLICATION Slave trên node Master Trong bước này chỉ cần tạo 1 người dùng để cho 2 node Slave cùng sử dụng.

Hình 4.4 Cấp quyền Replication Slave.

Lấy địa chỉ ip của node Master để truy cập (trong bài này là 192.168.48.2)

Trang 15

Hình 4.5 Địa chỉ ip của node Master.

Lấy thông tin file log và vị trí của node Master để cấu hình cho các node Slave.

Hình 4.6 Thông tin về Master status.

Dùng thông tin vừa lấy được để cấu hình cho các node Slave-1 và Slave-2 và bắt đầu Slave Câu lệnh flush privileges: dùng để cập nhật lại quyền, để có thể dùng ngay mà không phải restart mysql.

Hình 4.7 Bắt đầu tạo bản sao. 5.Đánh giá kết quả, hiệu năng

5.1 Kết quả

Tạo cơ sở dữ liệu student_grade theo thiết kế có sẵn trên nút Master thu được kết quả như sau:

Trang 16

Hình 5.1 Các bảng dữ liệu

Trong 2 node Slave cũng sẽ nhận được các bảng tương tự Dùng câu lệnh show tables cho các node Slave

Hình 5.2 Kết quả sau quá trình Slave (trên 1 node, tương tự với node còn lại). Thêm dữ liệu trong bảng students

Hình 5.3 Thêm dữ liệu trong node Master Kết quả nhận được trong node Slave:

Trang 17

Hình 5.4 Dữ liệu được cập nhật trong node Slave 5.2 Đánh giá

5.2.1 Độ phức tạp

Theo như việc triển khai ở phần 4, ta có thể thấy mô hình 1 Master-2 Slave có độ phức tạp về cấu hình và quản lý hơn so với một máy chủ đơn lẻ Cần có kiến thức và kỹ năng chuyên sâu về quản lý máy chủ, Docker, replication và quản lý cơ sở dữ liệu để cài đặt, theo dõi và bảo trì hệ thống Bao gồm cả cấu hình để đồng bộ hóa, quản lý xung đột dữ liệu và giải quyết sự cố khi có sự chênh lệch dữ liệu giữa các máy chủ.

Triển khai mô hình 1 Master-2 Slave yêu cầu cấu hình các máy chủ Master và Slave một cách chính xác Cần xác định và cấu hình các thông số như địa chỉ IP, cổng kết nối, tên người dùng và mật khẩu cho việc sao chép dữ liệu Ngoài ra, cần cấu hình các thiết lập bảo mật để đảm bảo rằng chỉ những máy chủ Slave được ủy quyền mới có thể sao chép dữ liệu từ máy chủ Master.

5.2.2 Hiệu năng

Như đã đề cập ở phần ưu và nhược điểm, triển khai mô hình 1 Master-2 Slave cung cấp khả năng phân bố tải trên hệ thống Các máy chủ Slave có thể xử lý các truy vấn đọc, giảm thiểu tình trạng quá tải máy chủ Điều này cải thiện hiệu suất và thời gian đáp ứng của hệ thống Ngoài ra, khả năng sao lưu dữ liệu từ máy chủ Master đến các máy chủ Slave giúp bảo vệ dữ liệu và tăng tính sẵn sàng Tuy nhiên nhược điểm có thể nói đến khi triển khai mô hình này là vấn đề về đồng nhất dữ liệu do độ trễ khi thực hiện đồng bộ hóa (replication).

6.Tổng kết

Trong bài báo cáo này, chúng ta đã tìm hiểu về mô hình Master-Slave trong triển khai cơ sở dữ liệu và ứng dụng thực nghiệm với cơ sở dữ liệu quản lý điểm

Trang 18

sinh viên Ta đã đề cập đến cách hoạt động của mô hình này, trình bày thiết kế cơ sở dữ liệu và các bước triển khai với mô hình 1 Master-2 Slave.

Qua việc tìm hiểu và thực nghiệm, có thể thấy mô hình này có các ưu điểm nổi trội so với việc triển khai cơ sở dữ liệu truyền thống như tăng khả năng chịu tải, tăng tính sẵn sàng và đem lại hiệu năng tốt Tuy nhiên cũng có một số mặt hạn chế phải nói đến là việc cấu hình phức tạp hơn, yêu cầu kiến thức chuyên môn về quản trị hệ thống tốt và điểm yếu về việc đồng nhất dữ liệu.

Tổng kết lại, qua quá trình tìm hiểu và thực nghiệm đã đem lại cho ta một cái nhìn tổng quan hơn về mô hình Master-Slave, những mặt lợi-hại Điều này giúp ta có thể lựa chọn và áp dụng mô hình Master-Slave hiệu quả với những dự án trong tương lai.

Ngày đăng: 04/05/2024, 12:44

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

Tài liệu liên quan