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 安装简要步骤如下图: ...
随机推荐
- vulnhub靶机djinn:1渗透笔记
djinn:1渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/djinn-1,397/ 信息收集 首先我们嘚确保一点,kali机和靶机处于同一网段,查看kali i ...
- 【Flutter】Flutter C/C++ 插件的开发 (支持 windows、macos、ios、android )
一个各平台调用 C/C++ 源码的例子,如何共享代码,配置相关的编译 官方的例子:https://docs.flutter.dev/development/platform-integration/c ...
- web前端教程《每日一题》(1-99)完结
第1期(2016年4月6日): (1)js中关闭当前窗口的方法是:window.close(); 第2期(2016年4月7日): (1)js中使字符串中的字符变为小写的方法是:toLowerCase方 ...
- 原生js实现架子鼓特效
这是代码完成的效果,按下abcd会出现对应的架子鼓音乐的效果. 简单的介绍下代码思路,html和css部分就不多说了. 重要的是js部分. 大致是这样的, 首先获取到所有的按钮为一个数组,然后遍历整个 ...
- Day05 - Flex 实现可伸缩的图片墙 中文指南
Day05 - Flex 实现可伸缩的图片墙 中文指南 作者:liyuechun 简介:JavaScript30 是 Wes Bos 推出的一个 30 天挑战.项目免费提供了 30 个视频教程.30 ...
- ubantu14.04系统设置无法正常使用
方法一:执行命令: sudo apt-get install ubuntu-desktop方法二:如果系统设置打不开,请重新安装gnome-control-centersudo apt-get ins ...
- java的命令行参数到底怎么用,请给截图和实际的例子
8.2 命令行参数示例(实验) public class Test { public static void main(String[] args){ if(args.length ...
- linux-RHEL7.0 —— 《Linux就该这么学》阅读笔记
目录 linux-RHEL7.0 安装部署 修改root密码 RPM(红帽软件包管理器) YUM(软件仓库) Systemd初始化进程 总结 linux命令 帮助命令 man 系统工作命令 echo ...
- python---替换空格
""" 请实现一个函数,将一个字符串中的每个空格替换成"%20". 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are ...
- 网卡激活-up(dhcp方式获得ip)
一次修复记录 采样: [root@fp-web-124 network-scripts]# cat /etc/redhat-release CentOS Linux release 7.2.1511 ...