MongoDB基本操作方法及日常备份

mongod --auth --bind_ip_all
03日常操作进入命令行(shell)mango
进入命令行(使用用户名/密码)
mongo admin -u username -p password
登录用户(必须先进入管理库管理员)❙查看全部数据库
show dbs
进入数据库
use dbname
查看数据集合
show collections
显示命令帮助
db.help()
04参数配置 编辑配置文件 启用授权操作 删除当前使用的数据库 db.dropDatabase()
06用户操作 查看所有用户 show users
创建用户
db.createUser({
user: 'username',
pwd: 'password',
roles:[{
role:'readWrite',
db:'dbname'
}]
})
权限划分(角色)
- read:读取 读写 b 数据库(数据)管理员
- dbOwner:数据库所有者 userAdmin:数据库(用户)管理员
- readAnyDatabase:所有数据库读取器
- readWriteAnyData -database reader:全部b AdminAnyDatabase:所有数据库(数据)管理员
- userAdminAnyDatabase:所有数据库(用户)管理员
- clusterAdmin:集群管理员 集群管理器
- clusterMonitor
- hostManager❀备份:❀备份:
- root:超级用户
编辑密码
db.changeUserPassword('username', 'password')
编辑用户信息
db.updateUser('username', {
pwd: 'password'}
)
删除用户
db.dropUser('username')
07每日备份1 。创建备份和恢复用户- 先输入admin
use admin
- 备份用户
db.createUser({
user: 'backup',
pwd: 'password',
roles:[{
role:'backup',
db:'admin'
}]
})
- 恢复用户
db.createUser({
user: 'restore',
pwd: 'password',
roles:[{
role:'restore',
db:'admin'
}]
})
- 完全备份
mongodump -u backup -p password --authenticationDatabase admin -o /data/backup/mongodb/
- 完全恢复
mongorestore -u restore -p password /data/backup/mongodb/
2.创建每日备份脚本
vim /data/shell/monitor/mongodb_backup.sh
- 添加
#!/bin/bash
#auth=wujiang
#PRO Mongodb Full Backup
#Mongo Setting
dbhost="10.0.0.1" #服务器ip
user="backup"
userpwd='password'
#Backup Dir
db_bashdir="/data/backup/mongodb_bk"
dbdirdate=`date +"%Y.%m.%d"`
db_backupdir=$db_bashdir/$dbdirdate
if [ ! -d $db_backupdir ]
then
mkdir -p $db_backupdir
fi
#Backup Log
backup_log="$db_bashdir/mongodb_bk.log"
#Time
dbbackdate=`date +"%Y%m%d_%H%M%S"`
echo "########Start time: `date +"%Y-%m-%d_%H:%M:%S"`########" >> $backup_log
echo "Backup Starting ..." >> $backup_log
mongodump -h $dbhost -u $user -p $userpwd --authenticationDatabase admin -o $db_backupdir/$dbbackdate/
if [ $? -eq 0 ]
then
echo "备份到文件: $db_backupdir/$dbbackdate" >> $backup_log
echo "开始压缩文件..." >> $backup_log
cd $db_backupdir;/usr/bin/tar zcf $dbbackdate.tar.gz $dbbackdate
if [ $? -eq 0 ]
then
TAR=1
else
TAR=0
fi
Tar_filesize=`du -b $db_backupdir/$dbbackdate.tar.gz |awk '{print $1}'`
echo "Tar File Size: $Tar_filesize" >> $backup_log
if [ "$Tar_filesize" -ge 100 ] && [ $TAR -eq 1 ]
then
echo "Tar to File Success:$db_backupdir/$dbbackdate.tar.gz" >> $backup_log
rm -rf $db_backupdir/$dbbackdate
else
echo -e "Tar to File Failed:$db_backupdir/$dbbackdate.tar.gz !!! \n Please to check it." >> $backup_log
fi
else
echo -e "$db_backupdir/$dbbackdate\nBackup Fail!!! Please to check it." >> $backup_log
rm -rf $db_backupdir/$dbbackdate
fi
echo -e "########End time: `date +"%Y-%m-%d_%H:%M:%S"`########\n" >> $backup_log
echo -e "\n||||||################################################################################||||||\n" >> $backup_log
echo ""
echo "数据库已备份,路径为:$db_backupdir"
du -sh $db_backupdir/*
echo ""
- 添加计划任务
crontal -e
- 添加
#mongodb正式库
58 23 * * * /bin/sh /data/shell/monitor/mongodb_backup.sh >>/data/mongod/mongodb_backup.log 2>&1 &
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
上一篇:如何使用Redis实现分布式锁? 下一篇:IndexedDB完全指南
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。