avatar
的?
因为 binlog 是不能“被打断的”,⼀个事务的 binlog 必须连续写,因此要整个事务完成后,再⼀起写到⽂件⾥。⽽ redo log
并没有这个要求,中间有⽣成的⽇志可以写到 redo log buffer 中,redo log bufferweb安全工程师是干什么的
中的内容还能“搭便车”,其他事务提交的时候可以被⼀起写到磁盘中。
事务执⾏期间,还未提交,如果发⽣ crash,redo log 丢失,会导致主备不⼀致呢?
为什么month函数用不了不会,因为这时候 binlog 也还在 binlog cache ⾥,没发给备库,crash 以后 redo log 和 binlog
都没有了,从业务⾓度看这个事务也没有提交,所以数据是⼀致的。
在 MySQL 中⽤什么机制来优化随机读/写磁盘对 IO 的消耗?
redo log 是⽤来节省随机写磁盘的 IO 消耗,⽽ change buffer 主要是节省随机读磁盘的 IO 消耗。redo log 会把 MySQL
的更新操作先记录到内存中,之后再统⼀更新到磁盘,⽽ change buffer 也是把关键查询数据先加载到
内存中,以便优化 MySQL 的查询。
以下说法错误的是?
D.binlog 是 MySQL ⾃带的⽇志,它能保证数据库异常重启之后,数据不丢失 答:D
题⽬解析:binlog 是 MySQL ⾃带的⽇志,但它并不能保证数据库异常重启之后数据不丢失。
免费网课在线观看以下说法正确的是?
B.binlog ⽇志是追加写的,后⾯的⽇志并不会覆盖前⾯的⽇志
python简介C.redo log
和 binlog ⽇志都是追加写的,后⾯的⽇志并不会覆盖前⾯的⽇志 D.以上说法都正确 答:B 题⽬解析:binlog
⽇志是追加写的,后⾯的⽇志并不会覆盖前⾯的⽇志,redo log ⽇志是固定⼤⼩的,后⾯的⽇志会覆盖前⾯的⽇志。
有没有办法把 MySQL 的数据恢复到过去某个指定的时间节点?怎么恢复?mysql面试题sql
可以恢复,只要你备份了这段时间的所有
binlog,同时做了全量数据库的定期备份,⽐如,⼀天⼀备,或者三天⼀备,这取决于你们的备份策略,这个时候你就可以把之前备份的数据库先还原到测试库,从备份的时间点开始,将备份的
binlog 依次取出来,重放到你要恢复数据的那个时刻,这个时候就完成了数据到指定节点的恢复。⽐如,今天早上 9 点的时候,你想把数据恢复成今天早上
teklastructures6:00:00 的状态,这个时候你可以先取出今天凌晨(00:01:59)备份的数据库⽂件,还原到测试库,再从 binlog ⽂件中依次取出 00:01:59
之后的操作信息,重放到 6:00:00 这个时刻,这就完成了数据库的还原。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。