mysql数据备份及恢复详细操作
一、数据库数据备份
1、全备
BakDir=/backup/full #创建全备目录
LogFile=/backup/full/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 -phongjun123 --all-databases --lock-all-tables --routines --triggers --events --master-data=2 --flush-logs >$DumpFile #备份
tar zcvf $GZDumpFile $DumpFile #打包
rm $DumpFile
Last=`date +"%Y年%m月%d日 %H:%M:%S"`
echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile 定时任务:每周日凌晨三点打包
#全备
0 3 * * 0 /bin/bash /server/scripts/backfull.sh
2、增备
BakDir=/backup/binlog/ #创建增备目录
BinDir=/application/mysql/data
LogFile=/backup/binlog/bak.log
BinFile=/application/mysql/data/mysql-bin.index
mysqladmin -uroot -phongjun123 flush-logs #备份数据
Counter=`wc -l $BinFile|awk '{print $1}'`
NextNum=0
for file in `cat $BinFile`
do
base=`basename $file`
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $Counter ]
then
echo $base skip! >> $LogFile
else
dest=$BakDir/$base
if (test -e $dest)
then
echo $base exist! >> $LogFile
else
cp -a $BinDir/$base $BakDir/
echo $base copying >> $LogFile
fi
fi
done
echo `date +"%Y年%m月%d日 %H:%M:%S"` $Next Bakup succ~ >> $LogFile 定时任务:每天晚上凌晨备份一次
#增备
0 1 * * * /bin/bash /server/scripts/backup.sh
二、mysql数据库数据恢复
2.1 登录数据库
mysql -uroot -phongjun123
2.2 查看当前的position号
show master status;
2.3 增备及全备
三、例如恢复到九月一号的当天
3.1 思路
上周全备+本周增备
3.2 全备导入数据库
登录数据库
mysql -uroot -phongjun123
mysql> source /tmp/20180827.sql
3.3增备导入
3.3.1思路一
利用增备,备份该天的数据,利用position号码进行截取。以BEGIN开始备,到COMMIT结束,备份的数据才是有效的。
例子:
例:mysql> show binlog events in 'mysql-bin.000043';
3.4查看二进制日志的方法
方法一
mysql -uroot -phongjun123 mysql-bin.000017 |more
方法二:
方法三:
3.5根据BEGING到COMMIT恢复数据
例子:
8月28号的第一个GEGING号和9月1号的最后一个COMMIT号
注:截取position都是以BEGING至COMMIT结束,备份数据才有用。
cd /backup/binlog
mysqlbinlog -uroot -phongjun123 --start-position=120 --stop-position=318 mysql-bin.000018 > /tmp/zhj.sql
将所有二进制文件写在一个文件里执行 cd /data/backup/binlog
mysqlbinlog -uroot -phongjun123 mysql-bin.000036 > /tmp/inc.sql
mysqlbinlog -uroot -phongjun123 mysql-bin.000037 >> /tmp/inc.sql
mysqlbinlog -uroot -phongjun123 mysql-bin.000038 >> /tmp/inc.sql
mysqlbinlog -uroot -phongjun123 mysql-bin.000039 >> /tmp/inc.sql
mysqlbinlog -uroot -phongjun123 mysql-bin.000040 >> /tmp/inc.sql
3.6数据恢复
mysql -uroot -phongjun123 mysql> source /tmp/inc.sql
温馨提示:本文由自己记录,仅作参考,出了问题概不负责。。。。。
复数据
mysql数据备份及恢复详细操作的更多相关文章
- MySQL数据备份和恢复
1.数据备份 mysqldump -uroot -p databasename > file.sql 2.数据还原 mysql -u root -p databasename < file ...
- mysql数据备份及恢复
备份工具 mysqldump mysqldump是mysql和mariadb上最好的备份工具之一,免费开源. mysqldump 首先查询每个数据库和每个表的结构与数据,然后把查出的所有内容导出到文本 ...
- mysql 数据库备份,恢复。。。。
mysql 数据备份,恢复,恢复没写,这里只写了备份... 先暂作记录吧! 备份:表结构和数据完全分开,默认有一个文件会记录所有表的结构,然后表中数据的备份 如果超过分卷的大小则会分成多个文件,不然则 ...
- MySQL数据库的数据备份和恢复(导入和导出)命令操作语法【转】
不管是Oracle数据库还是SQL Server数据库,每个数据库都有自己的一套数据备份和恢复的方法,MySQL数据库也不例外.MySQL数据库备份和恢复用到了两个命令,分别是“mysqldump”和 ...
- MySQL数据备份之mysqldump使用(转)
mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...
- MySQL的备份和恢复-mysqldump
MySQL的备份和恢复-mysqldump 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么需要备份 1>.做灾难恢复 天有不测风云嘛,如果你的服务器被黑客攻击了(比 ...
- innobackupex不停库的数据备份并恢复到别的服务器上【转】
1.innobackupex原理: 备份原理 1).首先会开启一个后台检测进程,实时检测myql redo的变化,一旦发现redo中有新日志写入,立即将日志记入后台日志文件xtrabackup_log ...
- SQL学习笔记六之MySQL数据备份和pymysql模块
mysql六:数据备份.pymysql模块 阅读目录 一 IDE工具介绍 二 MySQL数据备份 三 pymysql模块 一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测 ...
- MySQL数据备份与还原(mysqldump)
一 mysqldump指令实现数据备份.mysql指令实现数据还原 经常有朋友问我,DBA到底是做什么的,百科上说:数据库管理员(Database Administrator,简称DBA),是从事管理 ...
随机推荐
- 读《深入理解java虚拟机》小结
之所以学习 jvm ,是因为在学习多线程相关知识时,对 volatile 关键字理解的不够透彻,总有种似懂非懂的感觉.于是通过在网上各种资料的查阅,最终将 volatile 和 jvm 联系上了,本身 ...
- 详细分析MySQL事务日志(undo log)
2.undo log 2.1 基本概念 undo log有两个作用:提供回滚和多个行版本控制(MVCC). 在数据修改的时候,不仅记录了redo,还记录了相对应的undo,如果因为某些原因导致事务失败 ...
- IoT边缘,你究竟是何方神圣?
摘要:IoT边缘扮演着纽带的作用,连接边缘和云,将边缘端的实时数据处理,云端的强大计算能力两者结合,创造无限的价值. 本文分享自华为云社区<IoT边缘如何实现海量IoT数据就地处理>,作者 ...
- 【MIT6.S081/6.828】手把手教你搭建开发环境
目录 1. 简介 2. 安装ubuntu20.04 3. 更换源 3.1 更换/etc/apt/sources.list文件里的源 3.2 备份源列表 3.3 打开sources.list文件修改 3 ...
- 快速排序(C++)
快速排序 快速排序是面试中经常问到的排序算法 基本思想:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小, 则可分别对这两部分记录继续进行排序,以达到整个序 ...
- TypeScript 中函数的理解?与 JavaScript 函数的区别?
一.是什么 函数是JavaScript 应用程序的基础,帮助我们实现抽象层.模拟类.信息隐藏和模块 在TypeScript 里,虽然已经支持类.命名空间和模块,但函数仍然是主要定义行为的方式,Type ...
- QT 4.7.3 交叉编译环境搭建
测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 交叉编译器:arm-linux-gcc 4.4.4 tsl ...
- CSP 2021 游记
\(\text{Day -INF}\) 看见了 \(\text{SCP2021}\) 的报名通知,想着应该教练会让我们统一报名,就没放在心上 然后-- 然后过了二十多天教练根本没有提报名的事情,搞得我 ...
- Linux - 安装 ant
官方下载地址 https://ant.apache.org/bindownload.cgi 旧版下载地址 https://archive.apache.org/dist/ant/binaries/ 挑 ...
- openswan协商流程之(七):main_inR3
主模式第六包(收包):main_inR3 1. 序言 main_inR3()函数是ISAKMP协商过程中第一阶段的最后一个报文的接收处理函数,它的作用同main_inI3_outR3()部分功能相同: ...