LVMsnapshot基于逻辑卷快照备份

2023年 7月 15日 48.7k 0

LVM-snapshot:基于逻辑卷快照备份lvn本身不做备份,基于lvn做备份,仅能够保存快照后在原件数据对于mysql配置文件,已经于mysql相关的OS配置文件在每次修改后都应该直接备份mylvm.png

  • 快照备份器请求全局锁:

    MariaDB [(none)]> FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (0.00 sec)

  • 如果是innodb则不同

1,myisa在执行fush时会将数据直接到磁盘,innodb执行时可能在事务日志中仍然存在数据,并未同步到磁盘,因此,事务日志跟数据文件必须在同一个卷上,否则数据完整无法保证2,创建快照之前,请求mysql全局锁,在快照创建完成后释放锁3,请求全局锁完成之后,做一次日志滚动:做二进制日志文件及记录事件位置

1,锁表

FLUSH TABLES WITH READ LOCK;

滚日志

FLUSH LOGS;

2,查看事件位置

SHOW MASTER STATUS;

将master status位置保存

mkdir /backup/
mysql -e 'show master status' >backup/binlog.pos

3,创建快照卷对/dev/myvg/mydata,创建100M大小,名称为mydata-snap的快照,

lvcreate -L 100M -s -n mydata-snap -p r /dev/myvg/mydata

4,释放全局锁

UNLOCK TABLES;

5,将快照挂载到mnt下

mount /dev/myvg/mydata-snap /mnt -o ro

6,复制data/ 到backup下

cp data/  /backup/data-2015-9-4
cp /mnt/data/    /backup/data-2015-9-4

7,备份完成,删除快照卷先卸载

umount /mnt

删除快照卷

lvremove /dev/myvg/mydata-snap

备份完成!

  • 备份还原

*二进制日志需要存在1,恢复将backup/backup/data-2015-9-4/*复制到/mydata/data -a 即可2,打开备份的master status文件从备份那一刻开始

mysqlbinlog --start-position=369 /mydata/binlog/master-bin.000009 | mysql

3,还原数据后,修改权限及属主属组等,并启动mysql

其他

  • mylvbackup:

mylvbackup是一个perl脚本,快速基于lvm备份的mysql

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论