安装mongoDB
yum install libcurl openssl
#添加yum源
vim /etc/yum.repos.d/mongodb-org.repo
[mongodb-org]
name=MongoDB 4.4 Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/$basearch/
gpgcheck=0
enabled=1
#安装
yum install -y mongodb-org
#操作
systemctl start|enable|stop|status mongod.service#修改配置文件
vim /etc/mongod.conf
bindIp  0.0.0.0  #允许远程连接
备份恢复方法:1.图形化工具连接备份恢复(Navicat、DBeaver),导出导入简单,不适合大量数据2.使用命令行mongodump\mongorestore\mongoexport\mongoimport这里重点介绍命令行方式mongodump -h dbhost -d dbname -o dbdirectory-h:
MongoDB 所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:
需要备份的数据库实例,例如:test
-o:
备份的数据存放位置,例如:/data/dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。mongorestore -h <hostname><:port> -d dbname <path>--host <:port>, -h <:port>:
MongoDB所在服务器地址,默认为: localhost:27017
--db , -d :
需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
--drop:
恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
<path>:
mongorestore 最后的一个参数,设置备份数据所在位置,例如:c:\data\dump\test。
你不能同时指定 <path> 和 --dir 选项,--dir也可以设置备份目录。
--dir:
指定备份的目录
注意:
你不能同时指定 <path> 和 --dir 选项。如果开启了账户认证,需要传参
-u 用户
-p 密码
--authenticationDatabase 数据库实例mongoexport 命令参数说明:
-h,--host :代表远程连接的数据库地址,默认连接本地Mongo数据库;
--port:代表远程连接的数据库的端口,默认连接的远程端口27017;
-u,--username:代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
-p,--password:代表连接数据库的账号对应的密码;
-d,--db:代表连接的数据库;
-c,--collection:代表连接数据库中的集合;
-f, --fields:代表集合中的字段,可以根据设置选择导出的字段;
--type:代表导出输出的文件类型,包括csv和json文件;
-o, --out:代表导出的文件名;
-q, --query:代表查询条件;--skip:跳过指定数量的数据;
--limit:读取指定数量的数据记录;
--sort:对数据进行排序,可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列,如sort({KEY:1})。mongoimport命令参数说明:
h,--host :代表远程连接的数据库地址,默认连接本地Mongo数据库;
--port:代表远程连接的数据库的端口,默认连接的远程端口27017;
-u,--username:代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;
-p,--password:代表连接数据库的账号对应的密码;
-d,--db:代表连接的数据库;
-c,--collection:代表连接数据库中的集合;
-f, --fields:代表导入集合中的字段;
--type:代表导入的文件类型,包括csv和json,tsv文件,默认json格式;
--file:导入的文件名称
--headerline:导入csv文件时,指明第一行是列名,不需要导入;示例:mongoexport --port 27030 -u admin -p admin -d test -c bike -f bikeId,lat,lng,current_time,source --type=json -o bike.csv --query='{"source":"ofo"}' --limit=1mongoexport --port 27030 -u admin -p admin -d test -c bike -f bikeId,lat,lng,current_time,source --type=csv -o bike.csv --query='{"source":"ofo"}' --limit=1mongoimport --port 27030 -u admin -p admin -d test -c bike_bak  --type=json --file bike.json
区别:
mongoexport/mongoimport导入/导出的是JSON格式,而mongodump/mongorestore导入/导出的是BSON格式。
JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。
在一些mongodb版本之间,BSON格式可能会随版本不同而有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是一个可选项。跨版本的mongodump/mongorestore个人并不推荐,实在要做请先检查文档看两个版本是否兼容(大部分时候是的)。
JSON虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意备份方面比较:
1、mongoexport 可以指定集合中的字段,   mongodump最多到集合
2、mongoexport 可以带导出的过滤条件 -q, mongodump则不可以
3、mongoexport 可以导出json和csv格式,  mongodump导出的是bson可读性不如前者4、mongodump   的速度和压缩率都最好,每秒125M的数据,压缩率达28%
5、mongodump   更适合全库备份,mongoexport更适合单个集合备份恢复方面比较:
1、mongoimport  速度较快,但不保证数据完整导入 。
2、mongorestore 速度较慢,比mongoimport慢2.5倍左右,但是根据mongodump导出的数据,可以完整导入数据

针对不同版本之间的mongodb迁移提供以下脚本

环境说明:python3from pymongo import MongoClient# TODO 源mongo地址, 自行更改
FROM_ADDRESS = ("192.168.100.23", 27017)
# TODO 目的mongo地址, 自行更改
TO_ADDRESS = ("192.168.30.23", 27017)
#需要备份的数据库, 自行更改
DB_NAME = "test"def write(_id, data):to_conn = MongoClient(*TO_ADDRESS)to_db = to_conn[DB_NAME]tab = to_db[_id]tab.insert(data)to_conn.close()def main():from_conn = MongoClient(*FROM_ADDRESS)from_db = from_conn[DB_NAME]tables_list = from_db.list_collection_names()  # 数据库里面所有的表"""这里可以去掉不需要动的一些表"""tables_list.pop(tables_list.index("system.indexes"))  # 去掉了system.indexes这张表for table in tables_list:db_data = from_db[table].find()# _db[table].drop()  # 若源数据库的数据不再需要就解开注释"""这里可对数据进行操作, 批量修改, 排序等"""write(table, db_data)  # 写入数据库from_conn.close()if __name__ == '__main__':main()

或者使用mongosync

