Code前端首页关于Code前端联系我们

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

terry 2年前 (2023-09-26) 阅读数 49 #后端开发
MongoDB 基础操作方法及每日备份MongoDB是一个非关系型数据库管理系统。它具有灵活的数据模型、强大的查询语言和高性能的数据读写能力,并以BSON(二进制JSON)格式存储。数据。 它采用灵活的文档模型代替传统的表模型,可以轻松存储和查询半结构化数据。 MongoDB 旨在轻松扩展和高性能,适用于需要处理大量数据和高并发请求的场景。 ?所有IP)
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 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 ]then        mkdir -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 ]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        fielse        echo -e "$db_backupdir/$dbbackdate\nBackup Fail!!! Please to check it." >> $backup_log        rm -rf $db_backupdir/$dbbackdatefiecho -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前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门