MySQL备份恢复(生产)

原创 2015年11月17日 16:05:25

备份机制

增量备份:
按天备份(中小公司):
优点:恢复时间短、 维护成本低
缺点:占用空间大、占用系统资源多

按周备份(大公司):
优点:占用空间小、占用系统资源少
缺点:恢复时间长、 维护成本高

一主多从。(生产环境必备)

备份用途

1、迁移或者升级数据库
2、增加从库
3、误操作数据库
4、灾备

备份恢复

锁表或者禁止写入(停止应用等)
mysqladmin flush-logs (恢复前,切割下日志。保障新数据写到切割后的日志中)
sql_log_bin(恢复时关闭,恢复后开启)


MySQL备份恢复和sql_log_bin参数

--备份数据库(db)
[root@mysql data]# mysqldump -S /data/3306/mysql.sock -uroot -p123456 --master-data=2 --single-transaction -F -B db|gzip >/opt/bak/mysql_backup_db_$(date +%F).sql.gz
[root@mysql bak]# gzip -d /opt/bak/mysql_backup_db_2015-11-17.sql.gz 

--查看备份后的日志开始位置
[root@mysql bak]# grep -i "change" /opt/bak/mysql_backup_db_2015-11-17.sql 
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000024', MASTER_LOG_POS=107;

--误操作,删除数据库
mysql> drop database db;

--恢复数据库
[root@mysql 3306]# mysql -S /data/3306/mysql.sock  -uroot -p123456 </opt/bak/mysql_backup_db_2015-11-17.sql 

--处理备份后操作的日志数据
[root@mysql 3306]# mysqlbinlog mysql-bin.000024 -d db >/opt/bak/bin.log

--注释掉误操作SQL,恢复日志
[root@mysql 3306]# mysql -S /data/3306/mysql.sock  -uroot -p123456 </opt/bak/bin.log 

--查看恢复数据库产生的日志信息
[root@mysql 3306]# mysqlbinlog  mysql-bin.000024 -d db > /opt/bak/bin1.log
[root@mysql 3306]# cat /opt/bak/bin1.log

--恢复数据库时关闭写日志功能
mysql> show variables like '%log_bin%';
 +---------------------------------+-------+
 | Variable_name                   | Value |
 +---------------------------------+-------+
 | log_bin                         | ON    |
 | log_bin_trust_function_creators | OFF   |
 | sql_log_bin                     | ON    |
 +---------------------------------+-------+
mysql> set  sql_log_bin = 0;
mysql> show variables like '%log_bin%';
 +---------------------------------+-------+
 | Variable_name                   | Value |
 +---------------------------------+-------+
 | log_bin                         | ON    |
 | log_bin_trust_function_creators | OFF   |
 | sql_log_bin                     | OFF   |
 +---------------------------------+-------+

--关闭写日志功能后查看恢复数据库产生的日志
[root@mysql 3306]# mysqladmin -S /data/3306/mysql.sock  -uroot -p123456 flush-logs
[root@mysql 3306]# mysql -S /data/3306/mysql.sock  -uroot -p123456 </opt/bak/mysql_backup_db_2015-11-17.sql 
[root@mysql 3306]# mysql -S /data/3306/mysql.sock  -uroot -p123456 </opt/bak/bin.log 
[root@mysql 3306]# mysqlbinlog  mysql-bin.000025 -d db > /opt/bak/bin2.log
[root@mysql 3306]# cat /opt/bak/bin2.log

--恢复完成后,开启写日志功能
mysql> set  sql_log_bin = 1;

屌炸天实战 MySQL 主从复制、备份恢复方案生产环境实战

那好吧,读这篇文章的人好帅啊! 元芳,你怎么看?使劲在下面评论吧。 你给我点赞,我教你实战!   本章内容: 主从复制简介原理备份主库及恢复从库,配置从库生效读写分离如果主宕机了,怎么办...

php源码,MySQL数据备份恢复

  • 2016年12月31日 01:38
  • 7KB
  • 下载

mysql之 Innobackupex(全备+增量)备份恢复

1. 准备实验环境 mysql> select version(); +------------+ | version()  | +------------+ | 5.6.25-log | +----...

阿里MySQL备份恢复指南

  • 2015年11月19日 16:51
  • 251KB
  • 下载

MySQL备份恢复之XtraBackup

一、 简介         我们知道,针对InnoDB存储引擎,MySQL本身没有提供合适的热备工具,ibbackup虽是一款高效的首选热备方式,但它是是收费的。好在Percona公司给大家提供了一个...

MySQL实践备份恢复与主从复制

  • 2017年04月11日 14:35
  • 1.43MB
  • 下载

【译】MySQL如何从完全备份恢复单个InnoDB表

【译】MySQL如何从完全备份恢复单个InnoDB表 文档信息: 原文: http://www.mysqlperformanceblog.co...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL备份恢复(生产)
举报原因:
原因补充:

(最多只允许输入30个字)