介绍
无论在什么情况下都应该进行数据备份,才能避免灾难性的数据损坏,下面将介绍两种备份方式,两种备份方式使用的场景也不一样,可以根据自身的使用情况进行选择
复制文件备份
在复制数据库文件之前,我们可以通过db.fsynclock()
方法让数据库禁止一切写入,并把所有在缓存中的信息全部同步到磁盘中,让所有的写操作进入队列,在没有取消锁之前,Mongodb不会对任何写操作进行处理。
> db.fsyncLock(); 首先给数据库上锁,以免出现我们在备份的过程中同时还有数据写入
$ cp -R /data/blog/* /data/Backup/blog //复制数据库所有的文件到备份目录
> db.fsyncUnlock(); 解锁数据库,解锁后数据库将处理队列中的写操作
mongodump
mongodump可以给正在运行的实例进行热备份,只需要通过指定端口,地址,如果在本机上面运行,只需要指定端口就可以进行热备份了。
$ mongodump --port 27017
运行过后,mongodump会在当前目录建立一个dump文件夹,里面包含了我们备份的数据库数据。
恢复
上面第一种方式很好恢复,把备份的数据文件复制回来就可以了,而经过mongodump备份的文件需要使用mongodb提供的另一个工具mongorestore
。
mongorestore
通过给正在运行的实例进行恢复数据,下面是它的用法:
mongorestore --port 27017 ./dump/
参考
本文首发于:Mongodb 备份及恢复-伍仪洲的博客
《Mongodb 备份及恢复》留言数:0