1. 程式人生 > 資料庫 >MongoDB 3.6安裝配置

MongoDB 3.6安裝配置

文章目錄


一、安裝配置

1. mongodb安裝

官網參考: https://docs.mongodb.com/v3.6/tutorial/install-mongodb-on-red-hat/

//1.設定安裝源
vim /etc/yum.repos.d/mongodb-org-3.6.repo
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

//2.安裝
sudo yum install -y mongodb-org

//3.啟動
sudo systemctl start mongod

//4.開機啟動
sudo systemctl enable mongod

//5.關閉|重啟
sudo systemctl stop mongod
sudo systemctl restart mongod

//連線
mongo --host 127.0.0.1:27017

2. 配置 Disable Transparent Huge Pages (THP)

官網參考: https://docs.mongodb.com/v3.6/tutorial/transparent-huge-pages/

3. 配置檔案mongod.conf

外網訪問和密碼驗證,檔案路徑/etc/mongod.cnf
官網參考: https://docs.mongodb.com/v3.6/administration/configuration/
新增修改如下內容:

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.
#security:
security:
  authorization: enabled

4. 連線數設定

官方推薦設定:
https://docs.mongodb.com/v3.6/reference/ulimit/#recommended-ulimit-settings

-f (file size): unlimited
-t (cpu time): unlimited
-v (virtual memory): unlimited [1]
-l (locked-in-memory size): unlimited
-n (open files): 64000
-m (memory size): unlimited [1] [2]
-u (processes/threads): 64000

5. 資料定時備份

參考:https://www.jb51.net/article/135847.htm

//1.建立儲存目錄
cd /data
mkdir mongo
mkdir backup
mkdir backup/now
mkdir backup/list

//2.編輯指令碼
vim backup.sh

#!/bin/sh
OUT_DIR=/data/mongo/backup/now #臨時備份目錄
TAR_DIR=/data/mongo/backup/list #備份存放路徑
DATE=`date +%Y_%m_%d` #獲取當前系統時間
DB_USER=root #資料庫賬號
DB_PASS=123456 #資料庫密碼
DAYS=7 #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份
TAR_BAK="mongo_backup_$DATE.tar.gz" #最終儲存的資料庫備份檔名
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
mongodump -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE #備份全部資料庫
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #壓縮為.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete #刪除7天前的備份檔案

//3.新增指令碼執行許可權
chmod +x backup.sh

//4.新增定時任務
crontab -e
//每天凌晨2點30進行備份
30 2 * * * sh /data/mongo/backup.sh
crontab -l

二、命令操作

1. mongodb賬號密碼

參考文件:
https://www.jianshu.com/p/d21cdf929a2e
https://docs.mongodb.com/v3.6/tutorial/enable-authentication/

//1.建立管理員賬號
use admin
db.createUser(
  {
    user: "root",
    pwd: "123456",
    roles: [
       { role: "userAdminAnyDatabase", db: "admin" }
    ]
  }
)

//2.登入
db.auth('root','123456')
mongo -u root -p 123456

//3.授權
db.grantRolesToUser(
    "root",
    [
        { role: "root", db: "admin" },
    ]
)
db.grantRolesToUser("root",[{role:"readWrite",db:"common"}])

//4.讀寫許可權賬號
db.createUser(
  {
    user: "admin",
    pwd: "123456",
    roles: [
       { role: "readWriteAnyDatabase", db: "admin" }
    ]
  }
)
db.auth('admin','123456')

//5.檢視許可權賬號
db.createUser(
  {
    user: "read",
    pwd: "123456",
    roles: [
       { role: "readAnyDatabase", db: "admin" }
    ]
  }
)

//6.資料庫許可權賬號
use hall
db.createUser({user:"test",pwd:"123456",roles:[{role:"dbOwner",db:"test"}]})

2. 效能統計設定

參考文件:
https://docs.mongodb.com/v3.6/tutorial/manage-the-database-profiler/#database-profiling-view-status

db.setProfilingLevel(1)
//最近10條慢操作
db.system.profile.find().limit(10).sort( { ts : -1 } ).pretty()

3. 資料備份

參考文件:
https://docs.mongodb.com/v3.6/tutorial/backup-and-restore-tools/

cd /data/mongo/backup
mkdir 2020****
cd 2020****
mongodump --username root --password 123456
//顯示備份目錄大小
du -h --max-depth=1 /data/mongo/backup/    

//資料還原
mongorestore --host mongodb1.example.net --port 3017 --username user --password 'pass' /opt/backup/mongodump-2013-10-24

4. 常用命令

// 1.查詢 暱稱包含指定字串,顯示指定欄位
db.role.find({"nick":{$regex:"Helen"}},{nick:1,rid:1,gold:1})