mysql二进制日志和mysql备份工具介绍以及日志恢复
mysql备份:
三种备份方式
冷备:数据库停机,在进行备份
热备:lock table锁表,read 数据库只可以读不能写,在备份
温备:备份时数据库正常运行
备份类型:完整备份:全部备份,部分备份也是完整备份的一个分支,一般用于单独备份某一个数据库而不是备份整个数据库。
差异备份:跟上一次完整备份以后的变化的数据
mysql的物理备份和逻辑备份
物理备份:cp tar rsync等是冷备,需要停机去备份
逻辑备份:mysqldump mysql协议去mysql server查询数据,在通过mysql语句导出数据
完整备份需要备份哪些数据?
/var/lib/mysql binlog /etc/my.cnf tomcat 重启脚本 二进制日志,innodb事务日志,用户账号,权限,程序代码
MyISAM不支持热备份,温备份
InnoDB都支持
一般备份的话需要备份什么?
数据,二进制日志,innodb事务日志,用户账号,权限,程序代码,服务器配置文件
备份工具:
cp tar rsync lv等复制归档工具,这是物理备份工具,适用于所有的存储引擎,只支持冷备份,完全备份和部分备份
MyIASM适用于所有存储引擎,是温备份
InnoDB热备份,结合binlog增量备份
mysqlbackup热备份
二进制日志
概念:记录导致数据库数据改变的SQL语句,能恢复任何节点的数据
功能:通过重放,在另一个数据库生成数据副本,一般二进制日志和数据需要分开存放
二进制日志目录存放位置:/var/lib/mysql,看到有log-bin.00000这种格式就是二进制日志文件,如果需要打开查看,需要使用mysqlbinlog +日志名
查看二进制日志是否开启:
mysql> show variables like '%bin'
-> ;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
| sql_log_bin | ON |
+---------------+-------+
off就是没开启
如何开启二进制日志文件的方法,配置完重启服务,要关闭防火墙和SELINUX
(1)修改配置文件/etc/my.cnf
log-bin=二进制日志文件名(存放路径,不要放在root下面)

