• 朱晓峰
    置顶
    2021-05-20
    你好,我是朱晓峰,下面我就来公布一下上节课思考题的答案: 上节课,我们学习了日志(上)。下面是思考题的答案: 修改配置文件:my.ini slow-query-log=1 long_query_time=5 然后重启MySQL服务器 mysql> SET min_examined_row_limit = 1; Query OK, 0 rows affected (0.00 sec)
    共 1 条评论
    
  • lesserror
    2021-04-25
    之前看到的MySQL基础课,涉及日志这块儿内容几乎没有。老师花了两节课讲了MySQL日志相关的内容,基本伤都是点到即止,阅读起来没多大负担。但是对于建立MySQL的整体认识是非常重要的。我虽然在实际工作中用了几年MySQL,这些内容读完了也有所收获!

    作者回复: 很高兴能够对你有所帮助

    
    4
  • giteebravo
    2021-04-25
    二进制日志可以处理数据备份与恢复的问题,也可以与中继日志一起解决主从架构下数据一致性的问题。 回滚日志与重做日志的具体作用还不太了解。

    作者回复: 详情可以参考链接:https://dev.mysql.com/doc/refman/8.0/en/innodb-redo-log.html和https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-logs.html

    
    2
  • SharpBB
    2022-02-14
    1.二进制日志 0.注意点:在mysql8前二进制日志是默认关闭的 8以后默认开启 1.查看二进制日志 SHOW MASTER STATUS; 查看所有二进制日志 SHOW BINARY LOGS; 查看二进制日志中所有数据更新事件 SHOW BINLOG EVENTS IN 二进制文件名; 2. 刷新二进制日志 FLUSH BINARY LOGS; 关闭正在写入的二进制日志文件 重开新文件 并在文件后缀上+1 3. 用二进制日志恢复数据 mysqlbinlog –start-positon=xxx --stop-position=yyy 二进制文件名 | mysql -u 用户 -p 从xxx位置开始 到yyy截止的数据更新操作 yyy可以省略 小tip:最好记录下开始位置 否则在数据量大的情况下索引会很难找 4. 删除二进制日志 RESET MASTER; 2.中继日志 只在主从架构的从服务器上存在 简单讲就是 从服务器读取对应二进制文件进行备份 踩坑 如果主服务器宕机 重装操作系统 导致服务器名变更 那么从机的备份恢复是根据之前的从服务器名来的 所以要将服务器名改成之前的即可 3.回滚日志 单个回滚日志最大为1g SHOW VARIABLES LIKE '%innodb_max_undo_log_size%'; 查看 SHOW VARIABLES LIKE '%innodb_undo%'; 4.重做日志 作用 1.在遇到故障恢复中 可以修复未完成的事务修改的数据 2.mysql为了提高效率 对数据的更新会先写入内存 积累一定程度的时候再写入磁盘 这就带来一个问题 如果中途宕机 内存里的数据丢失 可通过重做日志进行磁盘读写操作 查看 SHOW VARIABLES LIKE '%innodb_log_files_in_group%'; 可以发现value是2 说明 前两个是用户表的创建和更新操作 如果为4说明用到了临时表 总结 二进制日志如果数据量大 起止位置不好掌控 到那个时候不如直接用主从结构
    展开

    作者回复: 好的

    
    
  • 水哥
    2021-11-10
    现在参数不是--end-position了,是stop-position

    作者回复: 十分感谢你的提醒,这个地方我疏忽了,确实应该是--stop-position,我已经请后台加以改正。

    
    
  • 学无涯
    2021-10-27
    请问老师: 用binlog恢复数据时,起始位置可以通过在数据备份时记录日志位置找到,但是截止位置如何找到呢?只能人工查看binlog记录一条条找吗。 很多情况下,误删数据后过了好久才发现,这时binlog很多,甚至有的已经超过max_binlog_size切换了binlog文件,这样的该如何找呢。

    作者回复: 需要事先考虑到这些问题,并加以避免。比如定时备份日志文件。

    共 2 条评论
    
  • 格局
    2021-08-18
    多个数据库的情况下,可以为每个数据库单独弄一份日志吗

    作者回复: 系统日志,是面向所有数据库的。可以对日志进行筛选,找到相关数据库的部分。

    
    
  • 格局
    2021-08-18
    我这里刷新日志flush binary logs 语句报错。 但可以使用flush logs,来刷新

    作者回复: 可能是你MySQL系统的问题,可以考虑重新安装MySQL试一下

    
    
  • Geek_648c53
    2022-12-28 来自广东
    说个坑,一定不要在win powershell或者win终端上面执行备份和恢复,要在 cmd 里面执行(在cmd中执行备份及恢复),不然执行恢复命令的时候会总是报错😂
    
    
  • 玉琴
    2022-10-04 来自江西
    老师,数据库一直在用, 1 如果使用mysqldump备份数据库,会不会有部分缓存操作没有备份到呢? 2 我们再通过FLUSH BINARY LOGS,刷新日志,会不会还是有部分操作没写入到binlog中呢?
    
    