mysql binlog详解

MySQL的二进制日志binlo,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的

DDL
	----Data Definition Language 数据库定义语言 
 主要的命令有create、alter、drop等,ddl主要是用在定义或改变表(table)的结构,数据类型,表之间的连接和约束等初始工作上,他们大多在建表时候使用
DML
	----Data Manipulation Language 数据操纵语言
 主要命令是slect,update,insert,delete,就像它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
mysqlbinlog常见的选项
--start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间
--stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样

--start-position:从二进制日志中读取指定position 事件位置作为开始。
--stop-position:从二进制日志中读取指定position 事件位置作为事件截至
binlog日志有两个最重要的使用场景
1、mysql主从复制:
	mysql replication在master端开启binlog,master把它的二进制日志传递给slaves来达到master-slave数据一致的目的。
2、数据恢复:通过mysqlbinlog工具来恢复数据。
	binlog日志包括两类文件:
      1)、二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件。
      2)、二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句select)语句事件。
开启binlog日志
[root@ 777 ~]# vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=1
binlog_format=MIXED(加入此参数才能记录到insert语句)

[root@ 777 ~]# systemctl restart mariadb
查看binlog日志内容
1、mysqlbinlog命令
	binlog是二进制文件,普通文件查看器cat、more、vim等都无法打开,必须使用自带的	mysqlbinlog命令查看。
	binlog日志与数据库文件在同目录中。
	在Mysql5.5以下版本使用mysqlbinlog命令时如果报错,就加上"--no-defaults"选项
	
2、show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
	IN 'log_name':指定要查询的binlog文件名(不指定就是第一个binlog文件)
	FROM pos:指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)
	LIMIT【offset】:偏移量(不指定就是0)
	row_count :查询总条数(不指定就是所有行)
	
	MariaDB [(none)]>  show binlog events in 'mysql-bin.000002'\G;
从binlog日志恢复数据
"恢复语法"
MariaDB [(none)]> mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名
"常用参数"
--start-position=875 起始pos点
--stop-position=954 结束pos点

--start-datetime="2016-9-25 22:01:08" 起始时间点
--stop-datetime="2019-9-25 22:09:46" 结束时间点

--database=ops指定只恢复ops数据库(一台主机上往往有多个数据库,只限本地log日志)

"不常用参数"
-u --user=name 连接到远程主机的用户名
-p --password[=name]连接到远程主机的密码
-h --host=name 从远程主机上获取binlog日志
--read-from-remote-server从某个Mysql服务器上读取binlog日志
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值