MySQL备份恢复(生产)

备份机制

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

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

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

备份用途

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值