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

BÁO CÁO HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB

52 99 0

Đ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

Cấu trúc

  • ĐỀ TÀI: TÌM HIỂU HỆ THỐNG PHÂN TÁN SỬ DỤNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGOD

  • CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG PHÂN TÁN

    • 1.1. Tổng quan về hệ thống phân tán

    • 1.2. Tại sao phải phát triển phần mềm phân tán

      • 1.2.1. Nhu cầu ứng dụng:

      • 1.2.2. Khả năng kĩ thuật:

    • 1.3. Khó khăn trong việc phát triển các phần mềm phân tán

  • CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN

    • 2.1 Một số hệ phân tán thường dùng

      • 2.2 NoSQL là gì?

        • 2.2.1. Thuật ngữ

        • 2.2.2. Lịch sử

        • 2.2.3. Tốt hơn SQL

        • 2.2.4. Một số thuật ngữ liên quan.

      • 2.3 Kiến trúc

        • 2.3.1. Sơ lược.

        • 2.3.2. Một số đặc điểm.

        • 2.3.3. What is NoSQL (technically speaking)?

        • 2.2.4 Ứng dụng NoSQL

  • CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

    • 3.1. Thiết kế lược đồ

      • 3.1.1. Nhúng hay Tham chiếu

      • 3.1.2. Lựa chọn chỉ mục

    • 3.2. Chỉ mục

      • 3.2.1. Các khái niệm cơ bản

      • 3.2.2. Chỉ mục hỗn hợp các khóa

      • 3.2.3. Chỉ mục thưa thớt

      • 3.2.4. Chỉ mục duy nhất

        • Giá trị lặp lại

        • Chỉ mục duy nhất không cho phép một khóa có giá trị nhân bản. Nếu bạn muốn đánh chỉ mục bằng mọi giá, hãy giữ văn bản đầu tiên trong CSDL và xóa tất cả các văn bản có giá trị bị nhân bản, thêm tùy chọn dropDups

      • 3.2.5. Xóa chỉ mục

      • 3.2.6 ReIndex

    • 3.3 Sao chép

    • 3.4 Truy vấn

      • Máy chủ cộng đồng MongoDB 

      • Máy chủ doanh nghiệp MongoDB 

  • CHƯƠNG 4 XÂY DỰNG HỆ THỐNG PHÂN TÁN

    • 4.1 Kiến trúc cụm:

    • 4.2 Cấu hình tập tin máy chủ

    • 4. 3 Cấu hình bộ định tuyến truy vấn

    • 4.4 Thêm Shards vào cụm

    • 4.5. Cấu hình Sharding

  • KẾT LUẬN

