MySQL 全备份与增量备份 全恢复与增量恢复
2015-09-28 16:08
736 查看
一,全备份 与 全恢复
1、vim /root/db_backup/mysqldump_mraz.php,内容如下:
<?php
date_default_timezone_set("PRC");
$d = date("Ymd-His");
exec("/usr/local/mysql/bin/mysqldump -uroot -p111111 mraz > mraz-".$d.".sql");
2、进入crontab -e,设置每分钟备份一次(更安全的做法是将备份文件通过scp传到更安全的地方)
*/1 * * * * /usr/local/php/bin/php /root/db_backup/mysqldump_mraz.php
3、全恢复,进入mysql,执行
source /root/db_backup/mraz-20150928-160404.sql
二,增量备份 与 增量备份恢复
1、配置my.cnf,启用二进制备份,vim /etc/my.cnf,配置log-bin目录
源码安装的默认是log-bin=mysql-bin,对应的是/usr/local/mysql/var/
(ps:rpm包安装的话,可以自定义设置为log-bin=/var/mysqlbinlog/)
2、启动mysql后,对应log-bin目录会生成(更安全的做法是将二进制日志文件通过scp传到更安全的地方)
mysql-bin.index 索引文件
mysql-bin.000001 二进制增量备份文件
3、查看二进制备份文件,根据时间和位置恢复(PS:先记录出现故障前的时间,再查看全备份文件的时间)
cd /usr/local/mysql/var/
/usr/local/mysql/bin/mysqlbinlog mysql-bin.000015
3.1、例如:
#150826 12:05:45 server id 1 end_log_pos 202 Querythread_id=40
exec_time=0error_code=0
3.2、150826 12:05:45为时间,202为位置
4、恢复(PS:先记录出现故障前的时间,再查看全备份文件的时间)
按时间恢复(一般start-datetime是全备份的时间,stop-datetime是出现故障前的时间)
/usr/local/mysql/bin/mysqlbinlog --stop-datetime='2015-08-26 12:05:44' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
或者
/usr/local/mysql/bin/mysqlbinlog --start-datetime='2015-08-26 12:05:44' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
或者
/usr/local/mysql/bin/mysqlbinlog --start-datetime='2015-09-28 15:48:08' --stop-datetime='2015-09-28 15:50:10' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
按位置恢复
/usr/local/mysql/bin/mysqlbinlog --stop-position='202' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
或者
/usr/local/mysql/bin/mysqlbinlog --start-position='201' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
或者
/usr/local/mysql/bin/mysqlbinlog --start-position='201' --stop-position='202' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
1、vim /root/db_backup/mysqldump_mraz.php,内容如下:
<?php
date_default_timezone_set("PRC");
$d = date("Ymd-His");
exec("/usr/local/mysql/bin/mysqldump -uroot -p111111 mraz > mraz-".$d.".sql");
2、进入crontab -e,设置每分钟备份一次(更安全的做法是将备份文件通过scp传到更安全的地方)
*/1 * * * * /usr/local/php/bin/php /root/db_backup/mysqldump_mraz.php
3、全恢复,进入mysql,执行
source /root/db_backup/mraz-20150928-160404.sql
二,增量备份 与 增量备份恢复
1、配置my.cnf,启用二进制备份,vim /etc/my.cnf,配置log-bin目录
源码安装的默认是log-bin=mysql-bin,对应的是/usr/local/mysql/var/
(ps:rpm包安装的话,可以自定义设置为log-bin=/var/mysqlbinlog/)
2、启动mysql后,对应log-bin目录会生成(更安全的做法是将二进制日志文件通过scp传到更安全的地方)
mysql-bin.index 索引文件
mysql-bin.000001 二进制增量备份文件
3、查看二进制备份文件,根据时间和位置恢复(PS:先记录出现故障前的时间,再查看全备份文件的时间)
cd /usr/local/mysql/var/
/usr/local/mysql/bin/mysqlbinlog mysql-bin.000015
3.1、例如:
#150826 12:05:45 server id 1 end_log_pos 202 Querythread_id=40
exec_time=0error_code=0
3.2、150826 12:05:45为时间,202为位置
4、恢复(PS:先记录出现故障前的时间,再查看全备份文件的时间)
按时间恢复(一般start-datetime是全备份的时间,stop-datetime是出现故障前的时间)
/usr/local/mysql/bin/mysqlbinlog --stop-datetime='2015-08-26 12:05:44' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
或者
/usr/local/mysql/bin/mysqlbinlog --start-datetime='2015-08-26 12:05:44' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
或者
/usr/local/mysql/bin/mysqlbinlog --start-datetime='2015-09-28 15:48:08' --stop-datetime='2015-09-28 15:50:10' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
按位置恢复
/usr/local/mysql/bin/mysqlbinlog --stop-position='202' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
或者
/usr/local/mysql/bin/mysqlbinlog --start-position='201' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
或者
/usr/local/mysql/bin/mysqlbinlog --start-position='201' --stop-position='202' /usr/local/mysql/var/mysql-bin.000015 | /usr/local/mysql/bin/mysql -uroot -p
相关文章推荐
- Mysql 主从复制-原理篇
- 101个MySQL开源数据库调试和优化技巧
- mysql 循环插入
- 5.5.xx MySQL 编译安装
- rsyslog+mysql+loganalyzer 环境搭建日志服务器
- mysql拼音转化
- 如何解决局域网内mysql数据库连接慢
- mysql带参存储过程小例子
- mysql 数据库操作
- mysql学习之配置及常见命令
- MySQL存储过程调试工具-dbForge Studio for MySQL
- mysql EXPLAIN--执行计划
- MySql集群搭建
- sails 与mysql的连接
- mysql 数据表读锁机制详解
- Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- mysql 触发器中操作 动态表名 的解决办法
- mysql 操作 指南
- MySql批量更新方法
- MySql批量更新方法