MongoDB Windows环境备份和还原

一. MongoDB的安装

1.1 下载安装

官网下载链接 https://www.mongodb.com/try/download/community 这里我选择的是

5.0.17版本的msi文件。下载完后安装 。我的安装目录是 D:\Program Files\MongoDB\Server\5.0

PS:安装 "Install MongoDB Compass" 不勾选,否则可能要很长时间都一直在执行安装,MongoDB Compass是一个图形界面管理工具,这里不安装也是没有问题的,可以自己去下载一个图形界面管理工具,比如:Navicat或者Robo3T

2.2配置MongoDB

在安装目录bin文件夹下有个文件mongod.cfg,没有的话就新建一个。可以设置db存储文件夹,log存储文件夹,IP和端口等

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: D:\Program Files\MongoDB\Server\5.0\data
  journal:
    enabled: true
#  engine:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  D:\Program Files\MongoDB\Server\5.0\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

CMD以管理员角色运行,CD到bin文件夹,运行,这时创建完了服务。在Windows服务里有了MongoDB服务,先不启动这个服务:

mongod --config "D:\Program Files\MongoDB\Server\5.0\bin\mongod.cfg" --install --serviceName "MongoDB" --serviceDisplayName "MongoDB"

接下来创建管理员用户。不要关闭上面的CMD,再打开一个CMD,CD到bin目录下,运行:

mongo

然后运行

> use admin

运行创建管理员用户。mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。admin用户用于管理账号,不能进行关闭数据库等操作。

db.createUser({ user: "admin", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

运行创建root角色用户。角色:root。root角色用于关闭数据库

db.createUser({user: "root",pwd: "rootpassword", roles: [ { role: "root", db: "admin" } ]})

创建完admin管理员,创建一个超级管理员root。角色:root。root角色用于关闭数据库。

这时候可以启动服务了,启动服务前要关闭第一个CMD,要不然服务会启动失败,因为端口被占用了

二. MongoDB备份

较新的版本安装后bin文件夹里不会有备份和还原的程序,去官网下载工具程序 Download MongoDB Command Line Database Tools | MongoDB

 为方便使用,下载解压后的exe文件都放在bin文件夹里,这里用到的是mongodump.exe程序

mongodump -h 0.0.0.0 --port 27017 -u root -p rootpassword -o /opt/backup

这是备份所有数据库,h是host ip,port是端口,u是用户名,p是密码,o是备份文件的文件夹

三. MongoDB还原

还原用到的程序是mongorestore.exe。

mongorestore -h 0.0.0.0 --port 27017 --authenticationDatabase admin -u root -p rootpassword -d testdb --drop E:\mongodbBackup\backup\testdb

其中h是host ip,port是端口,u是用户名,p是密码,d是数据库名称,drop是备份数据库文件夹

PS:网上说是这么写 mongorestore -h 0.0.0.0 --port 27017 -u root -p rootpassword -d testdb --drop E:\mongodbBackup\backup\testdb ,我试了会报错  error connecting to host: could not connect to server: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.

需要加上--authenticationDatabase admin 才行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是 MongoDB 数据库备份还原的脚本示例: 备份脚本: ``` #!/bin/bash # MongoDB backup script # MongoDB credentials user="username" password="password" host="localhost" port="27017" db_name="database_name" # Other options backup_path="/path/to/backup/folder" date=$(date +"%d-%b-%Y") # Backup filename filename="$db_name-$date.tar.gz" # Backup command mongodump --host=$host --port=$port --username=$user --password=$password --db=$db_name --out=$backup_path/$db_name-$date # Compression command tar -zcvf $backup_path/$filename $backup_path/$db_name-$date # Remove uncompressed folder rm -rf $backup_path/$db_name-$date ``` 在备份脚本中,您需要将 `username`、`password`、`host`、`port` 和 `database_name` 替换为您的 MongoDB 访问凭据和数据库名称。`backup_path` 变量指定备份文件应该存储在哪个文件夹中,`date` 变量用于生成备份文件名。 在备份期间,`mongodump` 命令将备份文件存储在指定的文件夹中。然后,使用 `tar` 命令将文件夹压缩为 `.tar.gz` 文件。最后,删除原始文件夹。 还原脚本: ``` #!/bin/bash # MongoDB restore script # MongoDB credentials user="username" password="password" host="localhost" port="27017" db_name="database_name" # Other options backup_path="/path/to/backup/folder" filename="$db_name-$date.tar.gz" # Restore command tar -zxvf $backup_path/$filename -C $backup_path mongorestore --host=$host --port=$port --username=$user --password=$password --db=$db_name $backup_path/$db_name-$date/$db_name ``` 在还原脚本中,您需要使用与备份脚本相同的 `username`、`password`、`host` 和 `database_name` 值。`backup_path` 变量应该与备份脚本中的相同。`filename` 变量包含备份文件名,它必须与备份脚本中的相同。 还原期间,`tar` 命令将备份文件解压缩到指定的文件夹中。然后使用 `mongorestore` 命令将备份数据还原数据库中。 请注意,这些脚本仅是示例,不适用于所有情况。在实际使用之前,请测试并根据需要进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值