MongoDB之数据备份与恢复的两种方式
文章目录
1. 数据备份
1. mongodump命令
mongodump命令用于将 MongoDB 中的数据转储到文件中,以备份数据。例如,可以使用以下命令备份整个数据库
mongodump --host <hostname> --port <port> --db <database> --out <backup_directory_path>
1. 备份所有数据库
# 命令:mongodump -u 用户名 -p 密码 -o 备份路径,如下:
mongodump -u admin -p admin123 -o c:\mongoBackup\allDb
2. 备份指定数据库
命令:
mongodump -h IP地址:端口 -d 数据库名 -u 用户名 –p 密码 -o 备份路径
或
mongodump -h IP地址 -port 端口 -d 数据库名 -u 用户名 –p 密码 -o 备份路径
# 举例
mongodump -h 192.168.31.251:27017 -d my_db -u test_user -p test_user -o c:\mongoBackup
#或
mongodump -h 192.168.31.251 -port:27017 -d my_db -u test_user -p test_user -o c:\mongoBackup
2. 文件系统快照
文件系统快照可以使用文件系统快照工具(如LVM快照)来创建 MongoDB 数据目录的快照,从而实现数据备份。
2.数据恢复
1. mongorestore命令
mongorestore命令用于将使用mongodump命令备份的数据恢复到 MongoDB 中。例如,可以使用以下命令将数据库恢复到 MongoDB 中
mongorestore --host <hostname> --port <port> --db <database> <path_to_backup>
- 恢复前先要使用use 命令切换到要导入的数据库
- 在切换后的数据库下新建用户,并设置角色及所属数据库
- 使用新建用户或admin用户导入
- 使用新建的用户连接数据库
【注意:先用admin用户导入,然后再创建普通用户并设置角色及指定所属数据库,最终新建用户是无法连接数据库的】
通过以上步骤虽然能导入数据库,但是在连接时会提示授权错误,暂时就用admin一个用户就行
切换至新导入的数据库
# 1. 如:需要往yuandb这个数据库中导入数据,则 use yuandb
新建用户
# 比如这里新建用户为 jinshengyuan db.createUser({ "user":"jinshengyuan", "pwd":"yuan", "roles":[ {role:"userAdmin",db:"yuandb"} ] }) db.createUser({ "user":"idm", "pwd":"idm", "roles":[ {role:"userAdmin",db:"tdm3q"} ] })
在DOS窗口下使用admin用户恢复数据
说明:
- 不管是新建用户还是admin数据库用户都必须加上
--authenticationDatabase admin -u (超级管理员用户名) -p (超级管理员密码)
,否则会提示下面信息
C:\>mongorestore -u jinshegnyuan -p yuan -d yuandb c:\mongoBackup\my_db 2020-07-23T00:45:21.634+0800 error connecting to host: could not connect to server: connection() : auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-256": (AuthenticationFailed) Authentication failed.
- 如果不指定 -d 属性,则默认导入所有数据库
最终恢复命令如下:
# 使用新建用户恢复demodb数据库 mongorestore -u jinshengyuan -p yuan -d yuandb c:\mongoBackup\my_db --authenticationDatabase admin -u admin -p admin123 # 或使用admin用户恢复数据到 yuandb 数据库中 mongorestore -u admin -p admin123 -d yuandb c:\mongoBackup\my_db --authenticationDatabase admin -u admin -p admin123 #【注意:备份的数据库文件路径(c:\mongoBackup\my_db)一定要指定到xxx.bson的根目录 】
- 不管是新建用户还是admin数据库用户都必须加上
使用新建用户连接数据库
# 连接方式一:在DOS窗口下执行下面命令 mongo localhost:27017/yuandb -u jinshengyuan -p 回车输入密码或直接在-p后输入密码 # 连接方式二:用mogon命令登录后切换到具体的数据库,然后db.auth('用户名','密码')进行登录,如下 mongo use yuandb db.auth('jinshengyuan','yuan')
2. 恢复文件系统快照
恢复文件系统快照:如果使用文件系统快照进行备份,可以通过恢复文件系统快照来还原 MongoDB 数据目录,从而实现数据恢复。
3. 总结
在备份和恢复过程中,注意以下几点:
- 确保备份数据的完整性和一致性。
- 定期进行备份操作,以确保数据的安全性。
恢复文件系统快照:如果使用文件系统快照进行备份,可以通过恢复文件系统快照来还原 MongoDB 数据目录,从而实现数据恢复。
本文含有隐藏内容,请 开通VIP 后查看