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;
原创粉丝点击