[Học cơ sở dữ liệu MongoDB và nâng cao]MongoDB là một cơ sở dữ liệu mã nguồn mở và là cơ sở dữ liệu NoSQL hàng đầu, được hàng triệu người sử dụng. MongoDB được viết bằng C++
Ngoài ra, MongoDB là một nền tảng cơ sở dữ liệu đa nền tảng, hoạt động trên các khái niệm Bộ sưu tập và Tài liệu, nó cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng
Dưới đây là danh sách các bài hướng dẫn học MongoDB cơ bản và nâng cao
MỤC LỤC
Cơ bản về MongoDB
Hoạt động MongoDB nâng cao
Chuỗi bài hướng dẫn của chúng tôi dựa trên nguồn tài liệu của chúng tôi. hướng dẫn. com
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng. miễn phí. Tải ngay ứng dụng trên Android và iOS
Theo dõi fanpage của nhóm https. //www. Facebook. com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https. //www. Facebook. com/tuyen. vietjack to continue theo dõi hàng loạt bài viết mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile. mới nhất của chúng tôi
Bài hướng dẫn này sẽ cấu hình sao lưu tự động MongoDB lên Google Drive bằng cách sử dụng rclone trên hệ điều hành Ubuntu22. 04
Element request
Cấu hình sao lưu cơ sở dữ liệu mongoDB
Sao lưu MongoDB
Thực hiện tạo 1 thư mục để sao lưu cơ sở dữ liệu của mongoDB
mkdir -p /123host/databasemongo_backup/ cd /123host/databasemongo_backup/
Đối với mongoDB, chúng ta sẽ sử dụng cú pháp sau để tiến hành kết xuất cơ sở dữ liệu của mongoDB
in which. - ________số 8_______. Là cơ sở dữ liệu mà chúng ta cần tiến hành đổ
Tải tệp lên Google Drive
Đối với rclone để tiến hành tải dữ liệu lên, chúng ta sẽ sử dụng lệnh sau
rclone copy name_file_upload name_remote:
in which. - name_file_upload. Là tập tin cần tiến hành tải lên - name_remote. Là tên của điều khiển từ xa mà chúng ta đã tạo ở rclone
Tạo tập lệnh sao lưu cơ sở dữ liệu mongoDB và tải lên Google Drive
Như vậy, bây giờ chúng ta có thể thực hiện chạy 1 đoạn script sau để tiến hành kết xuất cơ sở dữ liệu và tải lên google drive của chúng ta. Để có thể kiểm tra tên của cơ sở dữ liệu, chúng ta sẽ sử dụng mongo shell và thực thi lệnh show dbs. Trong ví dụ này, chúng ta sẽ sao lưu Cơ sở dữ liệu có tên là admin
Thực hiện tạo 1 tệp có tên backup.sh và sử dụng đoạn mã sau
#!/bin/bash # Get current time time="$(date +'%Y_%m_%d')" # Move to database folder cd /123host/databasemongo_backup/ # Dump database mongodump -d my_db_name -o $time # Zip folder zip -r $time.zip $time # remove dump folder rm -rf $time # Push to rclone rclone copy $time.zip name_remote: # remove dump file rm -rf $time.zip
Lưu ý. my_db_name và name_remote cần tiến hành thay đổi tên cơ sở dữ liệu và tên điều khiển từ xa của rclone copy name_file_upload name_remote: 2 để phù hợp với máy chủ của bạn
Nếu như máy chủ của chúng ta chưa có rclone copy name_file_upload name_remote: 3 thì tiến trình sử dụng lệnh sau để thực hiện cài đặt
Để tập lệnh trên tập lệnh có thể thực thi cần phân quyền rclone copy name_file_upload name_remote: 4 hay còn gọi là phân quyền thực thi như sau
Cấu hình cronjob
Trong trường hợp chúng ta cần sao lưu hệ thống tự động hàng ngày, hay hàng giờ chúng ta sẽ sử dụng cronjob để cấu hình sao lưu tự động. Nếu máy chủ của chúng ta chưa có rclone copy name_file_upload name_remote: 5 thì hãy thực hiện cài đặt như sau
Bây giờ cài đặt cronjob để thực thi
Đoạn cron sau sẽ thực hiện sao lưu vào lúc 0h sáng mỗi ngày
/tmp/crontab. AoCors/crontab
0 0 * * * /root/backup.sh
Thêm dòng lệnh đó vào tệp cuối cùng và lưu lại là xong
Lời kết
Như vậy chúng ta đã có thể sao lưu cơ sở dữ liệu của mongoDB và cấu hình tải tệp sao lưu lên Google Drive chúc các bạn thành công trong quá trình thao tác
MongoDB là cơ sở dữ liệu hướng tài liệu có mã nguồn mở và miễn phí. Nó được phân loại là cơ sở dữ liệu NoSQL bởi vì nó không dựa trên cấu trúc cơ sở dữ liệu quan hệ dựa trên bảng truyền thống. Thay vào đó, nó sử dụng các tài liệu giống JSON với các lược đồ động. Không giống như các cơ sở dữ liệu quan hệ, MongoDB không yêu cầu lược đồ được xác định trước khi bạn thêm dữ liệu vào cơ sở dữ liệu. Bạn có thể thay đổi lược đồ bất kỳ lúc nào theo yêu cầu mà không phải thiết lập cơ sở dữ liệu mới với lược đồ cập nhật
Bài viết hôm nay, Bizfly Cloud sẽ hướng dẫn bạn cài đặt MongoDB Community Edition trên máy chủ CentOS 7.
Điều kiện tiên quyết
Trước khi làm theo hướng dẫn này, hãy đảm bảo rằng bạn là người dùng thông thường, không root với quyền đặc biệt sudo
Bước 1. Thêm Kho lưu trữ MongoDB
Mongodb-org package don't tồn tại trong kho lưu trữ mặc định cho CentOS. Tuy nhiên, MongoDB duy trì một kho lưu trữ chuyên dụng. Vui lòng thêm nó vào máy chủ
Với vi editor, hãy tạo một tệp. repo cho yum, tiện ích quản lý gói cho CentOS
$ sudo vi /etc/yum. repo. d/mongodb-org. repo
Sau đó, hãy truy cập phần của tài liệu MongoDB và thêm thông tin kho lưu trữ cho bản phát hành ổn định mới nhất vào tệp
/etc/yum. repo. d/mongodb-org. repo
[mongodb-org-3. 4]
name=Kho lưu trữ MongoDB
baseurl=https. //repo. mongodb. org/yum/redhat/$releasever/mongodb
tổ chức/3. 4/x86_64/
gpgcheck=1
đã bật = 1
gpgkey=https. //www. mongodb. org/tĩnh/pgp/máy chủ-3. 4. Tăng dần
Save and close file
Trước khi tiếp tục, chúng ta phải xác nhận rằng kho lưu trữ MongoDB tồn tại bên trong tiện ích yum. Repolist command display list of archives đã được kích hoạt
$ yum repolist
đầu ra
. . id repo tên repo
cơ sở/7/x86_64 CentOS-7 - Cơ sở
tính năng bổ sung/7/x86_64 CentOS-7 - Tính năng bổ sung
mongodb-org-3. 2/7/x86_64 Kho lưu trữ MongoDB
cập nhật/7/x86_64 CentOS-7 - Cập nhật
.
Với Kho lưu trữ MongoDB tại chỗ, hãy tiến hành cài đặt
Bước 2. Cài đặt MongoDB
Chúng ta có thể cài đặt gói mongodb-org từ kho lưu trữ của bên thứ ba bằng cách sử dụng tiện ích yum
$ sudo yum cài đặt mongodb-org
Có hai lời nhắc nhở thế này được không [y/N]. Lời đầu tiên cho phép cài đặt các gói MongoDB và lời nhắc thứ hai là nhập khóa GPG. Nhà xuất bản của MongoDB ký phần mềm của họ và yum sử dụng khóa để xác nhận tính toàn vẹn của các gói đã tải xuống. Tại mỗi lời nhắc, hãy nhập Y và sau đó nhấn phím ENTER
Tiếp theo, khởi động dịch vụ MongoDB với tiện ích systemctl
$ sudo systemctl bắt đầu mongod
Mặc dù chúng tôi sẽ không sử dụng chúng trong hướng dẫn này, nhưng bạn cũng có thể thay đổi trạng thái của dịch vụ MongoDB bằng lệnh tải lại và dừng
Lệnh tải lại yêu cầu quá trình đọc tệp cấu hình mongod, /etc/mongod. conf và áp dụng bất kỳ thay đổi nào mà không yêu cầu khởi động lại
$ sudo systemctl tải lại mongod
Lệnh dừng tạm dừng tất cả quá trình chạy mongod
$ sudo systemctl dừng mongod
Systemctl tiện ích không cung cấp kết quả sau khi thực hiện lệnh bắt đầu, nhưng chúng ta có thể kiểm tra xem các dịch vụ đã bắt đầu bằng cách xem phần cuối của tệp tin mongod. đăng nhập với đuôi lệnh
$ đuôi sudo /var/log/mongodb/mongod. đăng nhập
đầu ra
. .
[initandlisten] đang chờ kết nối trên cổng 27017
Kết quả "waiting for a connection" xác nhận rằng MongoDB đã khởi động thành công và chúng ta có thể truy cập vào máy chủ cơ sở dữ liệu với MongoDB Shell
$ mongo
Lưu ý
Khi bạn khởi chạy MongoDB Shell, bạn có thể thấy một cảnh báo như sau
** CẢNH BÁO. giới hạn mềm quá thấp. rlimits được đặt thành 4096 quy trình, 64000 tệp. Số lượng quy trình phải ít nhất là 32000. 0. gấp 5 lần số lượng tệp
MongoDB là một ứng dụng luồng. Nó có thể khởi động các bổ sung tiến trình để xử lý khối lượng công việc. Cảnh báo nói rằng. MongoDB sẽ trở nên hiệu quả nhất khi số lượng quá trình mà nó được ủy quyền để quay lên nên bằng một nửa số lượng tệp mà nó có thể mở ở bất kỳ thời điểm nào. Để giải quyết cảnh báo này, hãy thay đổi quy trình giá trị rlimit mềm cho mongod bằng cách chỉnh sửa tệp 20-nproc đã sửa. conf
$ sudo vi /etc/security/limits. d/20-nproc. conf
Add lines after to last file
/etc/an ninh/giới hạn. d/20-nproc. conf
.
mongod mềm nproc 32000
Để có giới hạn mới cho MongoDB, hãy khởi động lại nó bằng tiện ích systemctl
$ sudo systemctl khởi động lại mongod
Sau đó, khi bạn kết nối với MongoDB Shell, cảnh báo sẽ chấm dứt
Để tìm hiểu cách tương tác với MongoDB từ shell, bạn có thể xem lại đầu ra của phương thức db. help() cung cấp một danh sách các phương thức cho đối tượng db
> db. Cứu giúp()
đầu ra
phương pháp cơ sở dữ liệu.
db. adminCommand(nameOrDocument) - chuyển sang db 'admin' và chạy lệnh [ chỉ gọi db. runCommand(. ) ]
db. xác thực (tên người dùng, mật khẩu)
db. cloneDatabase (từ máy chủ)
db. commandHelp(name) trả về trợ giúp cho lệnh
db. copyDatabase (từdb, todb, fromhost)
db. createCollection(tên, {size. . , giới hạn. . , tối đa. . } ) db. người dùng tạo (tài liệu người dùng)
db. currentOp() hiển thị các hoạt động hiện đang thực thi trong db
db. dropDatabase()
.
To back too mongod run in the nền, but exit shell by exit command
> thoát
đầu ra
Từ biệt
Bước 3. Xác minh khởi động
Bởi vì một ứng dụng dựa trên cơ sở dữ liệu không thể hoạt động mà không có cơ sở dữ liệu, chúng ta phải đảm bảo rằng daemon MongoDB, mongod, sẽ khởi động với hệ thống
Sử dụng tiện ích systemctl để kiểm tra trạng thái khởi động của nó
$ systemctl được kích hoạt mongod;
Một đầu ra số 0 xác nhận và daemon được kích hoạt là điều chúng ta cần, tuy nhiên, việc xác nhận daemon bị vô hiệu hóa sẽ không bắt đầu
đầu ra
.
kích hoạt
0
Trong trường hợp của daemon bị vô hiệu hóa, hãy sử dụng tiện ích systemctl để kích hoạt nó
$ sudo systemctl bật mongod
Bây giờ chúng ta có một phiên bản đang chạy của MongoDB sẽ tự động bắt đầu sau khi khởi động lại hệ thống
Bước 4. Nhập một tập dữ liệu mẫu (tùy chọn)
Không giống với các máy chủ cơ sở dữ liệu khác, MongoDB không đi kèm với dữ liệu trong cơ sở dữ liệu thử nghiệm. Vì chúng tôi không muốn thử nghiệm với phần mềm mới bằng cách sử dụng dữ liệu sản xuất, nên chúng tôi sẽ tải xuống tệp dữ liệu mẫu từ Bộ dữ liệu ví dụ nhập khẩu (https. // tài liệu. mongodb. com/getting-started/shell/import-data/) của tài liệu "Bắt đầu với MongoDB". Tài liệu JSON chứa một tập hợp các nhà hàng mà chúng tôi sẽ sử dụng để thực hiện các hành động tương tác với MongoDB và tránh gây hại cho các dữ liệu nhạy cảm
Bắt đầu bằng cách chuyển vào thư mục có thể ghi
$ cd /tmp
Sử dụng lệnh curl và liên kết từ MongoDB để tải xuống tệp JSON
$ curl -LO https. // thô. githubusercontent. com/mongodb/docs-assets/primer-dataset/primer-dataset. json
Lệnh mongoimport sẽ chèn dữ liệu vào cơ sở dữ liệu thử nghiệm. --db cờ xác định bất kỳ cơ sở dữ liệu nào sẽ sử dụng trong khi --collection cờ chỉ định vị trí thông tin sẽ được lưu trữ tại đâu trong cơ sở dữ liệu, và --file cờ sẽ cho biết bất kỳ tập tin thực thi nào
$ mongoimport --db test --collection nhà hàng --file /tmp/primer-dataset. json
Đầu ra xác nhận việc nhập dữ liệu từ tệp primer-dataset. json
đầu ra
kết nối với. máy chủ cục bộ
đã nhập 25359 tài liệu
Với tập dữ liệu mẫu tại chỗ, chúng tôi sẽ thực hiện một truy vấn đối với nó
Khởi chạy lại MongoDB Shell
$ mongo
Shell select test database theo mặc định, đó là nơi nhập dữ liệu
Truy vấn bộ sưu tập nhà hàng bằng phương thức find() để hiển thị danh sách tất cả các nhà hàng trong tập dữ liệu. Vì bộ sưu tập chứa hơn 25. 000 mục nhập, hãy sử dụng tùy chọn phương thức limit() để giảm đầu ra của truy vấn bằng một số định sẵn. Ngoài ra, phương thức pretty() làm cho thông tin dễ đọc hơn với các dòng mới và thụt lề
> db. nhà hàng. tìm thấy(). giới hạn( 1 ). đẹp()
Bạn có thể tiếp tục sử dụng tập dữ liệu mẫu để tự làm quen với MongoDB hoặc xóa nó bằng phương thức db. nhà hàng. làm rơi()