MySQL使用mysqldump备份及还原
MySQL可以使用mysqldump进行数据的逻辑备份,配合开启bin log日志可以实现数据的全量恢复及增量恢复
MySQL版本查看

修改配置文件记录bin log日志
[mysqld]
#bin log日志记录位置
log-bin=/opt/mysqldata/prodda3306data/mysql-bin
binlog_cache_size = 4M
max_binlog_cache_size = 256M
max_binlog_size = 32M
#日志模式为row 生产环境最好使用此日志模式
binlog_format = row
expire_logs_days = 7
登录MySQL终端查看日志模式
show variables like "binlog_format";

查看bin log日志的POS值
show master status;
制定备份脚本每日定时备份,把该脚本运行定时任务每日凌晨全备并且在备份是时候记录bin log的POS位置值
#!/bin/bash
source /etc/profile
#mysqldump to fully backup mysql data
port=$1
password='password'
if [ $# -ne 1 ];then
echo "Usage: sh all.sh (3306|3307)"
exit 1
fi
psocket=`ps -ef|grep $port|grep "socket"|awk -vRS="--socket" '{t=$0;}END{print "--socket"t}'|awk '{print $1}'`
if [ -f /root/.bash_profile ];then
source /root/.bash_profile
fi
#定义备份目录
BakDir=/opt/mysqlbak/full${port}
[ ! -d $BakDir ] && mkdir -p $BakDir
LogFile=$BakDir/bak.log
Date=`date +%Y%m%d`
Begin=`date +"%Y年%m月%d日 %H:%M:%S"`
cd $BakDir
DumpFile=$Date.sql
GZDumpFile=$Date.sql.tgz
mysqldump -uroot -p"$password" --all-databases --lock-all-tables --routines --triggers --events --master-data=2 --flush-logs $psocket --set-gtid-purged=OFF > $DumpFile
tar zcvf $GZDumpFile $DumpFile
if [ -f $DumpFile ];then
rm -rf $DumpFile
fi
Last=`date +"%Y年%m月%d日 %H:%M:%S"`
echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile
sleep 1
#删除超过10天的全备文件
find $BakDir -name "*.tgz" -mtime +10 -exec rm -rf {} \;
恢复
全备恢复,把备份文件解压缩,把解压后的文件打开查看POS值(在22行左右)

使用全备进行全量恢复,恢复前需管理前端应用已避免数据混乱
mysql -uroot -p123456 -h127.0.0.1 < 20190117.sql
使用bin log进行增量恢复,为测试恢复效果在master主机上面新建数据库及表
create database test;
use test
create table test(id int);
insert into test values(1);
select * from test;
创建一个test库和test表,并且往表里面插入一条数据

把mysql-bin.001446及以后的日志(如果有的话)都拷贝下来
使用mysqlbinlog命令还原日志,对于001446需要指定start position值,其他001446以后的日志(如果有的话)还原不需要指定start position值
mysqlbinlog mysql-bin.001446 --start-position=194 > 20190117binlog.sql
还原
mysql -uroot -p123456 -h127.0.0.1 < 20190117binlog.sql
查看是否还原

全量及增量备份恢复成功
PS:如果想针对单库进行增量恢复可以在mysqbinlog到处的时候加参数-d 例如
mysqlbinlog -d test mysql-bin.001446
MySQL使用mysqldump备份及还原的更多相关文章
- mysql之mysqldump——备份与还原
导出数据库里的某一张表 [root@localhost ~]# mysqldump -uroot -p test bptest>fi.mysql #导出test数据库中的bptest表 Ente ...
- mysqldump备份与还原mysql数据的实例
有关mysql数据库的备份与还原,我们一般用下面两种方式来处理:1.使用into outfile 和 load data infile导入导出备份数据 本文原始链接:http://www.jbxue. ...
- mysql数据库的备份和还原的总结
mysql数据库的备份和还原的总结 (来自一运维同事的总结) 1. 备份方式: 热备:数据库在线进行备份,不影响读和写的在线备份方式! 温备:数据库在线进行备份,对表备份时先锁定写操作,仅可以执行读操 ...
- MySQL数据库的备份、还原、迁移
一.单库备份与还原 1.远程连接MySQL数据库 D:\mysql-5.7.14-winx64\bin>mysql -h192.168.2.201 -uroot -pcnbi2018 参数说明: ...
- 如何用SQL语句实现Mysql数据库的备份与还原
以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...
- MySQL 的mysqldump备份
MySQL 的mysqldump备份 来自<mysql技术内幕 innodb存储引擎> --single-transaction:只对innodb表有效 --lock-tables:对My ...
- mysql的日志及利用mysqldump备份及还原
日志文件:6类 一般查询日志:log,general_log,log_output 慢查询日志: 错误日志 二进制日志 中继日志 ...
- java实现mysql数据库的备份及还原
备份: public static void backup() { try { Runtime rt = Runtime.getRuntime(); // 调用 调用mysql的安装目录的命令 Pro ...
- mysql 数据库的备份和还原
1. 逻辑备份 (和存储引擎无关) mysqldump -uroot -p schoolDB TSubject > /mysqlbackup/schoolDB.TSubject.sql (备份 ...
随机推荐
- MDX 查询原型
本篇文章记录 SBS 中 MDX 查询原型,可以根据这些查询原型来解决实际项目中的问题. 1. 查询在 2004年1月2日 - 2004年3月1日之间购买过 Bikes 产品的用户. SELECT ( ...
- SpringCloud分布式事务TCC实现
可以参考 http://www.txlcn.org/ 的实现方式
- 记一次数据库参数compatible降级[转]
转:http://dbzone.iteye.com/blog/1042455 众所周知,Oracle参数compatible 主要用于启用Oracle针对某一版本的新特性.但此参数设置时,只能往上调, ...
- 9.4 翻译系列:EF 6以及 EF Core中的NotMapped特性(EF 6 Code-First系列)
原文链接:http://www.entityframeworktutorial.net/code-first/notmapped-dataannotations-attribute-in-code-f ...
- DNS-320 B2 语言包
神一样的NAS啊,这个语言包在这里http://tsd.dlink.com.tw/downloads2008detailgo.asp,选择sc的就可以了. 真是神一样的配置~ 佩服死d-link了
- 第三部分:Android 应用程序接口指南---第二节:UI---第九章 搜索
第9章 搜索 在android平台上搜索是一个核心的用户功能.无论内容位于设备或网络上,用户应该能够搜索任何对它们可用的数据.为了创建一个一致的用户搜索体验,Android平台提供了一个搜索框架帮助你 ...
- 升级python(linux)
查看系统当前python版本 2: [root@wangyuelou ~]# python Python 2.4.3 (#1, May 5 2011, 16:39:10) [GCC ...
- python bottle框架 解决跨域问题的正确方式
经查询,网上有几种说法 https://www.cnblogs.com/EmptyFS/p/6138923.html 我首先查到的就是这个,我采用了文中所说的修改源码的方式, 但是经测试发现,修改源码 ...
- 如何快速学习Scala
大数据学习过程中,会学习非常多的技术,但SCALA无疑是必不可少,那我们在大数据技术的学习过程中,如何快速的认识scala,并且学习它,感谢科多大数据公司的余老师提供的详细素材,本人整理成章,希望对你 ...
- MXNET:权重衰减
权重衰减是应对过拟合问题的常用方法. \(L_2\)范数正则化 在深度学习中,我们常使用L2范数正则化,也就是在模型原先损失函数基础上添加L2范数惩罚项,从而得到训练所需要最小化的函数. L2范数惩罚 ...