So với các hệ quản trị cơ sở dữ liệu quan hệ truyền thống, MongoDB mang đến một cách tiếp cận khác biệt với dữ liệu. Để tận dụng tối đa những ưu điểm của MongoDB, việc cài đặt và cấu hình đúng cách là rất quan trọng. Bài viết này sẽ hướng dẫn bạn cách cài đặt MongoDB trên CentOS chi tiết.
Một số tính năng nổi bật của MongoDB
MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở, được thiết kế để lưu trữ dữ liệu dưới dạng tài liệu (document) với cấu trúc JSON linh hoạt. Khác với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) như MySQL hay PostgreSQL, MongoDB không yêu cầu cấu trúc dữ liệu cố định (schema-less), giúp việc mở rộng và thay đổi cấu trúc dữ liệu dễ dàng hơn.
Được phát triển bởi MongoDB Inc., MongoDB hiện đang là một trong những hệ quản trị cơ sở dữ liệu NoSQL phổ biến nhất, đặc biệt trong các ứng dụng yêu cầu xử lý dữ liệu lớn, phức tạp và có tính linh hoạt cao.
Dưới đây là một số tính năng nổi bật của MongoDB:
Lưu trữ dưới dạng tài liệu
MongoDB sử dụng mô hình lưu trữ dữ liệu dưới dạng tài liệu JSON (hoặc BSON – Binary JSON). Mỗi tài liệu tương ứng với một bản ghi trong cơ sở dữ liệu và có thể chứa các cặp khóa-giá trị đa dạng. Điều này giúp việc lưu trữ và truy vấn dữ liệu trở nên linh hoạt, cho phép lưu trữ các cấu trúc dữ liệu phức tạp mà không cần phải chia nhỏ thành nhiều bảng như trong RDBMS.
Khả năng mở rộng theo chiều ngang
MongoDB hỗ trợ tính năng sharding, cho phép chia nhỏ cơ sở dữ liệu thành nhiều phần nhỏ hơn (shard) và phân phối chúng trên nhiều máy chủ khác nhau. Điều này giúp tăng khả năng mở rộng của hệ thống mà không ảnh hưởng đến hiệu suất xử lý.
Không yêu cầu schema cố định
Với MongoDB, mỗi tài liệu trong cùng một collection (tương đương với một bảng trong RDBMS) có thể có cấu trúc khác nhau, không cần tuân theo một schema cố định. Điều này giúp dễ dàng thay đổi cấu trúc dữ liệu khi yêu cầu ứng dụng thay đổi, mà không cần thực hiện các thao tác phức tạp như trong các hệ quản trị cơ sở dữ liệu quan hệ.
Tính năng sao lưu và phục hồi dữ liệu
MongoDB cung cấp các công cụ tích hợp như mongodump và mongorestore, giúp sao lưu và phục hồi dữ liệu một cách dễ dàng. Bên cạnh đó, MongoDB cũng hỗ trợ khả năng backup trong thời gian thực bằng cách sử dụng replication.
Chỉ mục mạnh mẽ
MongoDB hỗ trợ nhiều loại chỉ mục khác nhau, bao gồm chỉ mục đơn trường (single field), chỉ mục nhiều trường (compound index), chỉ mục văn bản (text index), chỉ mục không gian (geospatial index) và nhiều loại khác. Điều này giúp tối ưu hóa hiệu suất truy vấn, đảm bảo tốc độ truy xuất dữ liệu nhanh chóng.
Aggregation Framework
Đây là một công cụ mạnh mẽ cho phép thực hiện các phép toán tổng hợp, xử lý và chuyển đổi dữ liệu ngay trong MongoDB. Aggregation Framework cung cấp khả năng xử lý dữ liệu theo pipeline, tương tự như các câu lệnh GROUP BY trong SQL nhưng linh hoạt và mạnh mẽ hơn.
Hỗ trợ sao chép và khả dụng cao
MongoDB hỗ trợ thiết lập replica set, trong đó có một máy chủ chính (primary) và nhiều máy chủ phụ (secondary) để đảm bảo tính khả dụng cao của dữ liệu. Nếu máy chủ chính gặp sự cố, một trong các máy chủ phụ sẽ tự động trở thành máy chủ chính, đảm bảo dịch vụ không bị gián đoạn.
Một số lợi ích khác khi sử dụng MongoDB
Hiệu suất cao cho các ứng dụng đòi hỏi tốc độ
MongoDB được thiết kế để tối ưu hóa hiệu suất, đặc biệt trong các ứng dụng yêu cầu tốc độ xử lý cao. Nhờ vào mô hình lưu trữ tài liệu và hỗ trợ chỉ mục mạnh mẽ, MongoDB có thể truy vấn và xử lý dữ liệu nhanh chóng. Ngoài ra, MongoDB còn cho phép thực hiện các thao tác ghi và đọc đồng thời trên nhiều máy chủ, giúp tăng hiệu suất tổng thể của hệ thống.
Khả năng xử lý và phân tích dữ liệu phức tạp
Với Aggregation Framework, MongoDB cung cấp các công cụ mạnh mẽ để xử lý và phân tích dữ liệu phức tạp ngay trong cơ sở dữ liệu. khả năng phân tích dữ liệu của MongoDB là một lợi thế lớn, giúp các doanh nghiệp có thể khai thác tối đa giá trị từ dữ liệu.
Hỗ trợ cho các ứng dụng phân tán và đa vùng
MongoDB dễ dàng triển khai trên các môi trường phân tán và đa vùng, nhờ vào tính năng replication và sharding. Các doanh nghiệp có thể triển khai MongoDB trên nhiều trung tâm dữ liệu và vùng địa lý khác nhau, đảm bảo tính khả dụng cao và giảm độ trễ trong các ứng dụng toàn cầu.
Cộng đồng và tài liệu hỗ trợ phong phú
MongoDB có một cộng đồng người dùng và nhà phát triển lớn, cung cấp rất nhiều tài liệu, hướng dẫn và công cụ hỗ trợ. Điều này giúp các nhà phát triển dễ dàng học hỏi, triển khai và tối ưu hóa hệ thống MongoDB của mình. Ngoài ra, MongoDB Inc. còn cung cấp các dịch vụ hỗ trợ chuyên nghiệp và nền tảng MongoDB Atlas, giúp việc quản lý và vận hành MongoDB trở nên đơn giản hơn.
Hỗ trợ đa ngôn ngữ lập trình
MongoDB có các thư viện và driver hỗ trợ cho nhiều ngôn ngữ lập trình khác nhau, từ Java, Python, Node.js, đến C#, PHP và nhiều ngôn ngữ khác. Điều này giúp MongoDB dễ dàng tích hợp vào các hệ thống hiện có, bất kể ngôn ngữ lập trình được sử dụng.
MongoDB được ứng dụng để làm gì?
Lưu trữ dữ liệu phi cấu trúc
MongoDB rất thích hợp cho việc lưu trữ các loại dữ liệu phi cấu trúc như dữ liệu từ các mạng xã hội, cảm biến IoT, logs và các ứng dụng web động. Hệ quản trị cơ sở dữ liệu này cho phép lưu trữ dữ liệu dạng JSON linh hoạt mà không cần tuân theo một cấu trúc cứng nhắc nào.
Phát triển ứng dụng nhanh
MongoDB hỗ trợ nhiều ngôn ngữ lập trình phổ biến như Java, Python, Node.js, C++, C#, PHP, Ruby. Điều này giúp cho việc phát triển ứng dụng trở nên dễ dàng và nhanh chóng hơn, đặc biệt là với các ứng dụng yêu cầu lưu trữ dữ liệu dạng JSON.
Caching
MongoDB có thể được sử dụng như một lớp cache để tăng tốc độ truy xuất dữ liệu cho các ứng dụng. Dữ liệu thường xuyên được truy cập có thể được lưu trữ trong MongoDB để giảm tải cho các hệ thống lưu trữ chính.
Phân tích dữ liệu thời gian thực
MongoDB hỗ trợ các truy vấn phức tạp và các tính năng phân tích dữ liệu thời gian thực. Điều này làm cho nó trở thành một lựa chọn tuyệt vời cho các ứng dụng yêu cầu phân tích dữ liệu thời gian thực như theo dõi hoạt động của người dùng, phân tích log và phân tích cảm biến.
Lưu trữ dữ liệu địa lý
MongoDB có thể lưu trữ và truy vấn dữ liệu địa lý như vị trí, khoảng cách và các không gian địa lý khác. Điều này rất hữu ích cho các ứng dụng như bản đồ, giao thông và các ứng dụng dựa trên vị trí.
Hướng dẫn cách cài đặt MongoDB trên Centos
Trước tiên, bạn cần đăng nhập và thực hiện với người dùng root hoặc quyền sudo. Sau đó, thực hiện các bước dưới đây để cài đặt MongoDB trên Centos:
Bước 1: Thêm MongoDB Repository
Các gói MongoDB không tồn tại trong kho mặc định, nhưng MongoDB có duy trì 1 kho lưu trữ chuyên dụng. Thêm nội dung sau vào tệp cấu hình kho lưu trữ yum mongodb.repo theo phiên bản MongoDB và kiến trúc hệ thống theo yêu cầu của bạn. Đối với bài viết này, TinoHost sử dụng kho lưu trữ MongoDB 4.4
Tiến hành tạo file: sudo vi /etc/yum.repos.d/mongodb-org.repo và khai báo nội dung như sau:
cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.4.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF
Kiểm tra lại kho lưu trữ xem đã tồn tại hay chưa:
yum repolist
Output
...
repo id repo name
base/7/x86_64 CentOS-7 - Base
extras/7/x86_64 CentOS-7 - Extras
mongodb-org-4.2/7 MongoDB Repository
updates/7/x86_64 CentOS - Updates
...
Ta thấy kho lưu trữ MongoDB đã tồn tại trong tiện ích yum nên sẽ tiến hành cài đặt.
Bước 2: Cài đặt MongoDB
Sử dụng yum để tự động cài đặt gói mongodb-org:
yum install -y mongodb-org
Khởi động dịch vụ mongodb:
systemctl daemon-reload
systemctl enable mongod.service
systemctl start mongod.service
Kiểm tra lại trạng thái mongodb:
systemctl status mongod
Bước 3: Kiểm tra lại phiên bản và vị trí file log
Kiểm tra phiên bản Mongodb:
mongod --version
Kiểm tra vị trí file log:
Để xem các trạng thái cũng như các lỗi xảy ra đối với MongoDB, bạn cần phải đọc file log. File log của MongoDB có vị trí tại /var/log/mongodb/mongod.log
.
Sử dụng lệnh tail để xem nội dung mới nhất của file:
tail /var/log/mongodb/mongod.log
Tại đây sẽ lưu lại lịch sử những trạng thái hoặc các lỗi xảy ra, cũng bao gồm những lần connect tới cơ sở dữ liệu.
Bước 4: Truy cập và thao tác với cơ sở dữ liệu
Truy cập cơ sở dữ liệu
Sau khi đã chắc chắn mongodb đã hoạt động, ta truy cập vào máy chủ cơ sở dữ liệu bằng MongoDB Shell:
mongo
Các thao tác cơ bản với cơ sở dữ liệu
Nhập db để hiển thị cơ sở dữ liệu hiện tại của bạn, hành động sẽ trả về kết quả là test, đó là cơ sở dữ liệu mặc định:
db
Để chuyển sang cơ sở dữ liệu khác, thực hiện câu lệnh sau :
db [example]
Trong đó, example là tên của cơ sở dữ liệu muốn chuyển đến.
Sử dụng use Database_Name để tạo cơ sở dữ liệu. Lệnh sẽ tạo cơ sở dữ liệu nếu nó không tồn tại, nếu cơ sở dữ liệu có tồn tại nó sẽ trả về cơ sở dữ liệu hiện có.
use Database_Name
Trong đó, Database_Name là tên của cơ sở dữ liệu muốn chọn hoặc tên cơ sở dữ liệu muốn tạo.
Để xem các danh sách cơ sở dữ liệu, bạn thực hiệnlệnh show dbs.
> show dbs
Nếu cơ sở dữ liệu đã tạo của bạn không có trong danh sách, bạn cần chèn ít nhất 1 tài liệu vào đó để có thể hiển thị cơ sở dữ liệu
> use mydb
switched to db mydb
> db.movie.insert({"name":"tutorials point"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mydb 0.000GB
test 0.000GB
Để xóa 1 cơ sở dữ liệu trong MongoDB sử dụng lệnh sau:
db.dropDatabase()
Kiểm tra phiên bản và sự hỗ trợ:
db.version()
Để nhận được sự hỗ trợ về 1 số lệnh căn bản:
help
Để nhận được sự trợ giúp về các phương thức trong MongoDB:
db.help()
Cuối cùng, thoát khỏi shell bằng lệnh exit;
> exit
bye
Kết luận
Như vậy, chúng ta đã hoàn thành việc cài đặt MongoDB trên hệ thống CentOS. Với những kiến thức vừa được trang bị, bạn đã sẵn sàng để bắt đầu xây dựng các ứng dụng sử dụng cơ sở dữ liệu NoSQL mạnh mẽ này. Chúc bạn thành công!
Những câu hỏi thường gặp
Làm thế nào để kiểm tra trạng thái dịch vụ MongoDB?
Bạn có thể kiểm tra trạng thái của dịch vụ MongoDB bằng lệnh:
sudo systemctl status mongod
Làm thế nào để cấu hình MongoDB cho phép kết nối từ xa trên CentOS?
Để cho phép kết nối từ xa, bạn cần chỉnh sửa tệp cấu hình mongod.conf (thường nằm trong /etc/mongod.conf). Tìm và sửa dòng bindIp để bao gồm địa chỉ IP của bạn hoặc thay đổi thành 0.0.0.0 để cho phép tất cả các địa chỉ IP kết nối:
bindIp: 0.0.0.0
Sau đó, khởi động lại dịch vụ MongoDB:
sudo systemctl restart mongod
Làm thế nào để gỡ cài đặt MongoDB khỏi CentOS?
Bạn có thể gỡ cài đặt MongoDB bằng cách sử dụng lệnh sau:
sudo yum remove mongodb-org
Để xóa hoàn toàn dữ liệu và tệp cấu hình, bạn cần xóa thư mục /var/log/mongodb và /var/lib/mongo:
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo
MongoDB có cần cài đặt thêm phần mềm phụ thuộc nào khác trên CentOS không?
Trong hầu hết các trường hợp, tất cả các phần mềm phụ thuộc cần thiết sẽ được cài đặt tự động khi bạn cài đặt MongoDB thông qua yum. Tuy nhiên, bạn nên đảm bảo rằng hệ thống của mình được cập nhật đầy đủ các gói trước khi cài đặt MongoDB.