mysql数据库备份、恢复文档
说明:
为了加强线上数据库安全,避免研发人员误操作造成数据的丢失,制作本文档。一线运维人员可以参考!
一、数据备份:
专用数据库备份服务器,定时对数据库进行热备、冷备,即主从设置、mysqldump冷备、mysql-bin-log日志备份。
1.主从设置及主备切换:(请参考文档:mysql主从配置&&基于keepalived的主备切换 http://swht1278.blog.51cto.com/7138082/1716812)
2.数据库冷备:使用mysqldump进行冷备份
mysqldump -h 10.124.x.x -u user -p Passwd --all-databases > /opt/data/all_databases.sql
#mysqldump --host=x.x.x.x --port=Port --user=user --password Passwd --all-databases --events --routines --master-data=2 > dump.sql
3.bin-log日志备份:
1)开启binlog功能:
vim /etc/my.cnf
=================================
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
=================================
service mysql restart
2)binlog日志备份:
从数据库:停止slave状态:
mysql -h[从库IP] -u user -p
mysql>stop slave;
主数据库:tar czf mysql_M_binlog_$date.tar.gz /home/mysql/data/mysql-bin*
scp -P port mysql_M_binlog_$date.tar.gz user@[备份服务器]:/data/mysql/
3)利用mysqlbinlog工具进行binlog的备份工作
mysqlbinlog --read-from-remote-server --host=x.x.x.x --port=Port --user=user --password=$passwd --result-file=/backup/ --raw --stop-never mysql-bin.000001
备注:--read-from-remote-serve参数表明要连接至该server请求其二进制日志;
--raw参数表明输出二进制格式的文件而非文本格式;
--stop-never参数使备份命令保持连接进行持续备份(默认是备份完毕接着断开);
--result-file=/backup/参数指定文件存储到指定目录下面/backup/mysql-bin.000001,日志文件名称默认是不改变的,如果使用--result-file=x则会输出xmysql-bin.000001,所以这个参数还具有修改文件前缀的功能;
4)自动化定期备份脚本:
...后续更新
二、数据恢复:
数据恢复涉及到先后顺序,并且涉及到程序写入数据的问题,所以在数据恢复的时候一定要注意。另外,mysqldump备份的sql文件只能恢复数据库指定时间段的数据,而且当数据库的结构遭到损坏的时候,数据是恢复不了的。bin-log备份恢复的时候可以精确到秒级的数据,而且整个数据库结构都是可以保留完整的。
binlog数据恢复有成‘日志回滚’,如果bin-log日志也不甚丢失,那么数据库恢复的可能性基本上不大了。所以对于bin-log日志的备份工作一定要重视起来!
1.停止程序:
该步骤访问用户调用程序往数据库中写数据,造成数据库前后出现很大的误差,或者造成数据库的结构出现问题
2.使用mysqldump的备份文件恢复:
若发生数据丢失则使用最近的备份来恢复数据
mysql --host=x.x.x.x -uuser -p -P port < dump.sql
根据dump.sql备份文件中-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000018', MASTER_LOG_POS=27284语句中的二进制日志文件名和位置重新执行该坐标之后的二进制日志备份文件中的事件。
3.使用mysqlbinlog工具恢复最新binlog日志数据:
若最新的二进制日志备份文件为mysql-bin.000020,如下重新执行日志事件
mysqlbinlog --start-position=27284 mysql-bin.000018 mysql-bin.000019 mysql-bin.000020| mysql --host=x.x.x.x -uuser -p -P port
4.若使用mysqlbinlog持续备份的方法,则使用下面的命令:
执行如下命令恢复到2015年7月1日13点30开始的数据库状态
mysqlbinlog --start-date=“2015-07-01 13:30” mysqlbinlogxxx |mysql -uuser -p
执行如下命令恢复到2015年7月1日13点30截至的数据库状态
mysqlbinlog --stop-date=“2015-07-01 13:30” mysqlbinlogxxx |mysql -uuser -p
执行如下命令恢复到截至点为368312数据库状态
mysqlbinlog --stop-position="368312" /home/mysql/mysql-bin.000020 | mysql -u root -pmypwd
执行如下命令恢复到开始点为368315数据库状态
mysqlbinlog --start-position="368315" /home/mysql/mysal-bin.000020 | mysql -u root -pmypwd
参考:
Mysql_binlog备份恢复模式 :http://blog.chinaunix.net/uid-25492475-id-195432.html
结合mysqlbinlog与mysqldump进行MySQL数据备份与恢复(适用于较小的数据量):http://blog.csdn.net/zyz511919766/article/details/14229335
mysql 通过bin-log恢复数据方法详解 :http://www.111cn.net/database/mysql/51632.htm
转载于:https://blog.51cto.com/nanfeibobo/1718658
mysql数据库备份、恢复文档相关推荐
- 浅谈MySQL数据库备份的几种方法
mysql常见的备份方式有:mysqldump.mysqlhotcopy.BACKUP TABLE .SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据 ...
- java计算机毕业设计古玩玉器交易系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计古玩玉器交易系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计古玩玉器交易系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...
- MySQL Study之--Mysql数据库备份工具(mysqldump)
MySQL Study之--Mysql数据库备份工具(mysqldump) 对于Mysql Database的备份方式有很多种,此次文档主要介绍mysqldump工具: mysqldump: ...
- java计算机毕业设计在线点餐系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计在线点餐系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计在线点餐系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...
- 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档)
计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 本源码技术栈: 项目 ...
- MYSQL数据库备份方法及策略
MYSQL数据库备份方法及策略 前言 Xtrabackup实战 Percona-xtrabackup 备份实战 ( 1 ) 官网下载Percona-Xtrabackup ( 2 )Percona-xt ...
- java计算机毕业设计冠军体育用品购物网站源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计冠军体育用品购物网站源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计冠军体育用品购物网站源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构 ...
- java计算机毕业设计web大学生宿舍管理系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计web大学生宿舍管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计web大学生宿舍管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: ...
- [ MySQL ] 使用Navicat进行MySQL数据库备份 / 还原(Part 1:备份.nb3文件方式)
本文主要讲解如何用Navicat(Navicat Premium ,或者Navicat for mysql)进行MySQL备份和恢复数据库. 本文主要大纲为:使用Navicat备份工具方式进行备份和还 ...
- java计算机毕业设计海城同泽中学图书仓库管理系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计海城同泽中学图书仓库管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计海城同泽中学图书仓库管理系统源码+mysql数据库+系统+lw文档+部署 本源码技 ...
最新文章
- c++ 读文件_C语言处理文件基础知识:文件、流和键盘输入
- 实时监视同步数据库变更,这个框架真是神器
- CODEVS 1205 单词反转
- python中os模块_Python的武器库11:os模块
- java 根据类名示例化类_Java即时类| getEpochSecond()方法与示例
- IIS7配置PHP 报错 对找不到的文件启用文件监视
- 载入内存,让程序运行起来
- 3Dcnn 降假阳性模型调试(三)
- 计算机组成与设计第五版英文_教学设计gt;小学信息技术计算机的组成教师资格证面试模板...
- hdu3068 求一个字符串中最长回文字符串的长度 Manacher算法
- 软件测试工程师面试-常见的python笔试题(一)
- 计算机主板芯片组型号有哪些,怎么才能知道自己的主板芯片的型号?
- 电赛笔记【msp430简介——基于msp430f5529】
- android 阿里hotfix,Android 热修复方案--阿里百川HotFix
- mysql 查询本月所有天数统计对应数据
- abaqus创建路径_Abaqus后处理的四种路径的应用-技术邻社区
- 如何在VI中使用小键盘上的数字键
- 操作系统 | Mac如何更新word中的域
- 神经网络分类器的原理图,神经网络分类器是什么
- Java计算器编程代码