一: MongoDB数据备份
在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。
mongodump命令可以通过参数指定导出的数据量级转存的服务器。
1)语法:
mongodump命令脚本语法如下:
mongodump -h dbhost -d dbname -o dbdirectory
参数说明:
-h:MongoDB 所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,例如:test
-o:备份的数据存放位置,例如:c:datadump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
其他参数参考:
–db:-d 指定导出的数据库
–collection:指定导出的集合
–excludeCollection:指定不导出的集合
–host :-h 远程ip
–username:-u 开启身份验证后,用户的登录名
–password:-p 用户的密码
–out(指定输出目录):-o 如果不使用这个参数,mongodump将输出文件保存在当前工作目录中名为dump的目录中
–archive:导出归档文件,最后只会生成一个文件,注意: archive 与 out 不能一起用
–gzip:压缩归档的数据库文件,文件的后缀名为.gz
–authenticationDatabase <dbname> 指定创建User的数据库;在特定的数据库中创建User,该DB就是User的authentication database。
在连接mongo时,使用参数 –authenticationDatabase,会认证 -u 和 -p 参数指定的账户和密码。如果没有指定验证数据库,mongo使用连接字符串中指定的DB作为验证数据块。
2)示例:
备份本地数据库,账户root,密码123456,test数据库,指定到/dump目录
mongodump -h 127.0.0.1 --port 27017 -u=root -p=123456 -d test -o /dump
如果没有设置账户密码,或者端口都是默认的27017,则可以省略参数。如:
将在终端所在的目录下生成一个指定名称(test.gz)的数据库文件,并压缩
mongodump --archive=test.gz --gzip --db test
二: MongoDB数据还原
mongodb使用 mongorestore 命令来恢复备份的数据。
1)语法:
mongorestore命令脚本语法如下:
mongorestore -h <hostname><:port> -d dbname <path>
参数:
–host <:port>, -h <:port>:
MongoDB所在服务器地址,默认为: localhost:27017
–db , -d :
需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
–drop:
恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
<path>:
mongorestore 最后的一个参数,设置备份数据所在位置,例如:/home/mongod/backup/test/
你不能同时指定 <path> 和 –dir 选项,–dir也可以设置备份目录。
–dir:
指定备份的目录,你不能同时指定 <path> 和 –dir 选项。
–nsInclude :指定还原的集合,支持通配符(*)
–nsExclude:指定不还原的集合,支持通配符(*)
–nsFrom:修改集合名称,原来集合的名称,支持使用变量
–nsTo:修改集合名称,修改之后集合的名称,支持使用变量
2)示例:
恢复到10.0.0.152:27017,test数据库,恢复数据库备份位置/home/mongod/backup/test/
mongorestore -h 10.0.0.152:27017 -uroot -proot -d test --drop /home/mongod/backup/test/
三: 备份还原
基于docker的MongoDB数据备份还原
例子,此时有一个mongo容器
sudo docker ps
ubuntu@ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
645ae5ab17b8 mongo:latest "docker-entrypoint.s…" 2 hours ago Up 2 hours 27017/tcp mongo
方法一:
直接进入docker容器,一步一步还原。
sudo docker exec -it mongo(容器名称) /bin/bash
#进入容器
mongodump --archive=mongo.gz
#直接生成一个名字为mongo.gz的备份文件
exit
#退出容器
sudo docker cp mongo(容器名称):/mongo.gz /backup/
#将容器备份的数据复制到本地/backup/文件夹中
还原一样,步骤复制本地到容器中,进入容器中,还原复制过来的备份文件。
方法二:
一步到位备份:
将 mongo容器中所有数据,备份并按日期命名单个文件,备份至本地/var/backup_test文件夹。
sudo docker exec mongo(容器名称) sh -c 'mongodump --archive' > /var/backup_test/mongo_`date +%F`.gz
还原:
sudo docker exec -i mongo(容器名称) sh -c 'mongorestore --archive' < /var/backup_test/mongo_2023-04-28.gz
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容