MongoDB 3.6安裝配置
阿新 • • 發佈:2020-12-09
文章目錄
一、安裝配置
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})