我们有一个主动/被动拓扑,其中有两个x86复合体与一个共享原始存储,其中在给定时刻只有一个节点可以访问共享存储(AKA,主动节点)。在主动节点中发生故障转移的情况下,被动节点发起接管并成为具有对共享存储的访问的主动节点。每个节点都有自己的引导设备存储和一个文件系统。但是,共享存储不能在其上安装文件系统。
我们对在两个节点上安装MySQL感兴趣,在这两个节点上,其数据驻留在共享存储中,并且只有活动节点正在运行服务器。
带有MySQL的InnoDB能够在原始设备上运行,还有关于如何运行类似于我们的拓扑结构的集群上的MySQL的指南。但是,在第二个示例中,它们确实在共享存储上安装了一个文件系统。文件系统问题引起了人们的主要关注:
ib_logfile*仍然需要一个文件系统。因此,原始的MySQL特性并不完全是原始的。如果我弄错了,请纠正我。是否有办法将这些文件存储在原始存储中?我们可以将重做日志(ib_logfile0
、ib_logfile1
)保存在节点的引导设备中,并且总是在服务器启动之前删除这些文件(这样,在发生多个故障转移时,我们就不会有旧的日志文件)。然而,这可能导致在事务的中间发生故障时部分提交未提交的事务,从而与事务的整个概念相矛盾。
是否还有更多的文件/特性可能会影响mysql在此拓扑中的行为?
发布于 2015-10-14 12:08:38
值得注意的是,InnoDB的预写日志(WAL) ib_logfile*并不是唯一需要文件系统的东西。你有:
/<datadir>/<schema>/
中)上面的所有内容通常都在数据目录中,所以只要您有datadir=/some/valid/fs/path
--这也是在两个节点之间复制(例如DRBD)或共享(例如NFS、GFS、OCFS) --那么您就可以了。
值得注意的是,.frm、.par、.trn、.trg和.opt文件将随新数据字典一起消失。
请继续关注未来几个月的一些重大声明!:)
我不清楚你为什么要用原始设备?不过,我肯定你有自己的理由。:)
祝好运!
https://dba.stackexchange.com/questions/117627
复制相似问题