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 安装简要步骤如下图: ...
随机推荐
- Python - 字符串基础知识
- 知网上的硕士和博士论文怎么下载pdf格式
文献管理使用的EndNote,阅读习惯使用Drawboard,在下载硕士和博士论文时在知网上只能下载caj格式,于是就想找一种能下载pdf的方式. 知乎中有篇文章介绍的如何下载pdf的方法,很管用也很 ...
- CSS5:移动端页面(响应式)
CSS5:移动端页面(响应式) 如果手机端和PC端页面差别很大,就不要写响应式,不要写@media 就直接将两个页面拆开成两个文件就可以了.关于判断是手机端你还是PC端,就交给后端来做只有一些新闻站点 ...
- 如何制作icon-font小图标
1.首先可以去iconfont.cn阿里巴巴矢量字体库中下载你想要的图标(选择格式为SNG格式). 2.打开iconmoon这个网站(这个样子的),然后点击右上角那个Iconfont App如下图: ...
- android 布局的android:padding 和android:margin的区别
android:layout_marginLeft指该控件距离边父控件的边距, android:paddingLeft指该控件内部内容,如文本距离该控件的边距. 如: 当按钮分别设置以上两个属性时,得 ...
- 软件构造实验-百度图像识别api
识别结果: 识别结果:
- 谷歌开发者工具 Network:Disable cache 和 Preserve log
参考博文地址:https://my.oschina.net/af666/blog/871793 Network Disable cache(禁止缓存):勾上,修改代码之后,刷新页面没有更新,看有没有禁 ...
- vuecli中配置webpack加快打包速度
webpack4中webpack 的DllPlugin插件可以将常见的库文件作为dll文件来,每次打包的时候就不用再次打包库文件了. 但是游鱼西在vuecli中已经去除这个选项,意识到带来的打包速度提 ...
- Java报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.sirifeng.babytun.dao.GoodsDAO.findById
前言 最近学vue学得差不多了,想来搭个项目实战一下,结果刚开始搭建SSM框架的时候就来到了我们最喜欢的debug环节 org.apache.ibatis.binding.BindingExcepti ...
- Pinpoint介绍及docker安装方式
一.介绍 Pinpoint是用Java编写的大型分布式系统的APM(Application Performance Management应用程序性能管理)工具,受Dapper论文的启发,Pinpoin ...