server-id=1 #1开启二进制日志,0关闭二进制
二进制日志记录的三种方式
格式1:statement 记录语句方式,日志量少
格式2:row 以行的形式记录数据,日志量较大 ,更加安全
混合:mixed 让系统自行判定使用哪个方式记录
二进制日志文件构成
1.日志文件log-bin.00000二进制格式
2.日志索引文件 log-bin.index
查看有几个binlog日志文件的两种方法:
(1)查看/var/lib/mysql
(2)show binary logs;
mysql> show binary logs;
+----------------+-----------+
| Log_name | File_size |
+----------------+-----------+
| log-bin.000001 | 333 |
| log-bin.000002 | 154 |
+----------------+-----------+
查看当前正在使用的binlog文件:show master status;
mysql> show master status;
+----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| log-bin.000003 | 310 | | | |
+----------------+----------+--------------+------------------+-------------------+
查看某一个pos点的binlog文件表结构:
mysql> show binlog events in 'log-bin.000003'from 154\G;
*************************** 1. row ***************************
Log_name: log-bin.000003
Pos: 154
Event_type: Anonymous_Gtid
Server_id: 1
End_log_pos: 219
Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'
*************************** 2. row ***************************
Log_name: log-bin.000003
Pos: 219
Event_type: Query
Server_id: 1
End_log_pos: 310
Info: create database db2
2 rows in set (0.00 sec)
怎么生成新的二进制日志:
(1)刷新日志:flush logs
(2)重启mysql服务
怎么删除所有二进制日志文件:flush master;
查看二进制日志文件内容:格式:mysqlbinlog 二进制日志文件名
[root@server mysqlbin]# mysqlbinlog log-bin.000002
删除某个日志之前的所有日志:
mysql> show binary logs;
+----------------+-----------+
| Log_name | File_size |
+----------------+-----------+
| log-bin.000001 | 333 |
| log-bin.000002 | 199 |
| log-bin.000003 | 310 |
+----------------+-----------+
3 rows in set (0.00 sec) mysql> purge binary logs to 'log-bin.000002'; #删除00002之前的日志,也就是删除0001的
Query OK, 0 rows affected (0.00 sec) mysql> show binary logs;
+----------------+-----------+
| Log_name | File_size |
+----------------+-----------+
| log-bin.000002 | 199 |
| log-bin.000003 | 310 |
+----------------+-----------+
2 rows in set (0.00 sec)
二进制日志文件怎么恢复:
两种恢复方式:
(1)使用时间点恢复:通常在还原物理备份或者mysqldump备份后,用于还原至备份时的数据
(2)使用事件SID恢复:一般用于还原误操作
要还原二进制日志必须知道当前正在使用的二进制日志文件名和当前事件的位置mysql --logbin-path=master_local
mysqldump 参数:
-A 备份所有数据库
-B 指定单个数据库
--default-character-set utf8
-t 只备份数据
-F --flush-logs刷新二进制日志
备份数据库实例:
[root@mysql ~]# mysqldump -uroot -p123456 -A --master-data=1 > all.sql #把所有数据库备份到all.sql文件下
[root@mysql ~]# vim all.sql #查看备份的内容
mysql二进制日志和mysql备份工具介绍以及日志恢复的更多相关文章
- (3.1)mysql基础深入——mysql二进制与源码目录结构介绍
(3.1)mysql基础深入——mysql二进制与源码目录结构介绍 关键字:二进制目录结构,源码目录结构(编译安装目录结构) 1.二进制安装程序目录结构 [1] BIN -- mysql的可执行文件( ...
- MYSQL数据库日志和mysqlbinlog相关
mysql有4种不同的日志,分别是二进制日志,查询日志,慢查询日志和错误日志,这些日记记录着数据库工作的方方面面,可以帮助我们了解数据库的不同方面的踪迹,下面介绍二进制日志的作用和使用方法. 1.二进 ...
- PHP慢脚本日志和Mysql的慢查询日志
1.PHP慢脚本日志 间歇性的502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的. 在 PHP-FPM 的子进程数目超过的配置中的数量时候,会出 ...
- PHP慢脚本日志和Mysql的慢查询日志(转)
1.PHP慢脚本日志 间歇性的502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的. 在 PHP-FPM 的子进程数目超过的配置中的数量时候, ...
- mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具)
一.概述 由于服务器生成的二进制日志文件以二进制格式保存,所以如果要想检查这些文件的文本格式,就会用到mysqlbinlog日志管理工具. mysqlbinlog的语法如下: mysqlbinlog ...
- 数据误操作,删库跑路?教你使用ApexSQLLog工具从 SQLServer日志恢复数据!
前几天同事不小心误操作,将SQLServer库的一张表的一个状态字段给刷成了一个统一状态,由于是update执行所以原来的相关状态无法确定.发生这种事情的时候我的小伙伴背后 一凉,估计心里里面想这怕是 ...
- mysql 开发进阶篇系列 44 物理备份与恢复( 热备份xtrabackup 工具介绍)
一.概述 物理备份和恢复又分为冷备份和热备份.与逻辑备份相比,它最大优点是备份和恢复的速度更快.因为物理备份的原理都是基于文件的cp. 1.1 冷备份 冷备份就是停掉数据库服务.这种物理备份一般很少使 ...
- MySQL常用的备份方式与备份工具简介
一.MySQL备份方式与备份类型 1.备份的必要性 再生产环境中,为了防止硬件故障.软件故障.自然灾害.误操作等各种原因导致的数据库数据丢失后能恢复到事故之前的状态,我们需要对数据库进行备份和恢复操作 ...
- 简要介绍Apache、php、mysql安装和工具介绍
1 安装Apache 网站:www.Apache.org下载相应的Apache,目前下载了近期的:httpd-2.2.15-win32-x86-openssl-0.9.8msi 安装简要步骤如下图: ...
随机推荐
- django基础环境配置
Django环境搭建 1.下载安装 命令行 pip install django==1.11.21 pip install django==1.11.21 -i 源 pycharm setting - ...
- Creating a File Mapping Object
创建一个文件映射对象 映射一个文件的第一步是通过调用CreateFile函数来打开一个文件.为了确保其他的进程不能对文件已经被映射的那一部分进行写操作,你应该以唯一访问(exclusive acces ...
- 从零开始开发一款H5小游戏(二) 创造游戏世界,启动发条
本系列文章对应游戏代码已开源 Sinuous game 上一节介绍了canvas的基础用法,了解了游戏开发所要用到的API.这篇文章开始,我将介绍怎么运用这些API来完成各种各样的游戏效果.这个过程更 ...
- js 中的submit 回调函数
1.submit.php <?php $arr = $_POST; $arr['msg']=1; //echo $_POST['uname']; echo json_encode($arr); ...
- java中“类”和“对象”到底有什么联系
4.object和Class配合工作原理 [新手可忽略不影响继续学习] Class是"类"的意思,是抽象的,并没有具体的说是哪个东西.而object是具体的,实实在在存在的一 ...
- 字符串反转&说反话
题目描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串.(字符串长度不超过1000) 输入描述: 输入N个字符 输出描述: 输出该字符串反转后的字符串 示例1 输入 abcd 输出 d ...
- HTML 和 form 表单常用标签
HTML和CSS 常用标签: p:段落,自动换行 span:和div类似,但是默认不换行 br:换行 hr:分割线 h1-h6:标题标签 a:超链接 瞄点:通过给a链接设置#XX作为链接,给需要链接的 ...
- macos停止MySQL服务
1.命令行中 使用 find /usr -name mysql 查找自己电脑中MySQL的安装位置 例如我查找到我电脑MySQL安装位置是 /usr/local/Cellar/mysql@5.6/5 ...
- 【Python打包成exe方法】——已解决导入第三方包无法打包的问题
前言 在我们写代码的过程中,我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安 ...
- win11拖动窗口造成崩溃的问题
问题描述 拖动窗口,随机概率出现 屏幕闪烁 屏幕黑屏 屏幕瞬间分屏 解决方法 windowes11贴吧大神给的方案 1,按下 win键+R 输入 regedit 进入注册表,进入以下路径:计算机\HK ...