mongodb-consistent-backup 一致性备份工具的使用

  • 2019 年 10 月 4 日
  • 筆記

官方地址: https://github.com/Percona-Lab/mongodb_consistent_backup

wget https://github.com/Percona-Lab/mongodb_consistent_backup/releases/download/1.4.1/mongodb_consistent_backup-1.4.1-1.el7.x86_64.rpm  yum install mongodb_consistent_backup-1.4.1-1.el7.x86_64.rpm

我的mongodb使用的是3.2.16版本,使用binary方式安装的。

需要确保mongodump能被发现,因此我这里做了个软链接

ln -s /usr/local/mongodb_3.2.16/mongodump  /usr/bin/mongodump

我这里没有设置账号和密码,因此备份命令很简单,如下:

mongodb-consistent-backup -H 127.0.0.1 -P 27017 -n production_baks  -l  /root/mongodb_backups/

## mongodb-consistent-backup -h 可以列出全部支持的参数,常用几个参数如下:

-H

连接的IP,如果启用了多个mongos,可将多个mongos写入配置,备份进程会自动找到可用的mongos,避免单个mongos进程异常导致的备份失败。如配置两个:127.0.0.1:27011, 127.0.0.1:27012

-P

端口,如果在-H指定了端口,此参数可以省略

-u

开启了认证的用户名

-p

开启了认证的密码

-l

备份的保存路径

-n

备份的目录,如果不指定,将创建default作为目录

–rotate.max_backups

保存的备份数量,默认无限制

–rotate.max_days

备份保留的最大天数,默认无限制

–archive.method

备份保存方式,默认为tar,将备份保存为tar包

–backup.mongodump.compression

备份的压缩方式,是指每个集合是否压缩,gzip

备份文件的恢复步骤:

cd /root/mongodb_backups/  cd production_baks/  cd latest/   这是一个软链接,始终指向最新的备份文件  tar xf production.tar  cd production/dump/  find ./ -type f -name "*.gz" -exec gunzip  {} ;   解压出各个备份文件    最后的恢复命令:  /usr/local/mongodb_3.2.16/mongorestore --host 127.0.0.1 --port 27017 --oplogReplay --dir /root/mongodb_backups/production_baks/latest/production/dump/  备份与mongorestore兼容,并存储在每个备份的目录中。必须存在--oplogReplay标志才能重放oplog以确保一致性。

另外,乐得DBA的公众号有详细介绍,文章名称: MongoDB Sharding Cluster的一致性备份 ,讲的非常好,推荐阅读下