实验:SQL Server和VMware这对冤家或致命(1)(2)
为了测试停电后虚拟机数据库的完整性,我们执行了如下操作:在同样的分布式事务中,在物理数据库和虚拟数据库上执行了同样的UPDATE更新)语句。这一更新操作把“2_”添加到了demotable表中每一行的开头。
执行提交语句后,
立即移除数据/日志所在的外部驱动器,模拟操作系统崩溃。模拟了操作系统崩溃后,我们重新开启两个SQL服务器。在物理机上,一切都正常,数据也按预期的那样更新。遗憾的是,在虚拟机上,我们看到了好多错误。
VMTest数据库状态为“In Recovery”恢复中),如我的SQL Server Management Studio所示。
我们将VMTest数据库的状态设为“Emergency”紧急状态),以读取里面的数据。
这样一来,数据库可以访问但只能读取)。我们试图使用SQL Server Management Studio的Open Table打开表)命令,从demotable读取实际的数据。我们看到下列结果:
SQL Management Studio只能读取demotable里面原始的81832行中的3965行。一些数据丢失了。我们发现,许多TextData值是以“1_”开头,而不是像上一次事务表示的那样以“2_”开头。
手动执行SELECT选择)语句出现了另一个错误。
最后的结论是,要认识到SQL Server在VMWare下无法运行,这点很重要。虽然有时SQL Server似乎会运行,但是会导致数据库不稳定。我们将整个试验重复了无数次,每一次物理机上的数据库都毫发未损,可是虚拟机上的数据库被损坏。没有警告,没有危险信号,也没有警报。到时摆在你面前的可能就是被损坏的数据库。
所以现在该由你自己来决定:扪心自问,让SQL Server与VMWare一起运行带来的优点压倒伴随的潜在风险吗?
原文地址:http://www.sqlsolutions.com/articles/articles/SQL_Server_and_VMware-A_Potentially_Fatal_Combination.htm
评论暂时关闭