如何做好mongodb的数据备份?(mongodb如何导出所有数据库表)

如何做好mongodb的数据备份?

文档数据库服务是云服务商重要的数据库服务产品之一,而数据库的备份与恢复功能是数据库容灾重要且必不可少的手段。文档数据库云服务提供了数据库的备份与恢复功能,但我们要了解其背后的机制,文档数据库服务采用的是开源的mongoDB,自然就要先从mongoDB数据库的备份和恢复机制入手。

mongoDB的数据库备份恢复机制主要有两种,

创新互联是专业的衡山网站建设公司,衡山接单;提供网站建设、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行衡山网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

一是使用自带的mongodump&mongorestore工具;

二是基于数据文件的备份和恢复。

现简要阐述如下:


注意当恢复数据时,mongorestore不会删除数据, 所以如果恢复的是当前的数据库实例, 就确保使用-drop 标记执行。


如何把mysql中的数据同步到elasticsearch中?

对于ES,我并没有在实际项目中应用(自己研究过,没有实战过);我们项目使用的是MongoDB;由于项目的特殊性,我们研究了很多关于A->B的数据同步方案,包括DB2/Mysql到MongoDB,MongoDB到MongoDB等等。

把MySQL的数据实时同步到ES,这样可以实现在ES中低延迟的检索,有些公司的项目做了分库,可以单独搭建一套ES来放全量的数据(或全量数据的部分字段,达到全量检索的效果),常用的数据同步实现方案有这些:

MySQL Binlog:MySQL的Binlog日志可以用于数据库的主从复制、数据恢复,也可以将MySQL的数据同步给ES;这里需要注意,Binlog的日志模式只能使用ROW模式(另外两种模式是STATEMENT和MIXED);解析Binlog日志中的内容,执行ES Document API,这样就可以将数据同步到ES中;

MySQL dump:如果是新建的项目,使用Binlog做数据同步是没有问题的,但如果MySQL已经运行了一段时间,项目架构中后增加的ES,那么历史数据的迁移就要额外处理了,因为Binlog可能已经被覆盖了。这时候历史数据的同步,可以使用mysqldump对现有数据导出,之后再使用Binlog的方式;

开源工具:前两种方式都是在数据库日志这个级别做文章,我们还可以使用一些开源工具,比如go-mysql-elasticsearch;它可以帮助我们完成第一次全量数据同步,后续增量数据同步的工作(底层也是解析Binlog日志);又或者mypipe,它支持将Binlog日志内容解析后推送到Kafka,如果要写入到ES中,还需要写额外的代码从Kafka中消费数据写入ES。

上面提过,我们项目中是将关系型数据库DB2/Mysql中的数据同步到MongoDB中,Mysql尚且还能使用Binlog日志,DB2想要把变化的数据实时通知出来,实现起来比较困难(写程序部署到DB2服务器上,要和数据库做关联配置,当数据发生变化,程序发送MQ通知给外围系统),先不说性能是否能保证,就是“自己写一个通知程序部署到数据库所在服务器上(有侵入)”,这一点至少在我们公司是无法做到的。

到此,以上就是小编对于mongodb导出整个数据库的问题就介绍到这了,希望这2点解答对大家有用。

网站名称:如何做好mongodb的数据备份?(mongodb如何导出所有数据库表)
当前路径:http://www.shufengxianlan.com/qtweb/news16/252266.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联