git clone https://github.com/jacketwoo/mongosyncorgit clone https://gitee.com/mirrors_Qihoo360/mongosync.gityum install -y sconsyum install -y boost boost-develyum install -y openssl-develcd mongosync/ && make示例:
mongosync --src_srv 10.6.13.140:27000 --src_user ucloudbackup --src_passwd xxx --src_auth_db admin --dst_srv 10.19.110.146:27000 --dst_user ucloudbackup --dst_passwd xxx --dst_auth_db admin --oplog --is_mongos --shard_user ucloudbackup --shard_passwd xxx(全量+增量)
shard_user和shard_passwd指的是每一个分片的登录账户和密码参考链接:
https://www.cnblogs.com/dh17/articles/14484367.html
https://www.cnblogs.com/cp-miao/p/8568010.html

MongoDB 备份和恢复——筑梦之路相关推荐

  1. Mongodb 物理备份和恢复 —— 筑梦之路

    物理备份是指备份 MongoDB 数据目录,包括所有的数据文件.日志文件和配置文件.这种备份方法可以保留 MongoDB 数据库的完整性和一致性,也可以加快备份和恢复的速度.以下是备份和恢复 Mong ...

  2. K8S中使用显卡GPU(N卡) —— 筑梦之路

    前些年做AI项目的时候经常用到显卡,大多数时候都是传统部署,对于资源的利用率并不高,而显卡也不便宜,K8S集群内调用显卡可以更加细致地进行显卡计算资源的分配,提高资源利用率. 之前记录和显卡相关的一些 ...

  3. 不关闭Selinux\Firewalld的情况下OpenSSH 9.0/9.1/9.2升级说明——筑梦之路

    前面写了一些文章,关于利用官方源码编译或者制作rpm包来升级openssh,修复安全漏洞 centos 7 制作openssh8.7/8.8/8.9/9.0 p1 rpm包升级--筑梦之路_筑梦之路的 ...

  4. 时间同步设置NTP和Chrony两种方式—— 筑梦之路

    之前写的:Chrony时间同步服务器的搭建--筑梦之路_筑梦之路的博客-CSDN博客_搭建chrony服务器 linux 下部署NTP服务器 时间同步_筑梦之路的博客-CSDN博客 操作系统:cent ...

  5. MongoDB备份及恢复

    MongoDB备份及恢复 一.备份恢复介绍 1.备份恢复工具介绍: (1)** mongoexport/mongoimport (2)***** mongodump/mongorestore 2.备份 ...

  6. Nginx SSL漏洞(SWEET32)扫描和修复 —— 筑梦之路

    1.扫描nmap -sV --script ssl-enum-ciphers -p 443 www.baidu.comnmap --script="ssl-enum-ciphers" ...

  7. CentOS 8 安装freePBX 软交换电话软件——筑梦之路

    简单介绍: Freepbx是一个集成了Asterisk的工具,提供GUI (graphical user interface)用户图形界面.通过Freepbx可以十分方便的配置各类电话系统.由于Ast ...

  8. 国产数据库备份恢复(TiDB\达梦\OceanBase\openGauss\GaussDB\GBASE)——筑梦之路

    TiDB: BR 简介 | PingCAP Docs 备份原理介绍: BR 设计原理 | PingCAP Docs BR 设计原理 BR 将备份或恢复操作命令下发到各个 TiKV 节点.TiKV 收到 ...

  9. mongodb备份和恢复

    一. 备份 使用mongodump备份,并不会备份分片信息和索引,所以恢复之后,需要手动创建对数据库和集合的分片,手动创建索引 #./bin/mongodump -h 127.0.0.1:20000 ...

最新文章

  1. 超融合服务器品牌型号,蓝盾发布云平台!强势加入云计算IT行列
  2. 三、hbase JavaAPI
  3. python php区别-JAVA、PHP、Python这3种编程语言有什么区别?
  4. 一篇文章带你搞定Python返回函数
  5. 给你推荐几个 NB 的公众号
  6. 第一节:数据库与数据仓库
  7. asp.net treeView绑定
  8. 【CodeForces - 1150C】Prefix Sum Primes(思维)
  9. socket.io 中文手册 socket.io 中文文档
  10. 金银花跟黄芪泡水有什么功效?
  11. python多线程异步爬虫-Python异步爬虫试验[Celery,gevent,requests]
  12. 计算机网络考前,《计算机网络原理》--考前复习资料.doc
  13. JVM初识之内存分析常用命令和工具
  14. 勒索病毒解密工具的汇总
  15. 【软件工程期末复习】知识点+大题详解(E-R图、数据流图、N-S盒图、状态图、活动图、用例图....)
  16. CSS 边框 border属性
  17. 表情识别论文《OAENet Oriented Attention Ensemble for Accurate FacialExpression Recognition》中文翻译
  18. [置顶] 施一公:优秀博士如何养成(全文) 清华大学演讲
  19. 背包问题贪心算法求解
  20. 有哪些生物多样性保护项目?

热门文章

  1. 海通证券-2017年12月9日
  2. 警惕常见6种伤肾食物:煎炸食物不能吃!
  3. JNI开发笔记(二)--创建JNI基础工程并运行
  4. 基于Vue 表格行上下移动
  5. php钓鱼怎么使用方法,阿魏_阿魏如何使用_钓鱼百科「钓鱼人」
  6. 【大数据管理】Python实现带位置的倒排索引
  7. 特征选择方法概括—过滤法、嵌入法、包装法
  8. java解析tfrecord_tensorflow将图片保存为tfrecord和tfrecord的读取方式
  9. android 多个数组合并,Android之ListView和ArrayAdapter的组合使用
  10. Python与redis数据库的交互详解【重点】