SQL Server Express 如何解决这些问题?
近年来,世界范围的开发人员、架构师和 IT 经理一直对上述问题进行着讨论。尽管没有对所有这些问题的解决方案,但是通过一些相当基本的改动,SQL Server Express 已经解决了其中的很多问题。在了解差异之前,知道什么内容没有变化非常重要。SQL Server 2005 Express Edition 仍然是免费的(具有惯例的 licensing and use restrictions),它仍然支持订阅者复制以及实际上与 MSDE 相同的所有功能。新的 SQL Server Express 版本无法宿主报告服务,但它可以作为宿主在 SQL Server 2000 Standard Edition 上的服务器的数据源。(有关 SQL Server 报告服务的详细信息,请参阅 Boost.net 网站。)默认情况下,安装程序仍然禁用将 SQL Server Express 实例公开到网络的能力(首次在 MSDE SP3 中实现)。让我们更仔细地考察一下 SQL Server Express 是如何解决每个问题的。
部署
SQL Server Express 设计为可以通过 Web 下载,并可以像任何其他系统软件那样安装在用户系统上。(这假设系统管理员安装了 SQL Server Express。)您可以使用交互式安装程序(我将在稍后进行说明),或运行命令行安装可执行文件。利用“安静”模式,用户根本不需看到任何 SQL Server Express 安装对话框。
当安装 SQL Server Express 时,默认情况下安装程序会尝试创建一个公用的 SQLEXPRESS 实例。如果它已经准备就绪,将提示您选择放弃安装或是选择另一个实例名。此处的思想在于让使用 SQL Server Express 的应用程序共享一个公用实例,而不是创建它们自己的实例。这使得应用程序配置更加简单,同时还可以降低用户系统上的内存和磁盘占用空间。
如果卸载应用程序,最好还是卸载您所安装的任意唯一的 SQL Server Express 实例。但是,Microsoft 建议保留所有就绪的 SQLEXPRESS 实例,除非您确认系统没有任何其他使用该实例的相关应用程序。确定这一点的一种方法是搜索其他应用程序可能连接或创建的其他数据库的 Master 数据库。
安全性
默认情况下,SQL Server Express 配置为保护您的数据。在安装时,您会有机会根据要求进一步加强安全性或放松安全性。您必须首先做出的决定就是选择安装实用工具配置 SQL Server Express 实例的方式。实例就是程序的一个副本。从 SQL Server 2000 版本开始,SQL Server 允许您安装服务器的几个独立的实例。每个实例都被视为独立的实体:每个实例具有其自己的 Master 数据库、其自己的安全性配置以及其自己的磁盘和内存中的位置。安装 SQL Server Express 后,每个应用程序(或您)必须决定它是否与使用该服务器的共享实例的其他应用程序共存,或者它是否要求其自己的独立实例。有几个与每个配置相关联的安全性问题,我将在下面进行阐述。请注意,SQL Server Express 允许您安装多达 15 个实例,但是我希望人们不要安装多个实例,除非在非常特殊的情况下。
安装公用实例
默认情况下,SQL Server Express 假设您要创建(或使用)一个名为“SQLEXPRESS”的公用实例。还可以命名一个“公用”实例,但是这假设您所安装的所有程序都可以分辩出这个独特的名称。如果保留默认名称 (SQLEXPRESS),其他应用程序可以自动共享这个公用实例。利用这种方法,所有数据库都可以由一个单个的、共享 Master 数据库管理,并且有一个永远不需要显示的 SA 密码。当使用公用实例时,您有可能看到其他安装的数据库,而其他应用程序也可能会看到您的数据库 — 除非您确保应用了适当的权限。一般而言,对于家庭、个人或小型办公室实现,您通常不必担心一个应用程序会扰乱另一个数据库中的数据。如果您安装一个单独的公用实例,那么只有一组 SQL Server DLL、缓存和其他驻留内存的结构会加载到内存中。这意味着只有一个 SQL Server 实例占用 CPU 资源。
安装独立的实例
在安装过程中,如果您将实例名设置为自己的值,那么安装程序会创建一个完全独立的 SQL Server Express 版本。该实例具有其自己的 Master 数据库、其自己的文件、DLL、内存占有空间以及其自己的 SA 密码。除了可能已安装的任意其他实例外,每个独立的实例都会启动占用 CPU 周期的单独的 SQL Server 服务(程序)。尽管该方法在某种意义上增加了安全性,只有那些被授予对该实例访问权限的程序才能看到它所管理的数据库,但是实现和维护却增加了很多成本。这是因为每个实例都要复制 DLL、缓存和其他内存中的结构。
安装默认实例
另一种方法就是在安装过程中删除实例名。在这种情况下,SQL Server Express 作为默认实例安装,假设没有已安装的默认实例。在这种方式中,只可以安装一个服务器实例。同样,如果这是安装到系统上的唯一的实例,那么在其他配置之间差异就会非常小,除非当它连接 SQL Server Express 时,我将在稍后对此进行讨论。
选择系统管理员的密码
SA 密码是解开整个数据库的密钥。系统管理员获准对数据库或数据库中的信息进行任何操作。SA 可以添加、更改或删除数据库,所有操作都可以在任何人不知道所做更改的情况下进行。正确设置这个密码并对其进行保护是至关重要的。
当您使用公用实例安装 SQL Server Express 时,只有一个 SA 密码需要关注。由于只有在您选择使用 Windows 身份验证进行安装时,SA 帐户才可以访问,所以 SA 密码永远不需要显示。在任何情况下,当安装 SQL Server Express 时,都要求您提供 SA 密码,但是在已发布的版本中,可以设置为随机(隐藏)的值。
Microsoft 建议您配置 SQL Server Express 实例以使用 Windows 集成安全性身份验证。这意味着计算机和 Windows 域系统管理员帐户都被授予对 SQL Server Express 实例的完全 SA 访问权限。当然,您需要成为计算机或域管理员才能执行维护、安装数据库以及执行像更改数据库表值这样的简单操作。这并不意味着使用 SQL Server Express 的每个人都应该成为管理员。它真正的意义在于,作为安装制度的组成部分,您需要创建“用户”或应用程序登录,并在应用程序需要的表格、视图、函数以及存储过程上设置适当的权限。我将会在稍后对此进行更详细的讨论。
性能
SQL Server Express 已经摒弃了“调控器”的概念。坦白地讲,我以前几乎没有看到调控器降低任何 MSDE 系统的情况,但是通过放弃调控器,Microsoft 消除了有关 SQL Server 引擎可伸缩性的混淆。SQL Server Express 有很多方法来限制可伸缩性。正如在测试版中所配置的那样,SQL Server Express 只能处理缓冲池中 1GB 的系统 RAM。这限制了 RAM 缓存中数据页面和过程的数量。任何 SQL Server 专业人士都可以告诉您改进性能的最简单方法就是向缓存中增加内存。将可见 RAM 限制在 1GB 意味着在您向 SQL Server Express 实例中增加负载时,您将(最终)耗尽性能。这是否意味着 SQL Server Express 可以支持 1000 个用户呢?当然,如果将负载放在 SQL Server Express 实例上并不会那么完美。在相同的情况下,10 个用户就可以将 SQL Server Express 陷入困境,尤其是如果应用程序编写得并不是非常有效时。
SQL Server Express 也限制到一个单个的处理器,而不可以在附加处理器(最多两个)上运行线程(如果系统支持)。这种限制也压缩了您期望从 SQL Server Express 获得的性能上限。
当使用 SQL Server Express 的应用程序结束时,SQL Server 并不会关闭。在 SQL Server Express 版本中并没有自动关闭选项。因此,即使在您的应用程序结束后,SQL Server 引擎也会保留在内存中,并继续占用系统 RAM 和 CPU 资源。可以编写 SQL 管理对象 (SMO) 例程来关闭 SQL Server Express 实例,但只有在您确认该实例没有被其他应用程序共享时,才可以完成该操作。
可伸缩性
尽管 MSDE 数据库限制在 2GB,SQL Server Express 数据库文件却限制在 4GB。这意味着可以比以前多存储一倍的数据。坦白地讲,这使我很困惑。我曾经在大型机上使用过大型的公司数据库,它在单个 40MB 磁盘包上非常适合。我猜想人们喜欢使用数据库来存储其宠物的大量文档和图片。对于 MSDE 而言,日志文件大小并不受限制 — 至少表面上看是这样。您仍然需要周期性地备份或截断日志,我将在稍后进行讨论。
工具
Microsoft 同时还更改了其对工具的访问方法。即使您不将新的 GUI 安装程序计算在内,当您下载 SQL Server Express Beta 2 时,新的 OSQL 版本、SQL 计算机管理器(MMC 管理单元)以及 SQLCMD 命令行工具都包括在其中,以协助管理 SQL Server Express 实例。此外,Microsoft 计划设计一个新的 GUI 工具(暂时命名为 SQL Express Manager),以执行 SQL Server 数据库的初始配置和周期性维护。这个工具很快可用于独立下载,基本上可以说,它是不同于 SQL 查询分析器的工具,可以执行用户帐户设置和维护以及协助编写、测试和调试 SQL 查询。您不能使用其他任何工具连接到 SQL Server Express,包括 Management Studio 或 SQL 企业管理器。但是,我希望在它发布前,当前的任何工具都可以访问 SQL Server Express。
管理
要管理 MSDE,您只须对 SQL Server Express 进行操作,这与对 SQL Server 的其他版本所做操作相同。我希望看到一个可以周期性地转储数据库和日志然后截断日志的自动日志备份脚本。或许,这就是企业第三方需要创建的脚本。到那时,我建议开发人员将这些管理任务构建到他们的应用程序中,然后使用 SMO 来执行这些需要的维护功能,并且使用 Windows 计划程序来进行协助。
Service Pack
SQL Server Express 只能使用 Windows Installer (MSI) 安装软件包文件进行安装。与 MSDE 不同,您将无法创建自定义的 MSM 安装脚本。在其他方面中,它与 MSDE 相同,因此您仍然需要准备通过传统的 Service Pack 方式来更新 SQL Server 引擎。在 Microsoft 工作的人都敏锐地意识到与此相关的问题,并且仍然在规划着更好的策略。
保护SQLServer2005 Express Edition Server
0
相关文章