pybackup
来源:互联网 发布:网络教育文凭样本 编辑:程序博客网 时间:2024/06/05 15:27
pybackup使用文档
https://github.com/Fanduzi/pybackup
pybackup源自于对线上备份脚本的改进和对备份情况的监控需求.
原本生产库的备份是通过shell脚本调用mydumper,之后再将备份通过rsync传输到备份机.
想要获取备份状态,时间,rsync传输时间等信息只能通过解析日志.
pybackup由python编写,调用mydumper和rsync,将备份信息存入数据库中,后期可以通过grafana图形化展示和监控备份
参数说明
pybackup.py mydumper ARG_WITH_NO_--... (([--no-rsync] [--no-history]) | [--only-backup])
除了最后三个参数,使用的所有参数和mydumper -h中列出的参数相同. 只不过目前只支持长选项,并且不带’–’
列:
./pybackup.py mydumper password=fanboshi database=fandb outputdir=/data4/recover/pybackup/2017-11-12 logfile=/data4/recover/pybackup/bak.log verbose=3
可以使用./pybackup.py mydumper help
查看mydumper帮助信息
–no-rsync
不使用rsync传输
–no-history
不记录备份信息到数据库
–only-backup
等价于同时使用–no-rsync和–no-history . 不能与–no-rsync或–no-history同时使用
配置文件说明
配置文件为pbackup.conf
[root@localhost pybackup]# less pybackup.conf [CMDB] --存储备份信息的数据库配置db_host=localhostdb_port=3306db_user=rootdb_passwd=fanboshidb_use=cmdb[TDB] --需要备份的数据库配置db_host=localhostdb_port=3306db_user=rootdb_passwd=fanboshidb_use=information_schemadb_list=test,fandb,union_log_ad_% --指定需要备份的数据库,可以使用mysql支持的通配符. 如果想要备份所有数据库则填写%[rsync]password_file=/data4/recover/pybackup/rsync.sec --等同于--password-filedest=platform@182.92.83.238/db_backup/106.3.130.84 --传输到哪个目录address= --使用的网卡.可以为空不指定
注意
[TDB]db_list=fan,bo,shi 代表备份fan,bo,shi三个数据库db_list=!fan,!bo,!shi 代表不备份fan,bo,shi三个数据库db_list=% 代表备份所有数据库db_list=!fan,bo 不支持
备份信息示例
*************************** 3. row *************************** id: 3 bk_id: 7d4085d8-c76f-11e7-ace3-005056b15d9c bk_server: 106.3.130.84 start_time: 2017-11-12 14:05:31 end_time: 2017-11-12 14:06:26 elapsed_time: 54 is_complete: N,Y,Y,Y,Y,Y,Y,Y,Y,Y bk_size: 2.2G bk_dir: /data4/recover/pybackup/2017-11-12 transfer_start: NULL transfer_end: NULLtransfer_elapsed: NULLtransfer_complete: N/A (local backup) remote_dest: platform@182.92.83.238/db_backup/106.3.130.84/ master_status: mysql-bin.000036,25255, slave_status: Not a slave tool_version: mydumper 0.9.2, built against MySQL 5.5.53 server_version: 5.7.18-log bk_command: mydumper --password=supersecrect --outputdir=/data4/recover/pybackup/2017-11-12 --verbose=3 database=information_schema,PERCONA_SCHEMA,cmdb,fandb,mysql,performance_schema,sys,test,union_log_ad_201710_db,union_log_ad_201711_db
建库建表语句
create database cmdb;CREATE TABLE user_backup ( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, bk_id CHAR(36) NOT NULL UNIQUE KEY, bk_server VARCHAR(15) NOT NULL, start_time DATETIME NOT NULL, end_time DATETIME NOT NULL, elapsed_time INT NOT NULL, backuped_db VARCHAR(200) NOT NULL, is_complete VARCHAR(30) NOT NULL, bk_size VARCHAR(10) NOT NULL, bk_dir VARCHAR(200) NOT NULL, transfer_start DATETIME, transfer_end DATETIME, transfer_elapsed INT, transfer_complete VARCHAR(20) NOT NULL, remote_dest VARCHAR(200) NOT NULL, master_status VARCHAR(200) NOT NULL, slave_status VARCHAR(200) NOT NULL, tool_version VARCHAR(200) NOT NULL, server_version VARCHAR(200) NOT NULL, bk_command VARCHAR(400) NOT NULL, tag varchar(200) NOT NULL DEFAULT 'N/A' ) ENGINE=INNODB CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;