1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

Đ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

Thông tin cơ bản

Tiêu đề 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
Tác giả Đỗ Tấn Lập, Nguyễn Kiên Trung, Đinh Nam Khuê
Người hướng dẫn Vũ Bá Duy
Trường học Trường Đại học Công nghệ - ĐHQGHN
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo
Năm xuất bản 2023
Định dạng
Số trang 18
Dung lượng 0,94 MB

Nội dung

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

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

Mục lục

Mục lục 2

Lịch sử sửa đổi 3

Danh mục hình ảnh 3

1 Tổng quan 3

1.1 Giới thiệu 3

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

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

3.2.2 Course (khóa học) 7

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

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

3.2.5 Teacher (giảng viên) 8

3.2.6 Department (khoa) 8

3.2.7 Assignment (bài tập) 9

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

3.2.9 Grade (điểm) 9

4 Triển khai thử nghiệm 10

4.1 Chuẩn bị 10

4.2 Triển khai 10

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

4.2.2 Cấu hình MySQL 12

5 Đánh giá kết quả, hiệu năng 13

5.1 Kết quả 13

5.2 Đánh giá 15

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

1.1

Đỗ Tấn Lập

Nguyễn Kiên Trung

Đinh Nam Khuê

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

liệu

1.2

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

nhận vai trò Master và hệ thống vẫn

có thể tiếp tục mà không bị gián

đoạn

- Phân bố tải trên hệ thống: máy chủ

Slave có thể xử lý truy vấn đọc

(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ường Mô tả Khóa Kiểu dữ liệu Kích thước tối đa mssv Mã số định danh sinh viên (Mã sinh

Trang 9

full_name Tên đầy đủ của sinh viên none VARCHAR 250

date_of_birth Ngày sinh của sinh viên none DATE

email Email của sinh viên none VARCHAR 250

phone_number Số điện thoại none VARCHAR 50

3.2.2 Course (khóa học)

Tên trường Mô tả Khóa Kiểu dữ liệu Kích thước tối đa course_id Định danh môn học Khóa chính INT

course_name Tên môn học none VARCHAR 50

credits Số tín chỉ của môn học none INT

description Mô tả môn học none TEXT

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

Tên trường Mô tả Khóa Kiểu dữ liệu Kích thước tối đa class_id Định danh lớp học Khóa chính INT

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

teacher_id

Định danh giảng viên của lớp khóa

học, liên kết với bảng teacher qua

trường teacher_id

Khóa ngoại INT

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

Tên trường Mô tả Khóa Kiểu dữ liệu Kí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ý none DATE

3.2.5 Teacher (giảng viên)

Tên trường Mô tả Khóa Kiểu dữ liệu Kích thước tối đa teacher_id Định danh giảng viên Khóa chính INT

department_id

Định danh với khoa của giảng viên,

liên kết với bảng department qua

trường department_id

Khóa ngoại INT

first_name Họ của giảng viên none VARCHAR 10

last_name Tên của giảng viên none VARCHAR 10

full_name Tên đầy đủ của giảng viên none VARCHAR 50

email Email của giảng viên none VARCHAR 20

phone_number Số điện thoại none VARCHAR 10

3.2.6 Department (khoa)

Tên trường Mô tả Khóa Kiểu dữ liệu Kích thước tối đa department_id Định danh khoa Khóa chính INT

department_name Tên khoa none VARCHAR 30

3.2.7 Assignment (bài tập)

Tên trường Mô tả Khóa Kiểu dữ liệu Kích thước tối đa assignment_id Định danh bài tập Khóa chính INT

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

description Mô tả bài tập (câu hỏi, mẫu) none TEXT

due_date Hạn nộp bài none DATE

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

Tên trường Mô tả Khóa Kiểu dữ liệu Kích thước tối đa submission_id Định danh bài tập đã nộp Khóa chính INT

student_id

Định danh sinh viên đã nộp bài, liên

kết với bảng student qua trường

student_id

Khóa ngoại INT

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ài none DATE

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

3.2.9 Grade (điểm)

Tên trường Mô tả Khóa Kiểu dữ liệu Kích thước tối đa grade_id Định danh điểm số Khóa chính INT

student_id

Định danh sinh viên liên quan đến

điểm này, liên kết với bảng student

qua trường student_id

Khóa ngoại INT

course_id

Định danh khóa học liên quan đến

điểm, liên kết với bảng course qua

trường course_id

Khóa ngoại INT

class_id

Định danh lớp học liên quan tới điểm,

liên kết với bảng class qua trường

class_id

Khóa ngoại INT

Trang 12

giữa kỳ, điểm cuối kỳ, ) none ENUM

weight Trọng số của điểm(10%, 30% 70%) none ENUM

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

w