Skip to content

Instantly share code, notes, and snippets.

@lzl
Last active March 16, 2020 02:06
Show Gist options
  • Save lzl/8cc15c59eed87d1833841331173f4793 to your computer and use it in GitHub Desktop.
Save lzl/8cc15c59eed87d1833841331173f4793 to your computer and use it in GitHub Desktop.
备份/恢复 Meteor 的 MongoDB 数据库

准备工作:

  1. 安装 Meteor
  2. 安装 Homebrew,是为了更方便地安装 MongoDB。
  3. 安装 MongoDB,是为了使用里面的 mongodumpmongorestore

备份与恢复本地数据库 (localhost):

  1. 在想要备份的应用目录下,meteor run
  2. 还是在相应的应用目录下,meteor mongo,查看相应的端口号,比如:如果显示的是 connecting to: 127.0.0.1:3001/meteor,那么端口号就是3001,下一步要用到。
  3. 开始备份,在应用目录下,mongodump -h 127.0.0.1 --port 3001 -d meteor,将3001改为上一步的端口号。数据库会备份到dump/meteor目录下。
  4. 以后恢复,在应用目录下,mongorestore -h 127.0.0.1 --port 3001 -d meteor dump/meteor,将3001改为上上步的端口号。

备份与恢复远程数据库:

  1. ssh root@SERVER_IP 登录后进入备份存放目录。
  2. 开始备份,mongodump -d dbname,将 dbname 改为待备份的数据库名,数据库将备份在 dump/dbname 目录下。
  3. tar -zcvf dbname.tar.gz dump,将数据库文件打包,便于下载。
  4. 在本地命令行下,scp root@SERVER_IP:/BACKUP_PATH/dbname.tar.gz ~/downloads,将打包好的文件下载到本地。
  5. 以后恢复,scp ~/downoads/dbname.tar.gz root@SERVER_IP:/BACKUP_PATH,将打包好的文件上传到服务器。
  6. tar -zxvf dbname.tar.gz 解压缩。
  7. mongorestore -d dbname dump/dbname,将dbname改为待恢复的数据库名。

实例示范:

为了更安全更具有实战意义地练习操作 MongoDB 数据库,现将远程数据库上的数据备份下来,并恢复至本地数据库。

  1. 备份,在远程服务器的备份存放目录下,mongodump -d dbname,等待片刻,数据库便已备份至 dump 目录下。
  2. 打包, tar -zcvf dbname.tar.gz dump
  3. 下载,scp root@SERVER_IP:/BACKUP_PATH/dbname.tar.gz ~/downloads
  4. 恢复,在本地应用目录下,先后分别 meteor runmeteor mongo,找到端口号(比如为 3001);进入~/downloads目录,先解压 tar -zxvf dbname.tar.gz,再恢复 mongorestore -h 127.0.0.1 --port 3001 -d meteor dump/dbname,浏览器访问 localhost:3000,便可判断恢复是否成功。

相应的,也可以备份本地数据库,并恢复至远程数据库,方法类似,不再累述。

如遇到问题,或有简便的备份/恢复方法,欢迎在下方留言补充。

@lzl
Copy link
Author

lzl commented Dec 7, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment