栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

mysql 备份和增量备份 python实现

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql 备份和增量备份 python实现

首先暂时不考虑python 如何实现,先实现mysql备份

两个思路 mysqldump + binlog 逻辑备份 与 xtraback 物理备份

考虑到实际需要,物理备份还原是通过删除原数据库从新创建并还原数据,这种方式对于频繁还原来说并不合适,

逻辑备份对于数据库本身无操作,只是操作对应sql语句,比较后决定使用第一种mysqldump + binlog的方式实现(先确认binlog可用)。

第一次通过命令行执行mysqldump进行全量备份

mysqldump -uroot -p12345 --single-transaction --master-data=1 testdb > /data/dev.sql

-u username -p password -P port -h host testdb 需要备份的库名 如果全库的话 --all-databases

默认情况下mysqldump会对表加锁,而使用--single-transaction会将备份的操作放在一个事务中进行,从而避免了加表锁。

--master-data=1会在dump出的sql文件中记录Binlog文件和位置。使用--master-data=1参数后sql文件中会出现下面这行:

CHANGE MASTER TO MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=155;

binlog.000001 文件用于后续增量备份时候进行切片,命令行执行如下

mysqlbinlog --start-post=155 binlog.000001 > /data/binlog.000001.sql

命令实现 通过pos点 155 开始到最新的日志 转成sql脚本。

或者通过时间进行切片转换sql脚本

mysqlbinlog --start-datetime='2022-01-1 00:00:00' /data/binlog.000001 > binlog.000001.sql

数据库语句:

        查看是否开启 binlog

        show variables like 'log_bin'

        查看binglog文件

        show binary logs

        查看当前正在写入的binlog文件

        show master status

数据库还原可以通过命令行操作对应文件

mysql -uroot -p123456 testdb < binlog.000001.sql

python实现可以使用os.system执行shell 命令

os.system("mysql -uroot -p12345 testdb < binlog.000001.sql ")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958114.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号