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

2023-08-2514:54:08数据库教程Comments1,276 views字数 3365阅读模式
MongoDB 基础操作方法及每日备份
MongoDB 是一种非关系型数据库管理系统,它具有灵活的数据模型、强大的查询语言和高性能的数据读写能力,采用 BSON(Binary JSON)格式存储数据。
它使用灵活的文档模型代替传统的表格模型,可以方便地存储和查询半结构化的数据。
MongoDB 的设计目标是轻松扩展和高性能,适用于需要处理大量数据和高并发请求的场景。
01
软件安装
配置 yum 源文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html
vim /etc/yum.repos.d/mongodb-org-4.0.repo

添加文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

[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

安装文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

yum install -y mongodb-org
02
启停操作
启动服务(常规参数,不开启权限认证)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html
mongod --dbpath=/path --logpath=/path --logappend --port=27017 --fork

启动服务(开启权限认证,开启所有 IP)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

mongod --auth --bind_ip_all
03
日常操作
进入命令行(shell)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html
mango

进入命令行(使用用户名/密码)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

mongo admin -u username -p password

登录用户(需先进入管理库 admin)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

use admindb.auth(‘username’, ‘password’)

查看所有数据库文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

show dbs

进入数据库文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

use dbname

查看数据集合文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

show collections

显示命令帮助文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

db.help()
04
参数配置
编辑配置文件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html
vi /etc/mongod.conf

开启安全认证文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

security:  authorization: enabled
05
数据操作
删除当前使用的数据库文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html
db.dropDatabase()
06
用户操作
查看所有用户文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html
show users

创建用户文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

db.createUser({  user: 'username',  pwd: 'password',  roles:[{    role:'readWrite',    db:'dbname'  }]})

权限划分(role)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

    • read:读取
    • readWrite:读取和写入
    • dbAdmin:数据库(数据)管理员
    • dbOwner:数据库所有者
    • userAdmin:数据库(用户)管理员
    • readAnyDatabase:所有数据库读取
    • readWriteAnyDatabase:所有数据库读取和写入
    • dbAdminAnyDatabase:所有数据库(数据)管理员
    • userAdminAnyDatabase:所有数据库(用户)管理员
    • clusterAdmin:集群管理员
    • clusterManager
    • clusterMonitor
    • hostManager
    • backup:备份
    • restore:恢复
    • root:超级用户

修改密码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

db.changeUserPassword('username''password')

修改用户信息文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

db.updateUser('username', {  pwd: 'password'})

删除用户文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

db.dropUser('username')
07
每日备份
1.创建备份和恢复用户
    • 先进入 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.创建每日备份脚本文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html

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 &
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/54763.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/54763.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定