mysql数据库备份、恢复文档

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

说明:


为了加强线上数据库安全,避免研发人员误操作造成数据的丢失,制作本文档。一线运维人员可以参考!

一、数据备份:

专用数据库备份服务器,定时对数据库进行热备、冷备,即主从设置、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










本文转自 南非波波 51CTO博客,原文链接:http://blog.51cto.com/nanfeibobo/1718658,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
存储 关系型数据库 MySQL
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
252 4
|
19天前
|
自然语言处理 搜索推荐 关系型数据库
MySQL实现文档全文搜索,分词匹配多段落重排展示,知识库搜索原理分享
本文介绍了在文档管理系统中实现高效全文搜索的方案。为解决原有ES搜索引擎私有化部署复杂、运维成本高的问题,我们转而使用MySQL实现搜索功能。通过对用户输入预处理、数据库模糊匹配、结果分段与关键字标红等步骤,实现了精准且高效的搜索效果。目前方案适用于中小企业,未来将根据需求优化并可能重新引入专业搜索引擎以提升性能。
|
27天前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课5 在线备份
本文介绍了如何在PolarDB RAC一写多读集群中进行在线备份,特别针对共享存储模式。通过使用`polar_basebackup`工具,可以将实例的本地数据和共享数据备份到本地盘中。实验环境依赖于Docker容器中用loop设备模拟的共享存储。
32 1
|
9天前
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
6月前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
921 11
|
2月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
2月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌
|
2月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
2月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
4月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
326 3

热门文章

最新文章