近期讨论的几个数据库问题

科技   2024-09-11 15:30   上海  

最近,在【DBA驿站】知识星球(文章最后会介绍一下是什么)里,讨论了几个话题,这篇文章选其中两个。

1 模拟两个DBA实战场景

昨天,在星球里发起了一个这样的话题:

我们来模拟两种DBA实战场景,大家讨论一下自己的解决方法:


场景一:云上的MongoDB和Redis的数据,需要时不时导入到一套测试环境,方便研发测试一些功能,你会怎么做?


场景二:某个业务,自建的MySQL数据库,要时不时查看某个用户指定历史时间的数据(类似上个月8号9点整这个用户的数据是怎样的),只要求整点的,假设用户数据就是对应某张表的某一条记录,你计划怎么实现?


大家可以选一个擅长的讲一下自己的思路。

其中,有两位星友参与了评论:


2 MySQL 停电为什么会导致坏页?

上周,在星球内发布了下面这个主题:

之前小编在星球内解析过一个面试题:


MySQL 停电为什么会导致坏页?


当时我写的解析是:

当脏页没有及时刷新到磁盘,这个时候正好停电了,那么这些未写入磁盘的数据就会丢失。


在数据库重启时,如果检测到页的磁盘版本与缓冲池中的版本不一致,InnoDB 会认为该页已损坏。

还有可能文件系统损坏,影响到数据文件的完整性。

上周,邀请了丁奇大佬进入了星球,他微信私聊我,帮我纠正了这个问题:

以下是丁奇老师的原话:

数据库重启之后,因为内存被清空过,所以InnoDB没机会发现“磁盘版本与缓冲池版本不一致”,主要是这个描述。


这个题目如果是面试官问的,应该是要考察InnoDB page size和操作系统数据单元的关系。


就是我会这么回答

“操作系统写盘的数据单位是4k,而一个InnoDB page是16k,所以在掉电的时候,就存在一个数据库只写了1/2/3个4k的情况,这样这个page的checksum跟内容就对不上,也就是坏页”

这里提一下,如果有想学MySQL内核的,可以看下今天另外发布的一篇文章,丁奇老师带队。


3 说下【DBA驿站】知识星球

为什么要建这个星球?

1 我们希望提供个平台,讨论交流DBA的相关内容,比如专业知识、项目实战等。

2 求职面试,一方面会分享DBA相关的面试题,也会分享一些简历、面试技巧。


星球成员的权益

权益1 加入即可查看“DBA面试宝典:大厂真题揭秘”专栏

里面包括:

多个大厂DBA的面试真题;

大厂DBA嘉宾给星球成员的模拟面试真题;

星球学员近期去面试的真题等。


权益2 问题讨论交流或者围观

类似上面两个场景,知道的,可以发表一下自己的看法,不知道的或者不想评论的,可以围观一下。

比如市面上一些图文专栏,大家就很喜欢看留言区其他人怎么讨论的。


权益3 免费陪伴群

加过其他知识星球的都知道,100以内的知识星球,很少会有送陪伴群的。

加入【DBA驿站】就可以送免费陪伴群。

群里大多数都是DBA,大家也能在里面交流DBA问题以及求职等。


权益4 所有星友都能发帖

目前有部分星球星友是不能发帖只能评论的,只能是合伙人或者嘉宾发。

我感觉是不方便大家交流的,【DBA驿站】欢迎各位星友发言讨论技术问题。


怎样加入?

领取下方优惠券购买,

原价108,券后58。

加入 3 天内不满意可以全额退款。

进入星球后,访问下方链接,即可直接跳转到权益1中的DBA面试宝典专栏:

https://t.zsxq.com/195kO9AzF


MySQL数据库联盟
关注后,回复“高可用”,可获取8篇MySQL高可用文章
 最新文章