binlog2sql安装及mysql数据恢复
//
# 安装binlog2sql
- 安装工具
yum install python-pip git -y
git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
pip install --upgrade pip -i https://mirrors.ustc.edu.cn/pypi/web/simple/
pip install -r requirements.txt --default-timeout=100 -i https://mirrors.ustc.edu.cn/pypi/web/simple/
#wget http://download.yfklife.cn/blog/dba/mysql/binlog2sql.zip && unzip binlog2sql.zip
1
2
3
4
5
6
2
3
4
5
6
- 该工具需要使用到的三个包
PyMySQL==0.7.8
wheel==0.24.0
mysql-replication==0.9
1
2
3
4
2
3
4
- 数据库需要的配置
[mysqld]
server_id = 1
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 1G
binlog_format = row
binlog_row_image = full
1
2
3
4
5
6
7
2
3
4
5
6
7
# binlog2sql的使用参数说明
参数 | 说明 |
---|---|
解析模式 | |
--stop-never | 持续同步binlog。可选。不加则同步至执行命令时最新的binlog位置。 |
-K, --no-primary-key | 对INSERT语句去除主键。可选。 |
-B, --flashback | 生成回滚语句,可解析大文件,不受内存限制,每打印一千行加一句SLEEP SELECT(1)。可选。与stop-never或no-primary-key不能同时添加。 |
解析范围控制 | |
--start-file | 起始解析文件。必须。 |
--start-position/--start-pos | start-file的起始解析位置。可选。默认为start-file的起始位置。 |
--stop-file/--end-file | 末尾解析文件。可选。默认为start-file同一个文件。若解析模式为stop-never,此选项失效。 |
--stop-position/--end-pos | stop-file的末尾解析位置。可选。默认为stop-file的最末位置;若解析模式为stop-never,此选项失效。 |
--start-datetime | 从哪个时间点的binlog开始解析,格式必须为datetime,如'2016-11-11 11:11:11'。可选。默认不过滤。 |
--stop-datetime | 到哪个时间点的binlog停止解析,格式必须为datetime,如'2016-11-11 11:11:11'。可选。默认不过滤。 |
对象过滤 | |
-d, --databases | 只输出目标db的sql。可选。默认为空。 |
-t, --tables | 只输出目标tables的sql。可选。默认为空。 |
# 示例
python binlog2sql.py -h127.0.0.1 -P3306 -uroot -p -d confluence --start-file='mysql-bin.000001' --start-datetime="2020-03-20 16:01:00" --start-pos=13998798 -B > roll.sql
查看roll.sql 文件,`less roll.sql
//
如果此文章对您有帮助,点击 -->> 请博主喝咖啡 (opens new window)
上次更新: 2021/10/08, 16:59:52