一、数据库数据备份

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数据备份及恢复详细操作的更多相关文章

  1. MySQL数据备份和恢复

    1.数据备份 mysqldump -uroot -p databasename > file.sql 2.数据还原 mysql -u root -p databasename < file ...

  2. mysql数据备份及恢复

    备份工具 mysqldump mysqldump是mysql和mariadb上最好的备份工具之一,免费开源. mysqldump 首先查询每个数据库和每个表的结构与数据,然后把查出的所有内容导出到文本 ...

  3. mysql 数据库备份,恢复。。。。

    mysql 数据备份,恢复,恢复没写,这里只写了备份... 先暂作记录吧! 备份:表结构和数据完全分开,默认有一个文件会记录所有表的结构,然后表中数据的备份 如果超过分卷的大小则会分成多个文件,不然则 ...

  4. MySQL数据库的数据备份和恢复(导入和导出)命令操作语法【转】

    不管是Oracle数据库还是SQL Server数据库,每个数据库都有自己的一套数据备份和恢复的方法,MySQL数据库也不例外.MySQL数据库备份和恢复用到了两个命令,分别是“mysqldump”和 ...

  5. MySQL数据备份之mysqldump使用(转)

    mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...

  6. MySQL的备份和恢复-mysqldump

    MySQL的备份和恢复-mysqldump 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么需要备份 1>.做灾难恢复 天有不测风云嘛,如果你的服务器被黑客攻击了(比 ...

  7. innobackupex不停库的数据备份并恢复到别的服务器上【转】

    1.innobackupex原理: 备份原理 1).首先会开启一个后台检测进程,实时检测myql redo的变化,一旦发现redo中有新日志写入,立即将日志记入后台日志文件xtrabackup_log ...

  8. SQL学习笔记六之MySQL数据备份和pymysql模块

    mysql六:数据备份.pymysql模块   阅读目录 一 IDE工具介绍 二 MySQL数据备份 三 pymysql模块 一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测 ...

  9. MySQL数据备份与还原(mysqldump)

    一 mysqldump指令实现数据备份.mysql指令实现数据还原 经常有朋友问我,DBA到底是做什么的,百科上说:数据库管理员(Database Administrator,简称DBA),是从事管理 ...

随机推荐

  1. java8 lambda表达式和函数式编程

    什么是函数式接口(Functional Interface) 其实之前在讲Lambda表达式的时候提到过,所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法 (可以有def ...

  2. 通过refresh响应头,定时刷新或隔n秒跳转页面

    package day08; import java.io.IOException; import javax.servlet.ServletException; import javax.servl ...

  3. Go版本管理--处理不兼容

    目录 1. 简介 2.能否引起不兼容的包 3.如何处理incompatible 1. 简介 Go module的版本选择机制,其中介绍了一个Module的版本号需要遵循v<major>.& ...

  4. RabbitMq安装(单点与集群)rabbitMq以及状态查询

    集群进入某个节点查看指令:rabbitmqctl cluster_status单机版:docker run -d --name rabbit \-e RABBITMQ_DEFAULT_USER=adm ...

  5. 「萌新指南」SOA vs. 微服务:What’s the Difference?

    实话实说,在我还没有实习之前,我是连 SOA 是啥都不知道的,只听说过微服务,毕竟微服务实在太火了,想不知道都难,我觉得实习的时候肯定也是微服务,进组之后发现是 SOA 架构,当时都懵了,看了很多文档 ...

  6. 阿里云服务器上部署java项目(安装jdk,tomcat)

    安装JDK a.执行下面的yum指令安装,无线配置环境变量. 1.yum -y update #首先更新一下YUM源2.yum list Java* ---------#列出所有的JDK 3.yum ...

  7. 登录用户出现‘’-bash-4.2$‘’的问题解决

    Linux系统切换用户时如显示的是-bash-4.2# 而不是user@主机名 + 路径的显示方式,以往一直用的脚本也不能执行起来: 原因是在用useradd添加普通用户时,有时会丢失家目录下的环境变 ...

  8. Java基础(三)——内部类

    一.内部类 内部类(Inner Class)就是定义在一个类里面的类.与之对应,包含内部类的类被称为外部类.内部类可以用private修饰. 1.为什么要定义内部类?或者内部类的作用是什么? 内部类提 ...

  9. client-go实战之五:DiscoveryClient

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  10. 板子题 Sol

    RT Cyber_Tree 出了一道板子题... 这题乍看之下貌似还不戳,但如果您做过类似的题,那么这就是一道板子题.... 首先明确要求的是什么,如果我们只考虑权值最大而不考虑最小距离,那么要求的显 ...