误区 #1:在服务器故障转移后,正在运行的事务继续执行

这当然是错误的!

每次故障转移都伴随着某种形式的恢复。但是如果当正在执行的事务没有Commit时,由于服务器或实例崩溃导致连接断开,SQL Server可没有办法在故障转移后的服务器重新建立事务的上下文并继续执行事务-无论你使用的故障转移方式是集群,镜像,日志传送或是SAN复制。

对于故障转移集群来说,当故障转移发生后,一个SQL Server实例在另一个故障转移集群的节点启动。所有实例上的数据库都要经历Recovery阶段-也就是所有没有Commit的事务都要被回滚。

对于数据库镜像来说,来自主体服务器的日志不断传送到镜像服务器进行Redo操作。当镜像服务器被切换作为主体服务器时,原镜像服务器的事务日志将会变为Recovery模式,这使得好像原镜像服务器经历了一次崩溃那样,在这之后所有的连接都会导向原镜像服务器。

对于事务日志传送来说,事务日志被定期备份并传送到辅助服务器.当主服务器崩溃时,DBA按照恢复顺序将辅助服务器恢复后上线.但最终步骤都是要执行recovery步骤,也就是将没有提交的事务进行回滚。

对于SAN复制来说,本地SAN的I/O被复制到远程SAN上进行重放,当故障转移发生后,系统将会连接到远端SAN但数据库仍然需要执行recovery步骤,这和故障转移集群极其类似。

“唯一”使得正在执行的事务在故障转移发生后仍然得以继续执行的技术使用带有实时迁移功能的虚拟化技术,因为这时连接本身并不知道其连接的对象已经变为另一台物理服务器。

但是无论使用那种技术,如果”连接”失效,正在执行的事务将会丢失,所以处理这类问题的这部分工作就需要在程序中用代码实现某种“重新执行”的功能。
标签:
事务,服务器故障

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。