本人新书上市,请多多关照:《SQL Server On Linux运维实战 2017版从入门到精通》
接上文SQL Server On Linux(1)——CentOS 7 安装SQL Server2019
在安装过程中,作者发现了一些信息,这些信息引起了作者的兴趣,那么下面作者把自己研究的结果分享出来,如果读者对此有深入研究过,欢迎指正。
为什么要研究这些东西?说白了就是为了Troubleshooting。当你的安装报错或者安装后启动失败时,这些信息可能会有所帮助,并且既然使用了Linux,那么不妨看看一些技术内幕,这些内容在Windows平台很难获得。
在上文中,安装过后会看到下图红框部分,这是第一个使作者感兴趣的地方,毕竟我也长期从事Windows平台的SQL Server:
然后就是检查服务状态时的第二个图:
本文重点讨论一下这两个图中的内容,其实它们本质上就是两个内容,第一个是ForceFlush,第二个就是symlink。
Forced Flush
暂且我们也叫强制刷新(flush也有译成冲刷),翻译倒是没所谓,建议搜索时尽可能使用英文原文。从图中可以看到原句是“ForceFlush feature is enabled for log durability”。这个是什么鬼?google一下(你做不到的话就bing一下,建议用国际版),会发现一篇微软的官方文档:Control Transaction Durability。这里作者重新整理一下里面的内容。
关系数据库事务日志原理
注意,从这里开始,作者已经不再是简单地做操作演示,而是在这个过程中嵌套很多SQL Server的知识,但是主要是为了自身的总结、巩固。
关系数据库的操作都产生事务日志,用于记录每个事务对数据库的操作。我们可以从逻辑上和物理上了解事务。
从逻辑层面,每个变更操作(如update、delete、insert等,还有DDL、索引表的变动等)都产生一个对于的事务&#x