扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:51CTO 2011年10月31日
关键字: VMware SQL Server 虚拟机
在本页阅读全文(共2页)
我们搭建了一个试验环境,表明SQL Server在VMWare平台下运行时,停电会给数据完整性带来什么样的影响。我们在物理机和虚拟机上建立了SQL Server 2005的两个实例,分别称之为 ZOOSTATION和VZOO。每个服务器实例都有专门为本次试验创建的VMTest数据库。虚拟服务器使用Linked服务器与物理服务器连接起来。两个VMTest数据库都含有同样的数据表:demotable(每个数据表都有81832行),里面的数据一模一样。
为了测试停电后虚拟机数据库的完整性,我们执行了如下操作:在同样的分布式事务中,在物理数据库和虚拟数据库上执行了同样的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一起运行带来的优点压倒伴随的潜在风险吗?
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者