MongoDB 基础操作方法及每日备份

vim /etc/yum.repos.d/mongodb-org-4.0.repo
添加
[mongodb-org-4.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
安装
yum install -y mongodb-org
mongod --dbpath=/path --logpath=/path --logappend --port=27017 --fork
启动服务(开启权限认证,开启所有 IP)
mongod --auth --bind_ip_all
mango
进入命令行(使用用户名/密码)
mongo admin -u username -p password
登录用户(需先进入管理库 admin)
use admindb.auth(‘username’, ‘password’)
查看所有数据库
show dbs
进入数据库
use dbname
查看数据集合
show collections
显示命令帮助
db.help()
vi /etc/mongod.conf
开启安全认证
security:authorization: enabled
db.dropDatabase()
show users
创建用户
db.createUser({user: 'username',pwd: 'password',roles:[{role:'readWrite',db:'dbname'}]})
权限划分(role)
-
- read:读取
- readWrite:读取和写入
- dbAdmin:数据库(数据)管理员
- dbOwner:数据库所有者
- userAdmin:数据库(用户)管理员
- readAnyDatabase:所有数据库读取
- readWriteAnyDatabase:所有数据库读取和写入
- dbAdminAnyDatabase:所有数据库(数据)管理员
- userAdminAnyDatabase:所有数据库(用户)管理员
- clusterAdmin:集群管理员
- clusterManager
- clusterMonitor
- hostManager
- backup:备份
- restore:恢复
- root:超级用户
修改密码
db.changeUserPassword('username', 'password')
修改用户信息
db.updateUser('username', {pwd: 'password'})
删除用户
db.dropUser('username')
-
- 先进入 admin
use admin
-
- backup 用户
db.createUser({user: 'backup',pwd: 'password',roles:[{role:'backup',db:'admin'}]})
-
- restore 用户
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
-
- 添加
#auth=wujiang#PRO Mongodb Full Backup#Mongo Settingdbhost="10.0.0.1" #服务器ipuser="backup"userpwd='password'#Backup Dirdb_bashdir="/data/backup/mongodb_bk"dbdirdate=`date +"%Y.%m.%d"`db_backupdir=$db_bashdir/$dbdirdateif [ ! -d $db_backupdir ]thenmkdir -p $db_backupdirfi#Backup Logbackup_log="$db_bashdir/mongodb_bk.log"#Timedbbackdate=`date +"%Y%m%d_%H%M%S"`echo "########Start time: `date +"%Y-%m-%d_%H:%M:%S"`########" >> $backup_logecho "Backup Starting ..." >> $backup_logmongodump -h $dbhost -u $user -p $userpwd --authenticationDatabase admin -o $db_backupdir/$dbbackdate/if [ $? -eq 0 ]thenecho "备份到文件: $db_backupdir/$dbbackdate" >> $backup_logecho "开始压缩文件..." >> $backup_logcd $db_backupdir;/usr/bin/tar zcf $dbbackdate.tar.gz $dbbackdateif [ $? -eq 0 ]thenTAR=1elseTAR=0fiTar_filesize=`du -b $db_backupdir/$dbbackdate.tar.gz |awk '{print $1}'`echo "Tar File Size: $Tar_filesize" >> $backup_logif [ "$Tar_filesize" -ge 100 ] && [ $TAR -eq 1 ]thenecho "Tar to File Success:$db_backupdir/$dbbackdate.tar.gz" >> $backup_logrm -rf $db_backupdir/$dbbackdateelseecho -e "Tar to File Failed:$db_backupdir/$dbbackdate.tar.gz !!! \n Please to check it." >> $backup_logfielseecho -e "$db_backupdir/$dbbackdate\nBackup Fail!!! Please to check it." >> $backup_logrm -rf $db_backupdir/$dbbackdatefiecho -e "########End time: `date +"%Y-%m-%d_%H:%M:%S"`########\n" >> $backup_logecho -e "\n||||||################################################################################||||||\n" >> $backup_logecho ""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 &
THE END

