设为首页 收藏本站
查看: 758|回复: 0

[经验分享] MySQL[2] 快照方式备份lvm

[复制链接]

尚未签到

发表于 2018-9-28 12:33:02 | 显示全部楼层 |阅读模式
  MySQL的第一款备份工具mysqldump,我们在上篇文章中已经和大家聊过,如果大家还有疑惑,请点击mysqldump
  MySQL的第二款备份工具lvm快照,那么今天我们就聊聊它lvm快照卷温备
  mysqldump能够实现对InnoDB存储引擎实现热备,但是却无法实现对MyISAM引擎进行热备;
  而今天将要和大家介绍lvm能够实现对MyISAM引擎实现几乎热备
  使用lvm快照进行mysql的备份时,需要满足以下条件:

  •   数据文件要在逻辑卷上
  •   此逻辑卷所在卷组必须有足够空间使用快照卷
  •   数据文件和事务日志要在一个逻辑卷上
  实现lvm快照进行mysql备份的流程
1、打开会话,施加读锁,锁定所有表  
mysql> FLUSH TABLES WITH READ LOCK;
  
mysql> FLUSH LOGS;
  

  
2、通过另外一个终端,保存二进制日志文件及相关位置信息;
  
# mysql -e 'show mater status' > /proc/master.info
  

  
3、创建快照卷
  
# lvcreate -L # -s -p r -n LV_NAME /path/to/source_lv
  

  
4、释放锁
  
mysql> UNLOCK TABLES;
  

  
5、挂在快照卷、备份
  
# mount
  
# cp -a
  

  
6、删除快照卷和无用数据
  
# lvremove --force LV_NAME
  
# rm -rf mysql-bin.*
  

  
7、增量备份二进制日志
  
# cp
  

  
8、故障发生、恢复数据
  
# source
  mysql数据库lvm快照备份
  1、打开会话,施加读锁,锁定所有表,并刷新日志;
mysql> FLUSH TABLES WITH READ LOCK;  
mysql> FLUSH LOGS;
  2、通过另一个终端,保存二进制日志文件及湘椴信息;
# mysql -uroot -p -e 'show master status\G;' > /backup/master-`date +%F`.info  
# cat /backup/master-`date +%F`.info
  3、创建快照卷
# lvcreate -L 3G -s -p r -n mydata_snap /dev/myvg/mydata  4、释放锁
mysql> UNLOCK TABLES;  5、挂在快照卷、备份
# mkdir /mnt/mydata_snap  
# mount /dev/myvg/mydata_snap /mnt/mydata_snap/ -o ro
  
# mkdir /backup/full-backup-`date +%F`
  
# cp -a /mnt/mydata_snap/* /backup/full-backup-2015-03-05/
  6、删除快照卷和无用数据
删除快照卷  
# umount /mnt/mydata_snap/
  
# lvremove --force /dev/myvg/mydata_snap
  

  
由于这里备份的日志文件爱你是无用的,因此可以删除
  
# rm -rf /backup/full-backup-2015-03-05/data/mysql-bin.*
  7、增量备份二进制日志
  (1)首先在mysql数据库中做一些写入操作:
mysql> FLUSH LOGS;  
mysql> USE mydb;
  
mysql> INSERT INTO tutor(Tname) VALUES('it');
  
mysql> INSERT INTO tutor(Tname) VALUES('3dmax');
  
mysql> show master status;#日志文件变化、数据偏移位发生变化
  
+------------------+----------+--------------+------------------+
  
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  
+------------------+----------+--------------+------------------+
  
| mysql-bin.000005 |      584 |              |                  |
  
+------------------+----------+--------------+------------------+
  
1 row in set (0.00 sec)
  (2)备份增量日志:需要注意的是,由于我使用了FLUSH LOGS滚动日志,因此理论上是引用lvm快照卷备份后有两个日志的增量数据需要备份即mysql-bin.000004和mysql-bin.000005
  (3)查看备份开始时的日志位置:
[root@localhost ~]# cat /backup/master-2015-03-05.info  
*************************** 1. row ***************************
  File: mysql-bin.000004
  Position: 107
  Binlog_Do_DB:
  
Binlog_Ignore_DB:
  (4)导出日志:
# mysqlbinlog --start-position=107 /mydata/data/mysql-bin.000004 > /backup/04.sql  
# mysqlbinlog /mydata/data/mysql-bin.000005 > /backup/05.sql
  8、恢复数据库
  1)模拟损坏:
  我这里还是采用这直接删除数据文件和目录的方式:
# rm -rf /mydata/data*  2)恢复完全备份:直接cp
# cp -a /backup/full-backup-2015-03-05/data/* /mydata/data/  3)启动mysql服务
# service mysqld start  4)导入增量备份
# mysql -uroot -p < /backup/04.sql  
# mysql -uroot -p < /backup/05.sql
  5)使用lvm快照卷备份注意事项:如果需要备份单一库,则InnoDB需设置为独立表空间
设置每个表独立使用一个表空间  
mysql> SHOW GLOBAL VARIABLES LIKE '%innodb_file_per_table%';
  
+-----------------------+-------+
  
| Variable_name         | Value |
  
+-----------------------+-------+
  
| innodb_file_per_table | ON    |
  
+-----------------------+-------+
  
1 row in set (0.00 sec)

  •   个人愚见:
  •   这种热备工作我用的不是很多,可能是公司的环境不同吧!我会在后续章节中和大家介绍第三款开源备份工具xtrabackup,这款备份工具个人感觉是非常不错,在性能方面远超mysqldump,那么我们下回聊。
  •   下几篇mysql文章的方向:

    •   第三款备份工具xtrabackup
    •   性能调试工具
    •   压力测试




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-603297-1-1.html 上篇帖子: aws中RDS修改mysql的编码 下篇帖子: ActiveMQ使用MySQL进行消息持久化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表