设为首页 收藏本站
查看: 1797|回复: 6

[经验分享] mysldump数据的完全备份+增量备份+故障后的恢复

[复制链接]

尚未签到

发表于 2013-5-6 08:49:35 | 显示全部楼层 |阅读模式

学习了几天mysql的知识。刚接触单单以为是语法之类的命令记住就行了。但是遇到问题的时候缺不知道从何下手。网上找了相关的资料感觉还是不太实用。于是笔者就着手总结了备份与还原的例子。这篇是mysqldump的使用。进行了2个事例的操作。当然两个事例大同小异。第二个为第一个的拓展。如果将这2个例子原理搞清楚了。接下来进行LVM备份还原以及Xtrabackup这个备份工具都会轻松很多。

MySQL的备份方式
前提:事先保证对备份类型,备份策略等mysql常用知识已经清楚。

mysqldump: 逻辑备份工具

事例一、我们自己创建了个小教务管理系统,只在MySQL中存在一张jiaowu表,我们来对这一个数据库进行备份+增量备份+还原
       mysqldump(完全备份)+二进制日志
准备:在xshell中打开2个linux连接窗口(主要用于锁表操作),我们将他们赋予编号以便于进行说明操作过程,如果没有xshell工具,那么可以使用linux中的screen。具体使用可以搜一下screen,我们这里主要讲备份。

154749421.jpg


首先在1中要对mysql进行锁表操作

  • [iyunv@localhost ~]# mysql  
  • mysql> FLUSH TABLES WITH READ LOCK; ##以只读的方式进行锁表  
  • mysql> FLUSH LOGS;       ##滚动日志  
  • mysql> SHOW BINARY LOGS; ##查看  

154840647.jpg

回到2中进行备份

  • [iyunv@localhost ~]# mysqldump -uroot -p --master-data=2 jiaowu > /root/jiaowu-`date +%F-%H-%M-%S`.sql  

154934844.jpg

PS:备份出来的可以vim查看下,是个脚本。
同时里面存在了数据库的版本信息。数据库的名字等等。

154951300.jpg


PS:到这里。一张完整的数据库已经备份完成。那么我们来进行增量备份.
我们来到2(1和2均可)中对jiaowu进行操作

155017672.jpg


然后假如我们一天就对他做了这么点东西,那么就重新FLUSH下LOGS。

155103125.jpg

这个时候,这已经算一次增量了,我们可以去磁盘中找到这个二进制文件并保存下来

155136941.jpg

这个时候我们已经进行了一次增量备份了。

然后比如mysql的数据库突然损坏了,我们的jiaowu不见了。(如果当天正操作的时候坏掉了,我们同样可以找到当天的mysql-bin.****用mysqlbinlog转换出去用来还原)
  • mysql> DROP DATABASE jiaowu;           ##模拟的  





然后我们来进行完整数据的恢复。
首先到mysql中创建jiaowu数据库,(因为我们备份的只是jiaowu中各表)
  • mysql> CREATE DATABASE jiaowu;  
  • mysql> \q  
  • [iyunv@localhost ~]# mysql -uroot -p jiaowu < jiaowu-2013-05-04-19-18-18.sql
然后这样我们就完成完整的备份还原。但是。这个时候的数据只是我们没做任何修改时候的数据。我们还需要进行增量数据的恢复。

155425660.jpg

  • [iyunv@localhost ~]# mysql -uroot -p < increment-1.sql

这个时候我们来进行数据的查看

155511539.jpg


显然我们已经恢复到了第一天操作结束的时候了,这样一个完整的过程就演示下来了



下面为mysql备份的一些快捷的扩展

  • 备份单个数据库,或库中特定表  
  •        mysqldump DB_NAME [tb1] [tb2]  
  • --master-data={0|1|2}  
  •        0: 不记录二进制文件及路位置;  
  •        1:以CHANGE MASTER TO的方式记录位置,可用于恢复后直接启动从服务器;  
  •        2:以CHANGE MASTER TO的方式记录位置,但默认为被注释;  
  •          
  • --lock-all-tables: 锁定所有表,这样就不用单独开一个xshel去执行mysql的锁表操作了;
  • --flush-logs:执行日志flush;  
  • 如果指定库中的表类型均为InnoDB, 可使用  
  • --single-transaction 启动热备 不要和lock-all-tables共用  
  • 备份多个库:  
  •        --all-databases: 备份所有库  
  •        --databases DB_NAME, DB_NAME,...: 备份指定库  
  •          
  •        --event 备份事件  
  •        --routines备份存储过程和存储函数  
  •        --triggers备份触发器的  




事例二、对整个数据库完全备份+增量备份
              备份策略:周完全+每日增量
                     完全备份:mysqldump
                     增量备份:备份二进制日志文件(flush logs)
首先
  • #mysqldump -uroot -p --master-data=2 --flush-logs --all-databases --lock-all-tables > /root/alldatabases.sql   
  •                             查看备份到的内容中 --master的masterlog的位子。清空(删掉)以前的(当然备份走也行,万一到什么时候用得到呢)  
  •                             mysql> PURGE BINARY LOGS TO 'mysql_bin.********';  
  •                             mysql> SHOW BINARYLOG;  
然后这样就ok 备份完全的Ok。
                            然后比如到周一了,开始做操作了~
                            进入数据库各种操作。。(忽略)
到周二
  • mysql> FLUSH LOGS;   ##滚动下,前边的是周一的  
  • 然后cd /mydata/data下  
  • 找到昨天的mysql_bin.*******然后复制走。或者# mysqlbinlog mysql-bin.***** > /root/1-incremental.sql  

  然后这是周二,那么你就可以做操作了(我们模仿周二数据库坏掉了)。
  • so这里我们模仿坏掉了,事先mysqld stop停掉他。去数据库删掉里面的东西(当然要把当谈的mysql-bin******+1给保存出来。(我们平常的生产生活中二进制文件和数据库文件肯定要分开放的亲!安全保险!)  

这个时候 mysql已经挂掉了。
  • 我们这个时候要重新去你安装的mysql文件夹中执行下初始化脚本(编译安装过程中的,当然这里不能解释啦),scripts/mysql_install_db --user=mysql --datadir=/mydata/data/  
  •               然后启动服务  
  •                  #mysql -uroot -p < alldataases.sql(这个时候可以进入查看下)  
  •               还原增量备份  
  •                   mysql < 1-incremental.sql ##去查看  
  •                               
  •                             然后还原周二的操作  
  •                             仿照周一的操作二进制文件各种~  


运维网声明 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-5643-1-1.html 上篇帖子: 用php+jquery+ajax+mysql来实现分页 下篇帖子: MySQL的FLUSH句法 恢复

尚未签到

发表于 2013-5-6 09:00:05 | 显示全部楼层
沙发!沙发!

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

尚未签到

发表于 2013-5-19 11:54:54 | 显示全部楼层
没看完~~~~~~ 先顶,好同志

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

尚未签到

发表于 2013-5-24 04:38:30 | 显示全部楼层
如果恐龙是人,那人是什么?

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

尚未签到

发表于 2013-5-31 15:09:10 | 显示全部楼层
我的id是假冒的,大家不要相信我是骗子。

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

尚未签到

发表于 2013-6-6 17:00:27 | 显示全部楼层
只要不下流,我们就是主流!

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

尚未签到

发表于 2013-6-15 09:33:19 | 显示全部楼层
穿别人的鞋,走自己的路,让他们找去吧。

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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