在以前的地方我曾经咨询或者工作过,我们从来没有在启动的时候启动生产数据库—由于很多原因—开机时硬件问题导致腐败,networking连接不稳定到数据库通讯问题 – 列表继续 –
如果服务器由于中断而重新启动,我不希望作为数据库场的一部分的数据库服务器自动启动,直到我检查了系统和数据库一致性。
你对此有什么想法? – 我被告知开机启动数据库是“正确”的事情,我完全不同意。
就我个人而言,我不知道为什么你不希望它在启动时启动。 我的答案与MySQL标签略有不同,一般谈到数据库。
当你说你想检查一致性 – 这是物理腐败还是逻辑腐败? 如果有什么东西是身体腐败的,那么很可能无法启动。 如果它在逻辑上是腐败的,除非你有一个知道数据库结构的特定的维护程序,并且什么与什么有关,我想你会很难手动确保它在逻辑上是一致的(我的意思是在事务上一致)。 如果数据库是好的,那么它将会进行某种forms的事务logging来保证事务的一致性。
如果你有硬件损坏的东西(但只有在启动),你有更大的问题需要解决。 同样,如果你有flakeynetworking连接,你还有其他问题。 networking在操作系统加载过程中很早就开始了,一旦启动,它会一直持续下去,直到不知道为止。
想想如果Exchange服务器或SQL Server在星期六早上3点重新启动,并且出于某种原因无法访问服务器并手动启动数据库,会发生什么情况。 直到你倾向于服务器,它将不会接受电子邮件或您的网站停下来几个小时,当它重新启动服务器时,它可以自己启动和运行。
这一切都取决于数据库,真的。 两种select都有风险。 如果不尽快启动服务,您可能会冒险破坏用户或破坏SLA。 通过自动启动数据库,与开始服务之前花时间确保一切顺利相比,可能会使数据库处于更糟糕的状态。
根据我的经验,正常运行时间就是一切。 当他们的服务不可用时,潜在的问题列表将不会控制不满意的用户。 不过,我也明白,你们担心这种情况会因为盲目行为而变得更糟。
也就是说,你没有理由盲目行事。 如果您在声明数据库安全启动之前执行了系统/数据库检查的列表,请考虑将其添加到数据库或应用程序启动脚本中。 这样,如果您手动执行的检查都是成功的,则用户不会等待您到达您的计算机。 如果某个步骤失败,请login并手动修复。