
媒介
今朝官方MongoDB社区版是不支持Hot Backup热备份的,我们只能通过mongodump等逻辑备份器材导出bson文件,再mongorestore导入,相同MySQL的mysqldump器材。
在备份副本集时,我们需指定--oplog选项记录备份间发生的增量数据,相同mysqldump --single-transaction --master-data=2(做同等性快照并记录当前的binlog点)。
对副本集的成员规复,需先切成单机版,mongorestore必需指定--oplogReplay选项,以规复到某一时候的快照,最后还需添补oplog(增量数据以哪个位置点开始断点续传),mongorestore -d local -c oplog.rs dump/oplog.bson,最后一步再切为副本集成员从头启动。
中小型数据库备份起来简朴快捷,假如过TB级的数据量,那将是疾苦的。
假如你的oplog配置过小,很有也许在备份规复这段时刻,oplog被包围重写,那么你将永久无法插手副本集集群里。
概述
Percona MongoDB 3.2版本默认开始支持WiredTiger引擎的在线热备份,办理了官方版只能通过mongodump逻辑备份这一缺陷。
参考文献:
https://www.percona.com/doc/percona-server-for-mongodb/LATEST/hot-backup.html#hot-backup
留意事项
1、要在当前dbpath中对数据库举办热备份,请在admin数据库上以打点员身份运行createBackup呼吁,并指定备份目次。
2、可以替代一台从库为Percona MongoDB,做备份行使。(我这里实测是Percona MongoDB 3.4版本)
道理
Percona MongoDB HotBackup热备份道理:
你可以想象成xtrabackup器材
备份:
- 起首会启动一个靠山检测的历程,及时检测MongoDB Oplog的变革,一旦发明oplog有新的日记写入,立即将日记写入到日记文件WiredTiger.backup中(你可以strings WiredTiger.backup查察oplog操纵日记的变革);
- 复制MongoDB dbpath的数据文件和索引文件到指定的备份目次里;
- ......
规复:
- 将WiredTiger.backup日记举办回放,将操纵日记改观应用到WiredTiger引擎里,,最终获得同等性快照规复;
- 把备份目次里的数据文件直接拷贝到你的dbpath下,然后启动MongoDB即可,会自动接入副本集集群。
运行
这里我封装了一个PHP剧本,直接在SHELL里运行即可。
1、情形筹备:
- shell> yum install -y php-pear php-devel php gcc openssl openssl-devel cyrus-sasl cyrus-sasl-devel
2、php-mongo驱动安装:
- shell> pecl install mongo
把extension=mongo.so插手到/etc/php.ini最后一行。
3、建设mongodb超等用户权限(备份时行使)
- db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})
4、修改pmongo_bak.php设置信息
- //*************修改下面的设置信息***************//
- $user = "admin"; //行使root用户权限
- $pwd = '123456';
- $host = '192.168.180.26'; //在从库上热备
- $port = '27017';
- $authdb = 'admin'; //权限认证数据库
- $BAKDIR = "/data/bak/";
- $BAKDIR .= date('Y_m_d_H_i_s');
-
- //*************下面的代码不消修改***************//
- $m = new MongoBak($user,$pwd,$host,$port,$authdb,$BAKDIR);
- ......
5、前台运行:
- shell> php pmongo_bak.php(以root权限运行)
6、写入体系crontab里
- 00 01 * * * /usr/bin/php /root/php_mongodb/pmongo_bak.php > /root/php_mongodb/bak_status.log 2 >&1
7、不支持长途备份,需将备份剧本陈设在从库里。假如你想把数据备份到长途,可以回收NFS等文件体系mount挂载上。
【编辑保举】
- 黑客进攻数据库的六大本领
- 2018年12月环球数据库排行榜:Oracle惨不忍睹!
- 免费电子书|MongoDB入门到实践
- 记一次出产数据库"不测"重启的经验
- ERP技能全打仗:数据库、编程和前端技能
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|