部署SQL Server:安装第二个实例?

时间:2009-12-17 13:01:05

标签: sql-server-2005 delphi winapi delphi-2007

简单的问题。我正在研究Delphi 2007 / WIN32应用程序,它现在使用MS Access作为简单的数据存储。我必须修改它以支持SQL Server Express,这很容易。这些修改正在运行,因此可以使用SQL Server或MS Access部署应用程序。 (无论用户喜欢什么。)我确实考虑将整个应用程序与SQL Compact一起部署,但这不是实用的。使用SQL Server Express 2008而不是2005是一个选项,但也有一些令人讨厌的副作用,我们现在不想解决。

问题是部署整个项目。使用SQL Server进行安装需要安静的安装,因此用户不会注意到它。文档中提到了SQL Server,因此他们知道它就在那里。我们只是不想用技术问题打扰他们。在大多数情况下,这样的安装就可以了。

但是如果用户已经安装了SQL Server(2005)用于其他的东西呢?就个人而言,我更愿意在他们的系统上安装第二个SQL Server实例,这样它就不会与其他安装冲突。 (因此,如果他们卸载其他应用程序,SQL实例将保持安装。)

虽然SQL Server 2005和2008只能通过为实例使用两个不同的名称安装在同一系统上,但我想知道是否也可以在单个系统上安装SQL Server 2005两次以获得两个实例。如果可能的话,怎么样?

3 个答案:

答案 0 :(得分:1)

回答你的问题:是的SQL2005 / SQL2008和SQLExpress2005 / 2008都可以幸福地生活在一起。 SQLExpress安装的默认实例名称是[machine name] \ SQLEXPRESS。但话说回来,你应该考虑给你的客户选择使用他们已经拥有的sql实例,并且如果他们选择的话,只安装一个新的实例。

我不知道是否可以静默安装SQLExpress(最有可能的是,只要在安装时在命令行上指定了正确的属性)。但是我们已经将它推广给了许多客户,他们在正常安装它时几乎没有问题。

编辑:我已将此添加为编辑,因为评论不够。

我理解您不愿意让用户手动安装SQL,以及共享其他实例。要解决这些问题:

  • 卸载产品应该从不自动卸载SQL实例,即使在安装该产品时放置​​了该SQL实例。无论如何数据库都可以被吹走,但卸载SQL实例应该是一个手动过程,因为它是许多其他产品可能使用的服务器产品
  • 使用合适的安装程序产品,您可以轻松完成任务。例如,我们使用InstallShield。它内置了一个sql浏览对话框(它是InstallShield的一个特色),用户可以使用它来选择他们想要用于我们产品的sql实例和数据库。然后,使用XML文件更改任务(也包含在InstallShield中的功能)将用户输入的详细信息插入到web.config文件中。通过使用这样的对话框,您可以消除许多潜在的用户错误。
  • 如果已经存在sql实例,请使用它。数据库对实例的唯一依赖是它是正确的版本(即SQL2005,2008适用于2005数据库)。您应该要求自己的实例的唯一时间是您正在处理/存储您需要自己的服务器的足够数据,或者您是否依赖于未记录的功能。如果现有实例已经处于高负荷状态,那么坚持在不同服务器上的新实例是可以的,但是你也避免了整个并排的情况。或者,您只需安装到现有实例并让客户承诺升级硬件。

我希望这有点帮助 - 我只是想说服你需要一个单独的实例的原因有限,并且99%的时间你可以很好地安装到现有的实例。拥有自己的实例很不错,但实际上它带给您很少的实际好处,特别是如果您使用强大的安装程序。

答案 1 :(得分:1)

您可以使用/ Q命令行开关以静默方式安装SQL Server Express,或使用/ QS命令行开关查看设置进度而无需用户输入。您可以在已安装SQL Server的系统上安装命名实例。

http://msdn.microsoft.com/en-us/library/ms144259.aspx

答案 2 :(得分:1)

为什么拥有自己的SQL Server实例非常有用,这有很多原因。

  • 您可以自己决定使用何种类型的身份验证(SQL身份验证或Windows身份验证)。虽然建议使用Windows身份验证,但是这种情况根本不是一种选择。对其他产品使用同一实例的实例启用SQL身份验证存在安全风险。
  • 您可以放心地假设您的产品是已安装实例的唯一用户。因此,通过安装和卸载实例,您可以了解该实例正在使用的版本和数据库。只要您的产品的不同版本使用相同的SQL配置和版本,就不需要额外的检测。

隔离分期付款(文件,注册表项,dll和其他产品)是一种非常好的做法!

此外,卸载SQL Server实例不会导致数据丢失,因为不会删除数据库的数据文件。重新安装后,您可以根据需要再次附加数据文件。

话虽如此,SQL Server Express可以安装在三种不同的交互模式中:

  • 完整的用户界面,包括SQL许可协议接受
  • 无声,但有详细的进展UI
  • 无声,没有任何进度用户界面(以及抑制错误!)

有关安装的详细说明,请访问http://msdn.microsoft.com/en-us/library/ms144259(SQL.90).aspx