手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >SQL Server误区30日谈 第1天 正在运行的事务在服务器故障转移后继续执行
SQL Server误区30日谈 第1天 正在运行的事务在服务器故障转移后继续执行
摘要:误区#1:在服务器故障转移后,正在运行的事务继续执行这当然是错误的!每次故障转移都伴随着某种形式的恢复。但是如果当正在执行的事务没有Comm...

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

这当然是错误的!

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

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

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

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

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

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

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

【SQL Server误区30日谈 第1天 正在运行的事务在服务器故障转移后继续执行】相关文章:

SQL Server 动态行转列

未公开的SQL Server口令的加密函数

SQL Server扩展存储过程实现远程备份与恢复

SQL Server 数据库自动执行管理任务

通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案

SQL Server储过程加密和解密原理深入分析

SQL Server 2008 R2 应用及多服务器管理

SQL Server 2005 返回修改后的数据

SQL server 表操作介绍

SQL Server 2008 备份数据库、还原数据库的方法

精品推荐
分类导航