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备份工具介绍以及日志恢复的更多相关文章

  1. (3.1)mysql基础深入——mysql二进制与源码目录结构介绍

    (3.1)mysql基础深入——mysql二进制与源码目录结构介绍 关键字:二进制目录结构,源码目录结构(编译安装目录结构) 1.二进制安装程序目录结构 [1] BIN -- mysql的可执行文件( ...

  2. MYSQL数据库日志和mysqlbinlog相关

    mysql有4种不同的日志,分别是二进制日志,查询日志,慢查询日志和错误日志,这些日记记录着数据库工作的方方面面,可以帮助我们了解数据库的不同方面的踪迹,下面介绍二进制日志的作用和使用方法. 1.二进 ...

  3. PHP慢脚本日志和Mysql的慢查询日志

    1.PHP慢脚本日志 间歇性的502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的. 在 PHP-FPM 的子进程数目超过的配置中的数量时候,会出 ...

  4. PHP慢脚本日志和Mysql的慢查询日志(转)

      1.PHP慢脚本日志 间歇性的502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的. 在 PHP-FPM 的子进程数目超过的配置中的数量时候, ...

  5. mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具)

    一.概述 由于服务器生成的二进制日志文件以二进制格式保存,所以如果要想检查这些文件的文本格式,就会用到mysqlbinlog日志管理工具. mysqlbinlog的语法如下: mysqlbinlog ...

  6. 数据误操作,删库跑路?教你使用ApexSQLLog工具从 SQLServer日志恢复数据!

    前几天同事不小心误操作,将SQLServer库的一张表的一个状态字段给刷成了一个统一状态,由于是update执行所以原来的相关状态无法确定.发生这种事情的时候我的小伙伴背后 一凉,估计心里里面想这怕是 ...

  7. mysql 开发进阶篇系列 44 物理备份与恢复( 热备份xtrabackup 工具介绍)

    一.概述 物理备份和恢复又分为冷备份和热备份.与逻辑备份相比,它最大优点是备份和恢复的速度更快.因为物理备份的原理都是基于文件的cp. 1.1 冷备份 冷备份就是停掉数据库服务.这种物理备份一般很少使 ...

  8. MySQL常用的备份方式与备份工具简介

    一.MySQL备份方式与备份类型 1.备份的必要性 再生产环境中,为了防止硬件故障.软件故障.自然灾害.误操作等各种原因导致的数据库数据丢失后能恢复到事故之前的状态,我们需要对数据库进行备份和恢复操作 ...

  9. 简要介绍Apache、php、mysql安装和工具介绍

    1 安装Apache 网站:www.Apache.org下载相应的Apache,目前下载了近期的:httpd-2.2.15-win32-x86-openssl-0.9.8msi 安装简要步骤如下图: ...

随机推荐

  1. JVM的基础知识

    一.JVM的基础知识 1.JVM内存结构: 1.JVM堆内存结构: 2.JVM内存分配: 3.Java的堆机构和垃圾回收: 4.Jvm堆内存配置参数: 5.JVM新生代概念和配置: 6.JVM老生代概 ...

  2. jsp技术之隐藏域

    隐藏域 hidden:隐藏域属性,不显示到页面上,但是会提交的表单项 注意:表单中增加了一个隐藏域,是用户的id.稍后修改联系人信息,提交表单时需要使用到 <!-- hidden:隐藏域,不显示 ...

  3. cpu内部组成

    计算机系统的硬件结构主要由四部分组成:控制器.运算器.内存和输入输出设备 其中,控制器和运算器统称为中央处理器.简称CPU.它是计算机硬件系统的指挥中心. 它包括控制器.运算器.寄存器三个部分,其中, ...

  4. 块级格式化上下文(BFC)

    一.什么是BFC 具有BFC属性的元素也属于普通流定位方式,与普通容器没有什么区别,但是在功能上,具有BFC的元素可以看做是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且具有普通容 ...

  5. 手把手教你从零写一个简单的 VUE--模板篇

    教程目录1.手把手教你从零写一个简单的 VUE2.手把手教你从零写一个简单的 VUE--模板篇 Hello,我又回来了,上一次的文章教会了大家如何书写一个简单 VUE,里面实现了VUE 的数据驱动视图 ...

  6. POP3:基于命令行的电子邮件(EMail)在线查看和批量下载工具

    使用该工具可以在不安装outlook和foxmail等邮件客户端的情况下快速下载指定邮箱的邮件,并将下载的邮件以eml格式进行保存. 附: 查看eml格式的邮件可使用 EmlReader 工具,该工具 ...

  7. C#编写程序,用 while 循环语句实现下列功能

    编写程序,用 while 循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个. 代码: using Sys ...

  8. 常用 adb 命令总结

    1. 显示当前运行的全部模拟器:    adb devices    2.  安装应用程序:      adb install -r 应用程序.apk    3.  获取模拟器中的文件:      a ...

  9. 输入n,然后输入n个数,使它升序输出

    #include<iostream> using namespace std; int main() { int n,i,j,m,k; cin>>n; int a[n];  f ...

  10. 使用SQL的FOR XML PATH('')将字段用逗号隔开

    FOR XML PATH('') 将查询结果显示为XML 经常用来将查询结果按逗号分隔后显示至某一字段 select * from Area结果 添加FOR XML PATH('')后 select ...