my08_mysqldump+binlog server备份

备份策略描述

*******************************************

mysqldump备份适用于小数据量的备份,比如100G以下的数据量,就可以使用逻辑备份

举例两个逻辑备份用时的例子,6G库用时30秒(比较快的),45G库用时9分钟(比较慢的),按慢的速度计算,100G的库逻辑备份用时约20分钟,可以接受。

数据库通常采用innodb+row+gtid格式,开启binlog并使用binlog server对binlog也进行备份

mysqldump则至少要加上single-transaction和master-data参数,比如

/usr/local/mysql/bin/mysqldump -h$host -uautomng -pAutomng_123 -P$port --log-error=$bkdir/$today_bklog --set-gtid-purged=OFF --add-drop-database --add-drop-table  --flush-logs --single-transaction --triggers --routines --events --flush-privileges --master-data=2 --default-character-set=$charset $db_name > $bkdir/$today_bkfile

binlog server,从mysql-bin.000010开始备份

mkdir -p /data0/backup_binlog/bakdb/

# mysqlbinlog --no-defaults -h192.168.56.201 -P3318 -uautomng -pAutomng_123 -R --raw --stop-never mysql-bin.000010 -r /data0/backup_binlog/bakdb/ &

-R | --read-from-remote-server 表示开启binlog备份,在对应的主节点上请求binlog到本地

--raw 被复制过来的binlog以二进制的格式存放,如果不加该参数则为text格式。

-r | --result-file 指定目录或文件名:
若指定了--raw参数,-r的值指定binlog的存放目录和文件名前缀;若没有指定--raw参数,-r的值指定文本存放的目录和文件名。

-t 这个选项代表从指定的binlog开始拉取,直到当前主节点上binlog的最后一个。

--stop-never 持续连续从主节点拉取binlog,持续备份到当前最后一个,并继续下去。该参数包含-t

--stop-never-slave-server-id 默认值65535,用于在多个mysqlbinlog进程或者从服务器的情况下,避免ID冲突。

mysqlbinlog开启备份后,直到连接关闭或者被强制kill才会结束。可通过ps查看到已经开启的备份进程。

备份策略

备份脚本以远程的方式将数据备份到本地后,立即恢复一份。这样遇到问题需要恢复某个表的数据时,可以节省掉全库的恢复时间,已经有了一个全备恢复的起点。同时开启binlog备份。

binlog server搭建示例

******************************************************************

连接测试

mysql -uautomng -pAutomng_123 -P3318 -hmysql01

mysql -uautomng -pAutomng_123 -P3306 -hbak

创建binlog存放目录

mkdir -p /data0/backup_binlog/mysql01
mkdir -p /data0/backup_binlog/bak

确认从哪个binlog开始复制后,以后台方式执行命令

# ps -ef | grep binlog
root      2284  1694  1 11:13 pts/0    00:00:07 mysqlbinlog --no-defaults -hmysql01 -P3318 -uautomng -px xxxxxxxxx -R --raw --stop-never --stop-never-slave-server-id=33001 mysql-bin.000005 -r /data0/backup_binlog/mysql01/
root      2488  1694 27 11:21 pts/0    00:00:02 mysqlbinlog --no-defaults -hbak -P3306 -uautomng -px xxxxxxxxx -R --raw --stop-never --stop-never-slave-server-id=33002 mysql-bin.000367 -r /data0/backup_binlog/bak/

目前(2018-07-31)binlog server不支持mysql8.0.11,会报以下错误

ERROR: Could not find server version: Master reported unrecognized MySQL version '8.0.11'.

备份多个实例

mysqlbinlog --no-defaults -h192.168.10.103 -P3308 -uautomng -px xxxxxxxxx -R --raw --stop-never mysql-bin.001966 -r /data0/backup_binlog/bak3/ --stop-never-slave-server-id=33101 &
mysqlbinlog --no-defaults -h192.168.10.116 -P3366 -uautomng -px xxxxxxxxx -R --raw --stop-never mysql-bin.000004 -r /data0/backup_binlog/bak2/ --stop-never-slave-server-id=33102 &
原文地址:https://www.cnblogs.com/perfei/p/9391207.html