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

[经验分享] mysqldump & binlog做完全备份

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-6-23 08:42:43 | 显示全部楼层 |阅读模式
注:mysqldump备份数据库实验(本文有两种方法实现备份,本实验使用的法1)

步骤:

1.用mysqldump对数据库完全备份
法1:
# mysqldump --all-databases --lock-all-tables --master-data=2 --flush-logs > /backup/all-`date +%F`.sql
锁定表后滚动binlog数据文件,然后再备份数据库,下次增量备份时只需要从新创建的binlog文件开始即可

或者:

法2:
# mysqldump --all-databases --lock-all-tables --master-data=2 > /backup/all-`date +%F`.sql
并打开备份的文件,查看这一行:
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000010', MASTER_LOG_POS=8230;
找到MASTER_LOG_POS=8230;代表着备份的结束事务点为8230,则增量备份需要从8230开始记录备份;

2.尝试着修改数据库中的数据,新建text2表,并插入一行数据(模拟线上运行新增数据)

MariaDB [hellodb]> create table test2(id int);
Query OK, 0 rows affected (0.09 sec)

MariaDB [hellodb]> insert into test2 values (1);
Query OK, 1 row affected (0.04 sec)

3.使用mysqlbinlog命令做增量备份
法1:
# mysqlbinlog mysql-bin.000011 > /backup/zlbf-`date +%F`.sql

或者:

法2:
# mysqlbinlog --start-position=8230 mysql-bin.000010 > /backup/zlbf-`date +%F`.sql

4.再次尝试着修改数据库中的数据:删除text1表(作为未来得及备份的数据)
MariaDB [hellodb]> show tables;
+-------------------+
| Tables_in_hellodb |
+-------------------+
| classes           |
| coc               |
| courses           |
| scores            |
| students          |
| teachers          |
| test2             |
| text1             |
| toc               |
+-------------------+
9 rows in set (0.00 sec)
MariaDB [hellodb]> drop table text1;
Query OK, 0 rows affected (0.17 sec)

5.删除hellodb数据库,测试数据恢复

MariaDB [hellodb]> drop database hellodb;
Query OK, 8 rows affected (0.07 sec)

6.导出,未来得及备份的binlog文件

# mysqlbinlog mysql-bin.000011 > /backup/binlog.`date +%F`.sql
并修改导出的binlog文件,删除掉末尾导致数据库删除的sql语句
#vim binlog.2015-04-09.sql
# at 355
#150409  0:15:01 server id 1  end_log_pos 442   Query   thread_id=6104  exec_time=0     error_code=0
SET TIMESTAMP=1428509701/*!*/;
drop database hellodb          (删除此行的误操作sql语句)
/*!*/;
DELIMITER ;
# End of log file

7.开始还原
首先还原完全备份:
# mysql < all-2015-04-08.sql
查看还原的数据:(可以看见完全备份的数据已然恢复回来)
MariaDB [(none)]> use hellodb;
Database changed
MariaDB [hellodb]> show tables;
+-------------------+
| Tables_in_hellodb |
+-------------------+
| classes           |
| coc               |
| courses           |
| scores            |
| students          |
| teachers          |
| text1             |
| toc               |
+-------------------+
8 rows in set (0.02 sec)

接着还原增量备份:
# mysql < zlbf-2015-04-09.sql
查看还原的数据:(可以看到增量备份以前的数据也已经恢复)
MariaDB [(none)]> use hellodb;
Database changed
MariaDB [hellodb]> show tables;
+-------------------+
| Tables_in_hellodb |
+-------------------+
| classes           |
| coc               |
| courses           |
| scores            |
| students          |
| teachers          |
| test2             |
| text1             |
| toc               |
+-------------------+
9 rows in set (0.03 sec)

接着通过binlog文件恢复未备份的数据:
# mysql < binlog.2015-04-09.sql
查看还原的数据:(未备份时候删除的text1表也已经成功删除,可以看到未备份的数据也成功恢复)
MariaDB [(none)]> use hellodb;
Database changed
MariaDB [hellodb]> show tables;
+-------------------+
| Tables_in_hellodb |
+-------------------+
| classes           |
| coc               |
| courses           |
| scores            |
| students          |
| teachers          |
| test2             |
| toc               |
+-------------------+
8 rows in set (0.00 sec)
至此备份恢复实验完成;


运维网声明 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-233902-1-1.html 上篇帖子: xtrabackup备份msyql数据库 下篇帖子: ERROR 1201 (HY000):Could not initialize master info structure的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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