MySQL数据迁移到MongoDB数据库中
- 前言
- 一、数据备份
- 二、数据恢复
前言
本环境是基于 Centos 7.8 系统构建mongodb-enterprise-4.2.8学习环境
具体构建,请参考 mongodb-enterprise-4.2.8 环境构建
一、数据备份
MongoDB数据备份
- 逻辑备份mongodump
- 可以用 mongodump 来做 MongoDB 的库或表级别的备份,下面举例说明 备份 my_mongodb 数据库.
实战案例
[root@localhost ~]# mongodump -d my_mongodb
2019-10-28T10:41:59.147+0800 writing my_mongodb.user to
2019-10-28T10:41:59.148+0800 done dumping my_mongodb.user (5 documents)
此时会在当前目录下创建一个 dump 目录,用于存放备份出来的文件
[root@localhost ~]# ll dump/my_mongodb/
总用量 8
-rw-r--r-- 1 root root 280 10月 28 10:41 user.bson
-rw-r--r-- 1 root root 87 10月 28 10:41 user.metadata.json
指定备份存放目录
[root@localhost ~]# mongodump -d my_mongodb -o my_mongodb_dump
2019-10-28T10:43:35.826+0800 writing my_mongodb.user to
2019-10-28T10:43:35.827+0800 done dumping my_mongodb.user (5 documents)
其他参数:
-h: MongoDB 所在服务器地址,例如,127.0.0.1。 当然也可以指定端口号:127.0.0.1:27017
--port:端口号。
-d: 需要备份的数据库实例,例如, test 。
-c: 需要备份的集合 。
-o: 备份数据的存放位置 。
-u: 用户名 。
-P: 密码。
--gzip: 压缩 。
--oplog: point in time 恢复用,只支持全库备份 。
--authenticationDatabase: 认证库 。
--dumpDbUsersAndRoles
dump 用户和角色 ,只有在单库备份时才需要这么做。
--archive=dbname.gz: 3.2 版本新增,不能和-o同时使用 。
归档备份为 l 个文件,但不能和-o 同时使用。
全库备份
mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-o /home/mongod/backup/full
备份test库
mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-d test -o /home/mongod/backup/
备份test库下的vast集合
mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-d test -c vast -o /home/mongod/backup/
压缩备份库
mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-d test -o /home/mongod/backup/ --gzip
压缩备份单表
mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-d test -c vast -o /home/mongod/backup/ --gzip
二、数据恢复
- mongorestore与mongoimport参数类似
实战案例
全库备份中恢复单库(基于之前的全库备份)
mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test --drop /home/mongod/backup/full/test/
恢复test库
mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test /home/mongod/backup/test/
恢复test库下的vast集合
mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test -c vast /home/mongod/backup/test/vast.bson
–drop参数实践恢复
# 恢复单库
mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test --drop /home/mongod/backup/test/
# 恢复单表
mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test -c vast --drop /home/mongod/backup/test/vast.bson