Nội dung

ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI: TÌM HIỂU HỆ THỐNG PHÂN TÁN SỬ DỤNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB Sinh viên thực hiện: LÊ TRÍ NHÂN PHAN XUÂN VŨ 17IT2 17IT2 Giáo viên hướng dẫn: NGUYỄN ANH TUẤN Đà Nẵng, tháng năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI: TÌM HIỂU HỆ THỐNG PHÂN TÁN SỬ DỤNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGOD Sinh viên thực hiện: LÊ TRÍ NHÂN PHAN XUÂN VŨ 17IT2 17IT2 Giáo viên hướng dẫn: NGUYỄN ANH TUẤN Đà Nẵng, tháng năm 2020 MỞ ĐẦU Mơ hình Client/Server, mơ hình n lớp (n-tier), thuật ngữ mà thường nghe nói đến xây dựng ứng dụng mạng Mỗi mơ hình có đặc điểm khác với thuận lợi khó khăn riêng Là người phát triển ứng dụng bạn cần phải dựa vào đặc điểm mơ hình để đưa định đỳng đắn việc chọn mơ hình phù hợp cho ứng dụng Ứng dụng hoạt động hiệu quả, dễ nâng cấp, bảo trì lựa chọn mơ hình phù hợp, ngược lại, ứng dụng hoạt động hiệu khó nâng cấp, bảo trì mơ hình ứng dụng khơng phù hợp Do việc lựa chọn mơ hình phù hợp cho ứng dụng quan trọng Trong chương giới thiệu khái q mơ hình ứng dụng Các đặc điểm mơ hình, ưu nhược điểm mơ hình cuối vài lời khun lựa chọn mơ hình phù hợp cho ứng dụng LỜI CẢM ƠN Nhóm chúng em xin chân thành cảm ơn thầy Nguyễn Anh Tuấn hỗ trợ cho chúng em trải nghiệm cung cấp cho nhóm em tài liệu, kiến thức giúp chúng em hoàn thành tốt tập Mặc dù cố gắng hoàn thành đồ án phạm vi khả cho phép chắn khơng tránh khỏi thiếu sót Chúng em kính mong nhận cảm thơng tận tình bảo thầy Em xin chân thành cảm ơn! NHẬN XÉT (Của giảng viên hướng dẫn) ……………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………… MỤC LỤC CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG PHÂN TÁN .6 1.1 Tổng quan hệ thống phân tán 1.2 Tại phải phát triển phần mềm phân tán 1.3 Khó khăn việc phát triển phần mềm phân tán CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN 10 2.1 Một số hệ phân tán thường dùng 10 CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .19 3.1 Thiết kế lược đồ .19 3.2 Chỉ mục 21 3.3 Sao chép 26 3.4 Truy vấn 29 CHƯƠNG XÂY DỰNG HỆ THỐNG PHÂN TÁN 32 4.1 Kiến trúc cụm: 32 4.2 Cấu hình tập tin máy chủ 33 Cấu hình định tuyến truy vấn 36 4.4 Thêm Shards vào cụm .39 4.5 Cấu hình Sharding 41 KẾT LUẬN 42 DANH MỤC HÌNH Hình 3.1 Minh họa sưu tập 19 Hình 3.2 Mơ hình Master – Slave hai nút 27 Hình 3.3 Mơ hình Master – Slave bốn nút 27 Hình 3.4 Mơ hình ReplicaSets hai nút 28 Hình 3.5 Replica Sets – Bầu chọn master 28 Hình 3.6 Server trở thành server cấp 28 Hình 4.2 File cấu hình máy chủ mongodb 33 Hình 4.3 Cấu hình replication cho máy chủ .34 Hình 4.4 Cấu hình mongodb cho máy chủ 35 Hình 4.5 Khởi tạo 36 Hình 4.6 Cấu hình file mongodb.conf máy chủ router 37 Hình 4.7 Tạo file mongos.service 38 Hình 4.8 Xác nhận mongos chạy .39 Hình 4.9 Thêm shard vào cụm 40 Hình 4.10 Chia sẻ liệu cho máy shard 41 CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG PHÂN TÁN 1.1 Tổng quan hệ thống phân tán Hệ phân tán tập hợp máy tính kết nối với mạng máy tính cài đặt phần mềm hệ phân tán.Hệ phân tán hệ thống có chức liệu phân tán trạm (máy tính) kết nối với mạng máy tính.Hệ phân tán tập hợp máy tính độc lập giao tiếp với người dùng hệ thống tồn vẹn Như vậy, nói hệ phân tán bao gồm mạng máy tính phần mềm phân tán 1.2 Tại phải phát triển phần mềm phân tán Nguyên nhân thúc đẩy phần mềm phân tán hình thành do: Người dùng phân tán (địa lý) Dữ liệu phân tán (địa lý) Sau người ta nhận thấy cách phát triển phần mềm phân tán đạt hiệu là: Tính mở, khả chuyển co dãn Khả thay đổi phạm vi linh hoạt (quy mơ) Tính sẵn dùng đạt cao, phần hệ thống bị lỗi Đặc biệt phát triển không ngừng thiết bị di động siêu di động tạo mạng kết nối vô lớn với khả xử lý gấp bội, cần phải tận dụng để thực tính tốn Vì phần mềm phân tán phát triển do: 1.2.1 Nhu cầu ứng dụng: Tích hợp ứng dụng riêng rẽ có: Các phần mềm có sẵn, gắn chặt với thói quen nhân viên văn hóa kinh doanh doanh nghiệp Những phần mềm khơng dễ dàng bị thay phần mềm (phần mềm chưa đảm bảo chất lượng giao dịch) Do xây dựng hệ thống phải dựa cở sở tích hợp ứng dụng riêng rẽ có Tích hợp nguồn tài ngun có: Lưới tính tốn: Các lưới tính tốn có có khả tích hợp vào hệ thống mà khơng cần phải xây dựng hồn tồn lại từ đầu Nó tốn vi phạm sách an ninh Quản lý liệu: Các thành phần quản lý liệu tuân theo quy định an ninh có sẵn Khơng dễ chia sẻ thay hồn hảo thành phần quản lý liệu Đưa tin học lĩnh vực ứng dụng Tích hợp đối tượng sống thực: Các ứng dụng yêu cầu khả kĩ thuật cao, tính tốn phân tán bắt buộc phần mềm phân tán cần triển khai 1.2.2 Khả kĩ thuật: Chi phí hiệu máy tính truyền thơng: Ngày máy tính đạt sức mạnh đủ lớn mà mạng truyền thông (Internet mạng viễn thông) đạt khả truyền tải vô lớn Việc thiết kế phần mềm phân tán mặt kĩ thuật Ngồi lợi ích có từ phần mềm phân tán đáng để đánh đổi với việc khai thác mạng máy tính phương tiện truyền thơng Do khả kĩ thuật phát triển phần mềm phân tán có, với chi phí chấp nhận 1.3 Khó khăn việc phát triển phần mềm phân tán Phần mềm phân tán có đặc điểm: Nhiều thành phần tham gia với phần cứng, phần mềm không hồn tồn giống nhau, từ có cách giao tiếp khác Chịu ảnh hưởng đường truyền mạng (băng thơng, tỉ lệ lỗi truyền, tính sẵn dùng cao điểm), lệnh truyền liệu chưa commit thành công.Ràng buộc thứ tự kiện (các kiểu đồng khác nhau) thuê bao MongoDB Enterprise Advanced, có tính hỗ trợ tồn diện SLA tốt bạn chạy MongoDB sở hạ tầng riêng bạn MongoDB Enterprise Advanced cung cấp cho bạn công cụ vận hành CHƯƠNG XÂY DỰNG HỆ THỐNG PHÂN TÁN Hình 4.1 Sơ đồ hệ thống phân tán sử mongodb 4.1 Kiến trúc cụm: Hệ thống bao gồm máy máy chủ cài đặt hệ điều hành Ubuntu Server 18.04 LTS, cấu hình đề nghị cho máy bao gồm: 60GB dùng cho lưu trữ liệu, 1024kb ram Các máy chủ đặt tên riêng biệt nhằm xác định chức vai trò máy chủ: Config Server: dùng để lưu trữ thiết lập siêu liệu cấu hình cho phần lại cụm Query Router: Trình mongo hoạt động giao diện ứng dụng khách phân đoạn cụm Vì liệu phân phối nhiều máy chủ, truy vấn cần định tuyến đến phân đoạn nơi lưu trữ phần thông tin định Bộ định tuyến truy vấn chạy máy chủ ứng dụng Shard: máy chủ sở liệu chứa phần liệu Các mục sở liệu chia cho phân đoạn theo phạm vi băm 4.2 Cấu hình tập tin máy chủ 4.2.1 Trên máy chủ cấu hình, sửa đổi giá trị sau (/etc/mongod.conf): Hình 4.7 File cấu hình máy chủ mongodb Địa bindIp phải khớp với địa IP cấu hình cho máy chủ cấu hình tệp máy chủ bạn phần trước Đây phải địa IP riêng trừu bạn cấu hình mã hóa SSL / TLS 4.2.2 Bỏ replication phần thêm replSetName hiển thị bên để tạo cho máy chủ cấu hình bạn Một replica set MongoDB nhóm tiến trình mongodb trì liệu Các replica set cung cấp tính dự phòng tính sẵn sàng cao sở để triển khai nhập xuất liệu cần thiết Phần giới thiệu cách chép MongoDB thành phần cấu trúc replica set, cung cấp hướng dẫn cho tác vụ phổ biến liên quan đến replica set Hình 4.8 Cấu hình replication cho các máy chủ configReplSet tên đặt cấu hình Giá trị sủa đổi, khuyên bạn nên sử dụng tên mô tả để giúp bạn theo dõi 4.2.3 Bỏ ghi phần sharding cấu hình vai trò máy chủ lưu trữ cụm làm máy chủ cấu hình Sharding công việc tác Database thành nhiều Database khác nhau, database chứa phần liệu Như ví dụ hình bên tách bảng user thành nhiều database, database chứa phần liệu bảng user Hình 4.9 Cấu hình mongodb cho các máy chủ 4.2.4 Khởi động lại dịch vụ mongod sau thay đổi thực hiện: Sudo systemctl restart mongod 4.2.5 Trên Linodes bạn, kết nối với trình MongoDB qua cổng 27019 với người dùng quản trị bạn mongo mongo-config-1:27019 -u mongo-admin -p authenticationDatabase admin Sửa đổi tên máy chủ để khớp với tên bạn bạn sử dụng quy ước đặt tên khác với ví dụ Kết nói với mongod máy chủ cấu hình ví dụ này, bạn cớ thể kết nối với máy chủ cấu hình cụn chúng tơi thêm máy chủ kết nối 4.2.6 Khởi tạo rs.initiate( { _id: "configReplSet", configsvr: true, members: [ { _id: 0, host: "configsvr1:27017" }, { _id: 1, host: "configsvr2:27017" } ) Thay tên máy chủ riêng bạn có Bạn thấy thông báo cho biết hoạt động thành cơng { "ok" : } Hình 4.10 Khởi tạo Lưu ý dấu nhắc shell MongoDB thay đổi thành configReplSet:PRIMARY> configReplSet:SECONDARY>, tùy thuộc vào Linode mà bạn sử dụng để chạy lệnh trước Để xác minh thêm máy chủ thêm vào sao: rs.status() Cấu hình định tuyến truy vấn Một router hoạt động liên kết hai nhiều mạng chuyển gói liệu chúng Router dựa vào bảng định tuyến (routing table) để tìm đường cho gói liệu Bảng định tuyến quản trị mạng cấu hình tĩnh (static), nghĩa thiết lập lần thường quản trị mạng nhập tay, động (dynamic), nghĩa bảng tự học đường nội dung tự động thay đổi theo thay đổi tô pô mạng Một cách giúp xây dựng bảng định tuyến theo hướng dẫn CCNA 4.3.1 Tạo tệp cấu hình có tên ‘/etc/mongos.conf’ cung cấp giá trị sau: Hình 4.11 Cấu hình file mongodb.conf máy chủ router Thay 192.0.2.4 định tuyến địa IP riêng Linode bạn lưu tệp Replica set sharding sử dụng chế xác nhận tài khoản phiên v1.9.1 (còn phiên v1.8 có replica set khơng có sharding) Từ phía client, q trình tương đối đồng để sử dụng chế xác nhận server single: thực kết nối tới hệ thống mongos, tạo tài khoản người dùng, kiểm tra, giám sát người dùng tạo kết nối Điểm khác biệt server sử dụng key file để xác nhận thông tin liên lạc bên Về key file file text đơn mã hóa thuật tốn hash dùng mật bên 4.3.2 Tạo tệp đơn vị systemd cho mongos gọi ‘/lib/systemd/system/mongos.service’, với thơng tin sau: Hình 4.12 Tạo file mongos.service 4.3.3 Dịch vụ mongos có khóa liệu xung đột với mongod, chắn mongod bị dừng trước tiếp tục: sudo systemctl stop mongod 4.3.4 Kích hoạt mongos.service để tự động khởi động lại, sau khởi tạo mongos: sudo systemctl enable mongos.service sudo systemctl start mongos 4.3.5 Xác nhận mongos chạy systemctl status mongos Bạn thấy đầu tương tự này: Hình 4.13 Xác nhận mongos chạy 4.4 Thêm Shards vào cụm 4.4.1 Đăng nhập vào máy chủ phân đoạn bạn thay đồi dòng sau tệp cấu hình MongoDB Địa IP dòng nên thay đổi thành địa tương ứng với địa tệp máy chủ bạn 4.4.2 Từ máy shard bạn kết nối với định tuyến truy vấn mà tơi định cấu hình trên: mongo mongo-query-router:27017 -u mongo-admin -p authenticationDatabase admin Nếu định tuyến truy vấn bạn có tên máy chủ khác, thay lệnh lệnh 4.4.3 Từ giao diện mongos, thêm shard riêng lẻ sh.addShard( "mongo-shard-1:27017" ) sh.addShard( "mongo-shard-2:27017" ) Tất bước thực từ kết nối mongos, bạn không cần đăng nhập vào shard riêng lẻ tạo kết nối để thêm shard Bạn có thêm thêm nhiều shard Hãy chắn sửa đổi tên máy chủ lệnh thích hợp Hình 4.14 Thêm các shard vào cụm 4.4.4 Tùy chọn, bạn đinh cấu hình cho shard thay máy chủ đơn lẻ, bạn thêm chúng giai đoạn lệnh tương tự sh.addShard("rs0/mongo-repl-1:27017,mongo-repl-2:27017,mongo-repl3:27017" Trong đinh dạng này, rs0 tên đặt đặt cho shard đầu tiên, mongo-repl-1 tên máy chủ shard (sử dụng cổng 27017)… 4.5 Cấu hình Sharding Ở giai đoạn này, thành phần cụm bạn kết nối liên lạc với Bước cuối cho phép sharding Việc kích hoạt Sharding diễn theo giai đoạn việc tổ chức liệu MongoDB Để hiểu cách liệu phân phối, nhanh chống xem xét lại cấu trúc liệu chính: Database- cấu trúc liệu rộng MongoDB, sử dụng để chứa nhóm liệu liên quan Collections – Tương tự bảng hệ thống sở liệu quan hệ truyền thống, sưu tập cấu trúc liệu bao gồm liệu sở Documents – Đơn vị lữu trữ liệu MonoDB Sừ dụng định dạng JSON để lưu trữ liệu băng cặp khóa giá trị truy vấn ứng dụng Hình 4.15 Chia sẻ liệu cho các máy shard KẾT LUẬN Trong trình thực đồ án nhóm chúng em tiếp thu với nhiều chương trình mới, hệ thống hệ điều hành Ubuntu Với giúp đỡ nhiệt tình thầy Tuấn, nhóm làm việc server thật với nhiều thay đổi Về ưu điểm, nhóm chúng em cài đặt hệ thống server thật với việc sử dụng hệ điều hành Ubuntu Server 18.04, biết cách cấu hình làm việc server Tìm hiểu số hệ quản trị sở liệu mới, cài đặt cấu hình trực tiếp hệ thống Hiểu cấu trúc hệ phân tán kết hợp vào việc sử lí liệu cho trang web Về nhược điểm, nhóm chưa phát huy hết tính hệ phân tán, tiến độ làm việc chậm chưa sâu vào phần hệ thống Với việc học thêm hệ thống hệ quản trị sở liệu mới, nhóm chúng em mong tiếp tục làm số hệ thống khác với mẻ TÀI LIỆU THAM KHẢO [1] "Core APIs," 15 2019 [Online] Available: https://docs.moodle.org/dev/Core_APIs [Accessed 2019] [2] "Building Database Clusters with MongoDB," [Online] Available: https://www.linode.com/docs/databases/mongodb/build-database-clusterswith-mongodb/ [3] "Ubuntu.com," [Online] Available: https://ubuntu.com/download/alternativedownloads#alternate-ubuntu-server-installer [4] H t S Y Server [Online] Available: https://www.linode.com/docs/security/securing-your-server/ [5] "Cluster| Node.js," [Online] Available: https://nodejs.org/api/cluster.html [6] "Getting Started with MongoDB, Node.js and Restify," [Online] Available: https://www.mongodb.com/blog/post/getting-started-with-mongodb-nodejsand-restify [7] "Creating a MongoDB Replica Set," [Online] Available: https://www.linode.com/docs/databases/mongodb/create-a-mongodb-replicaset/ [8] "Configure mongod and mongos for TLS/SSL," [Online] Available: https://docs.mongodb.com/manual/tutorial/configure-ssl/ [9] "MongoDB Tools," [Online] Available: https://docs.mongodb.com/tools/ [10] "The MongoDB 4.2 Manual," [Online] Available: https://docs.mongodb.com/manual/ ...ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI: TÌM HIỂU HỆ THỐNG PHÂN TÁN SỬ DỤNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGOD Sinh viên thực hiện: LÊ TRÍ... dụng: Hệ thống tính tốn phân cụm Hệ thống tính tốn lưới Hê thống xử lý giao dịch Hệ thống tính tốn khắp nơi Hệ thống chăm sóc sức khỏe điện tử Hệ thống mạng cảm ứng Hệ thống tính tốn phân cụm hệ. .. phân trang, phân phối luồng liệu media (phim, ảnh, nhạc ) Cơ sở liệu quan hệ thiết kế cho mơ hình liệu nhỏ thường xun đọc viết Social Network Services lại có lượng liệu cực lớn cập nhật liên tục

Ngày đăng: 14/06/2020, 21:17

TỪ KHÓA LIÊN QUAN

w