一、数据库数据备份

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. jQuery中ajax请求的六种方法(三、一):$.ajax()方法

    1.基础的$.ajax()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  2. 刷题-力扣-541. 反转字符串 II

    541. 反转字符串 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-string-ii 著作权归领扣网络所有. ...

  3. vue中的v-cloak指令

    v-cloak不需要表达式,它会在vue实例结束编译时从绑定的html元素上移除,经常和display:none;配合使用: <div id="app" v-cloak> ...

  4. Linux Ubuntu SVN图形界面 安装使用

    安装 sudo apt-get install rapidsvn 使用 rapidsvn

  5. system的使用

    <stdio.h>       std是一个标准库,i =input   o =output      标准输入输出库    .h头文件   system的使用   功能:在已经运行的程序 ...

  6. JDK1.8源码(八)——java.lang.ThreadLocal类

    https://www.cnblogs.com/xdd666/p/14734047.html ThreadLocal https://www.cnblogs.com/yanfei1819/p/1473 ...

  7. Tars | 第5篇 基于TarsGo Subset路由规则的Java JDK实现方式(上)

    目录 前言 1. 修改.tars协议文件 1.1 Go语言修改部分 1.2 修改地方的逻辑 1.3 通过协议文件自动生成代码 2. [核心]增添Subset核心功能 2.1 Go语言修改部分 2.2 ...

  8. aes加解密后续问题contentType不是application/json时候后台解析请求对象request

    一.post请求的三种content-type 1.application/x-www-form-urlencoded 主要用于如下:1.1: 最常见的POST提交数据方式.1.2:原生form默认的 ...

  9. go中如果想要实现别人写的接口,如何保证确实实现了那个接口而不是错过了什么?

    在类型的实现方法上定义通用代码指令 var _ 要实现的接口  = (receiver类型)(nil) 比如要定义一个web处理程序 type  handler_def struct{} var _ ...

  10. Zookeeper Acl权限 超级用户权限 怎么跳过ACL密码/账户验证

    Zookeeper的一个节点不知道什么原因无法删除了,查看日志发现是没有权限, 我们之前使用ACL进行Zookeeper节点的权限管理. 可以解决以下三种但不限于以下三种问题: 1.在设置Acl权限时 ...