持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情
前言
项目开发过程中,经常会遇到数据库迁移的问题。如何把数据库中的数据表迁移到新的服务器上,是一个需要重点考虑和解决的问题。今天,本文将结合 linux 系统服务器迁移 mongodb 数据库为例子进行介绍。
正文
mongodb 工具一般包含两个工具 mongodump 和 mongorestore。我们可以使用它们两个来完成原来服务器数据库的导出和新服务器的数据库导入工作。
一、数据库导出
利用 mongodump 工具实现数据库中数据的导出工作,命令语法如下:
mongodump -h host:port -d dbname -o ./db
演示一个实际例子:
root@c8b1be8d906a boffmpeg]# mongodump -h localhost:27017 -d ffmpeg -o ./db
2022-06-28T05:42:48.267+0000 writing ffmpeg.texts to
2022-06-28T05:42:48.267+0000 writing ffmpeg.portals to
2022-06-28T05:42:48.267+0000 writing ffmpeg.movies to
2022-06-28T05:42:48.268+0000 writing ffmpeg.settings to
2022-06-28T05:42:48.270+0000 done dumping ffmpeg.portals (1 document)
2022-06-28T05:42:48.270+0000 writing ffmpeg.fenfas to
2022-06-28T05:42:48.271+0000 done dumping ffmpeg.texts (55 documents)
2022-06-28T05:42:48.271+0000 writing ffmpeg.sessions to
2022-06-28T05:42:48.273+0000 done dumping ffmpeg.settings (1 document)
2022-06-28T05:42:48.273+0000 done dumping ffmpeg.movies (15 documents)
2022-06-28T05:42:48.274+0000 done dumping ffmpeg.sessions (0 documents)
2022-06-28T05:42:48.282+0000 done dumping ffmpeg.fenfas (1 document)
运行结果截图:
二、数据库导入
利用 mongorestore 工具实现数据库中数据的导入工作,命令语法如下:
mongorestore -h host:port -d dbnameNew --dir ./db/dbname
演示一个实际例子:
[root@7884240db8f7 db]# mongorestore -h 127.0.0.1:27017 -d ffmpegnew --dir ./ffmpeg
2022-06-28T04:08:23.598+0000 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2022-06-28T04:08:23.598+0000 building a list of collections to restore from ffmpeg dir
2022-06-28T04:08:23.599+0000 reading metadata for ffmpegnew.texts from ffmpeg/texts.metadata.json
2022-06-28T04:08:23.611+0000 reading metadata for ffmpegnew.movies from ffmpeg/movies.metadata.json
2022-06-28T04:08:23.611+0000 reading metadata for ffmpegnew.images from ffmpeg/images.metadata.json
2022-06-28T04:08:23.611+0000 reading metadata for ffmpegnew.portals from ffmpeg/portals.metadata.json
2022-06-28T04:08:23.611+0000 restoring ffmpegnew.texts from ffmpeg/texts.bson
2022-06-28T04:08:23.627+0000 restoring ffmpegnew.images from ffmpeg/images.bson
2022-06-28T04:08:23.636+0000 restoring ffmpegnew.movies from ffmpeg/movies.bson
2022-06-28T04:08:23.645+0000 restoring ffmpegnew.portals from ffmpeg/portals.bson
2022-06-28T04:08:23.649+0000 no indexes to restore
2022-06-28T04:08:23.649+0000 finished restoring ffmpegnew.texts (393 documents)
2022-06-28T04:08:23.649+0000 reading metadata for ffmpegnew.settings from ffmpeg/settings.metadata.json
2022-06-28T04:08:23.649+0000 no indexes to restore
2022-06-28T04:08:23.649+0000 finished restoring ffmpegnew.movies (37 documents)
2022-06-28T04:08:23.649+0000 reading metadata for ffmpegnew.fenfas from ffmpeg/fenfas.metadata.json
2022-06-28T04:08:23.651+0000 no indexes to restore
2022-06-28T04:08:23.651+0000 finished restoring ffmpegnew.images (32 documents)
2022-06-28T04:08:23.651+0000 reading metadata for ffmpegnew.sessions from ffmpeg/sessions.metadata.json
2022-06-28T04:08:23.665+0000 restoring ffmpegnew.fenfas from ffmpeg/fenfas.bson
2022-06-28T04:08:23.673+0000 restoring ffmpegnew.settings from ffmpeg/settings.bson
2022-06-28T04:08:23.675+0000 no indexes to restore
2022-06-28T04:08:23.675+0000 finished restoring ffmpegnew.portals (1 document)
2022-06-28T04:08:23.681+0000 restoring ffmpegnew.sessions from ffmpeg/sessions.bson
2022-06-28T04:08:23.687+0000 no indexes to restore
2022-06-28T04:08:23.687+0000 finished restoring ffmpegnew.fenfas (1 document)
2022-06-28T04:08:23.690+0000 no indexes to restore
2022-06-28T04:08:23.690+0000 finished restoring ffmpegnew.settings (1 document)
2022-06-28T04:08:23.696+0000 restoring indexes for collection ffmpegnew.sessions from metadata
2022-06-28T04:08:23.702+0000 finished restoring ffmpegnew.sessions (0 documents)
2022-06-28T04:08:23.702+0000 done
运行结果截图:
结尾
好了,今天关于 linux 系统服务器迁移 mongodb 数据库的方法就介绍完了。
作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解。同时也是 CSDN 博客专家(博客之星)、华为云享专家(共创编辑、十佳博主)、51CTO社区编辑、InfoQ 签约作者,欢迎关注我分享更多干货!😄