关于二进制相关的各种变量
如何操作二进制相关日志
可以查看二进制的相关列表
对比一下在硬盘上两个文件是否这么大
这两个命令没什么区别都一样
表示当前数据库二进制文件处于什么位置
说明二进制写到了什么位置,
如果对数据库进行后续操作,update
对数据库有变化,位置变了,大小变了
中间差的位置就是这条命令的位置,可想而知,将来恢复数据,可以恢复到刚才的位置
比如在这个位置删除表里,可以选择恢复之前的数据
查看二进制文件里的数据内容
基于行的,记录的特别详细
也可以加上from 从哪到哪的
想看这个位置之后的
这就是看之后的命令
上面的用的不多,用的多的还是专门的二进制查看工具
flush logs生成了一个新日志
之前是重启服务生成了一个新日志
更改一条数据
这时候记录写到最新的文件里了
现在这个文件大小是462
现在可以把这个文件打开查看内容
默认显示二进制文件所有的数据库信息
头部信息下面245是发生的数据信息
看不到具体命令,另外有选项
查看具体命令
原来的是什么,后来生成的是什么
把这个内容导入到sql脚本里
刚才改的20号
修改20号数据
导入脚本
原来数据就又回到原来修改过的样子了
对数据库更改都有记录
这个编号实际上就是大小
数据文件的大小在变化,每次进行修改都在变大
这个操作是在435到462之间
记录的是就是从435到462间的操作
mysqkbinlog基本操作格式选项加日志文件
命令排序的问题,日志文件要求最后放
v跟vvv的区别
当对数据库更改很多的时候,这个文件将会很大
除了多少到多少,还有时间,但是时间不是很准,因为有时候计算机速度太快了,所以有可能在一瞬间发生很多事
所以用什么位置到扫描位置来显示数据比较合理
、
从几点几分开始,来显示某个文件
还能用指定的编码来显示
这个就是base64编码
base64编码本身后面还支持跟上其他选项
把这个行封装成sql语句,需要配合verbose
不加选项基于base64编码
update和delete都用base编码显示了
+v就现实sql语句样式
query你要做什么事情
这些是发生的内容
exectime花的时间
二进制可以了解操作系统的操作过程,由此可以来恢复
如果确定数据库已经做好备份,剩下的占的比较大的空间的二进制文件就可以考虑删除
查看二进制文件列表
、
可以删除二进制日志
把2之前的日志删除了
resetmaster是彻底删除 需要10以上版本支持
用rm删除,就需要手动更新索引文件
这个命令会更新二进制日志
彻底删除只留下一个
切换日志
数据库的备份与二进制都是密切相关的
备份的策略都是与你的要求密切相关的
恢复数据需要在多长时间完成
比如备份数据1年,恢复数据 特别慢,有时候是难以忍受的,因为系统往往出了问题,是特别着急恢复的,备份过大,有时候需要备份几天时间,这样我们就需要让这个备份差距不要太大
除了生产中的用户数据,系统数据需要备份吗
数据是备份了,但是系统一重新装,配置文件就丢了,所以系统的相关配置也需要备份
**完全备份就是把整个mysql所有内容备份,包括用户数据,系统数据全部备份
部分备份,就是备份表和数据库
增量备份 (备份上一次完全备份或者增量备份到现在的完全变化
**
如果 星期四系统崩溃了
第一步,要还原数据库就需要先还原全部备份
还有就是必须按照顺序234增量备份
但是中间的数据就需要二进制文件了
默认mysql设置是不符合生产要求的
事务日志和数据库文件最好路径要按照默认的,最好放在独立的目录里,一般就是独立的磁盘
还有就是
innodb数据库所有数据文件挤在一个文件里了,要分开,每个表,innodb_per_table
还有就是建立账号
用户链接还存在名字解析的问题,DNS解析禁用了 ,skip——name——resolvf
用户的sql缓存默认是0 (0代表没有空间不缓存)
数据库建立起来,但是每个表还没有索引,看情况还要给某些字段加索引(要用慢查询扫描的观察观察)
增量 备份发现恢复起来太麻烦,其中有一个丢了,后面都没用
差异备份
数据的备份过程
好处是把前面的都备份了
假如周四系统又崩溃了
增量备份是还原慢,备份快,差异备份就是还原快,备份慢
有很多企业对于备份是比较严格的,备份下来要测试这个文件是否可以还原
找一个干净电脑测试一下
完全备份是肯定要做的,因为是后续备份的基础
冷备就是数据库关了再备份,关了就等于读写都操作不了了
热备就是读写都能执行,希望用户一直能够访问
(myisam不支持热备,因为是不支持事务,只能温备)温备就是加上读锁,只能读不能进行写操作
物理备份就是复制文件
逻辑备份就是,从数据库利用mysql协议,导出,简单地说就是执行select语句,等于进行全盘扫描放到一个磁盘文件里,
由于是执行数据库的查询导出操作,要去利用mysql协议进行访问,相对来讲,速度是比较慢的,
因为是利用查询语句来备份,所以跟存储引擎也就没有关系,占用空间小
可能丢失精度,因为数据库存,不一定存文本和数字之类的,很多情况下会存二进制数据,比如一些小的文件,图片,
放到数据库有好处就是数据库可以设置权限,但是导出来就有可能丢失这些精度
不够现在类似这样的图片一般不放在数据库里,一般放在文件里,数据库存文件路径