科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道虚拟化/云计算实验:SQL Server和VMware这对冤家或致命

实验:SQL Server和VMware这对冤家或致命

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在本次试验中,我们使用WMPlayer 2.0.2.作为访客系统,使用Vista惠普作为主机系统。这个问题很有可能不影响ESX服务器,但是我们仍在等待VMware方面给予确认:ESX服务器完全尊重微软SQL Server在输入/输出方面的核心需求。

来源: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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章