作者简介 Chris Leiter(Auburn,WA)是Hitachi Consulting的高级顾问,擅长Microsoft的商业智能和性能管理产品。Chris在1997成为Microsoft认证专家,在2001年成为Microsoft认证培训师。他目前持有MCSE:Security、MCITP:Database Administrator和ITIL:Foundation认证。他还与Dan Wood、Paul Turley合著了《SQL Server 2005数据库管理入门经典》一书(由清华大学出版社引进并出版)。Chris参与编写了本书的第1、2、3、6、7、8、12、13、15、16、17和19章。 Dan Wood(Silverdale,WA)是Avalara销售税服务公司的高级数据库管理员,他在这家公司负责为一些企业应用程序管理和开发数据库解决方案,这些应用程序主要帮助电子商务和ERP客户端处理全球地址验证、税率计算以及销售税汇款。自1999年以来,他做过SQL Server DBA、顾问和培训师。Dan与Paul Turley合著了《SQL Server 2005 Transact-SQL编程入门经典》(由清华大学出版社引进并出版)和《T-SQL编程入门经典(涵盖SQL Server 2008 & 2005)》(由清华大学出版社引进并出版)两本书,同时主编了《SQL Server 2005数据库管理入门经典》一书。Dan参与编写了本书的第4章和第9章。 Albert Boettger(Federal Way,WA)是Sagem Morpho公司的高级软件工程师和数据库管理员。他有着20多年的担任解决方案开发人员、数据库架构师和软件工程师的经验。Albert参与编写了第10章和第11章。 Michael Cierkowski(Maple Valley,WA)目前是Netdesk公司SQL Server管理方面的指导师。Michael在2000成为Microsoft认证专家和培训师。他目前持有MCSD、MCDBA、MCAD、MCSA、MCPD(Windows、Web、Enterprise)和MCITP(Database Administrator、Database Developer、BI Developer、Server Administrator、Enterprise Administrator)认证。Michael参与编写了第5、14和18章。 前 言 Microsoft在2007年5月的第一次BI(商业智能)会议上正式宣布了代号为Katmai的SQL Server 2008。我猜想,许多人和我的反应是一样的——“这么快?”。SQL Server 2005面世也才只有一年半的时间。我开始怀疑这速度是否有些过快。我也不知道为何会有这种想法。我知道Microsoft产品团队常常会在当前版本发布时就开始规划下一版本。我也知道SQL Server 2000和SQL Server 2005之间间隔的时间太长。同时,我还知道Microsoft承诺会每两三年发布一个新的SQL Server 版本。 我预料到SQL Server 2008更多的是一种产品更新,而不是全新的版本。大部分的公共资料也暗示了这一点。它被设计为构建在SQL Server 2005的框架之上,这提供了两个好处。首先,已迁移到SQL Server 2005的组织会发现迁移到SQL Server 2008要比从SQL Server 2000或其他数据库产品迁移更容易。另外,Microsoft通过将Analysis Services、Integration Services和Reporting Services捆绑为SQL平台的一部分,巩固了其在BI市场的地位。 我未曾预料到的是出现了一些相当重要的变化。正如您将在本书中看到的一样,Notification Services不复存在,Reporting Services也不再使用IIS访问报表服务器。对此我暂时不想妄加判断,但我确实很关心这些工具的现有实现会受到怎样的影响。 在有关Katmai的信息出现后,我试着尽可能地理解它。我阅读了大量在线文章和纸质文章,了解了简化系统和数据管理的新功能。对于我来说,更引人注目的一项功能是FILESTREAM,它允许将文件存储在NTFS文件系统中,同时仍通过SQL维护。我立刻意识到我的同事所开发的产品可以利用这种功能接收、归档和转发电子指纹传输(Electronic Fingerprint Transmission,EFT)记录。除此之外,我还可以想象其他Microsoft产品(如SharePoint)将如何用FILESTREAM存储极大的文件,而如果将这些文件存储为BLOB数据,将导致数据库很快变得庞大而难以管理。 在2007年,Microsoft宣布将在2008年2月27日发布Windows Server 2008、SQL Server 2008和Visual Studio 2008。他们一般每几个月发布一个CTP版。不过,当CTP6在2008年2月发布时,我们很清楚地知道,SQL Server 2008(和Visual Studio 2008)无法在预定的日期发布了。后来,Microsoft宣布将在2008年第三季度发布。我个人倒希望到2008年11月再发布。事实上,我认为它应在11月7日发布,这正好是SQL Server 2005发布满3周年的日子。 CTP6被认为是“功能完全的”,这意味着在这之后的更改很可能是修饰性的或相对不那么重要。这时,像数据压缩、基于策略的管理和资源调控器等组件已得到beta测试人员和应用程序开发人员的认可,他们大部分人都很高兴看到这些功能。 SQL Server 2008在2008年8月6日正式发布(尽管MSDN和TechNet订阅者在一周前就能访问它了)。至此,其功能、工具和组件已经经受了严格的内部验证以及CTP可用性的公共beta测试。在我编写本书时,距离SQL Server 2008发布已有5个多月。我和我的合作者有机会在生产和测试环境中试用SQL Server 2008。尽管有“成长之痛”,但我认为SQL Server 2008是个可靠的产品。我曾与许多经常声称“在他们至少提供SP1前不会安装某产品”的人共事。由于SQL Server 2008构建在稳定的SQL Server 2005平台之上并做了改进,所以我很难认同这样的观点。 我常与我的客户以及在本书中要重申的是SQL Server不只是一个关系数据库管理系统。尽管SQL Server的核心是(并且会一直是)数据库引擎,但是它的客户端功能、性能管理工具、数据完整性组件和商业智能解决方案使其成为一个对许多人(如DBA和业务用户)有吸引力的解决方案。 如果您选择阅读本书,那么很可能您在管理或将管理SQL Server 2008系统。几年前,当我在西雅图一家培训公司工作时,我发现我的学生通常可以分为3类。最普遍的是接手了SQL Server的IT管理人员。通常,他们所面对的都是业务要实现的新应用程序或服务所需的新服务器。这些学生对Windows系统管理很熟悉,但对SQL却一无所知。如果您是这类人,那么本书正适合您。 另一类学生是需要使用SQL Server数据库存储数据的项目开发人员。这些开发人员知道需要如何存储数据,但负责的却是配置和管理开发和测试环境。通常,他们的系统管理知识有限,但知道要实现什么。如果您是这样一名开发人员,那么本书也适合您。 第三类学生(这类人要少于前两种)是有经验的DBA,他们熟悉Oracle或其他数据库技术,但需要知道Microsoft下的工作情况。尽管两者在术语和实现方面有所不同,但大部分核心技术是一样的。如果您有使用其他数据库应用程序的经验,但要更好地理解SQL Server 2008如何满足个人要求,那么可以学习本书。 有些读者可能并不属于这三类人中的任何一类,或者可以同时划归至多类人中。不管您阅读本书的目的是什么,宗旨是一样的。正如书名所示,本书就是关于数据库管理的。但什么是数据库管理呢?数据库管理员常被要求执行严格意义上并不是管理的工作。除了像备份、数据库维护和用户管理等普通管理任务外,数据库管理员还需要执行下列任务,如为数据导入构建复杂数据转换、构建分布式数据解决方案、在启用将托管代码集成到数据库引擎中的功能的同时维护数据库的安全性和完整性。 简言之,对于许多组织来说,数据库管理员要为与数据存储相关的事情提供一站式服务。由于每个后续版本的作用范围和功能不断加大,这使得管理员的工作与过去相比变得更为复杂、困难。 随着数据库管理员在企业中角色范围的扩大,一本书是无法讲全所有概念的。本书只是着眼于介绍最基本的数据库管理任务,同时介绍了许多企业数据库管理员需要熟悉的高级主题。仔细阅读这些内容并加以应用,您就可以处理更复杂的工作和任务。有能力且勤奋的数据库管理员的机会将是无限的。 读者对象 前面已经对可能阅读本书的读者做了总结。当Dan Wood和我最初开始编写有关“SQL Server管理”的书时,我们知道主要读者将是负责管理和维护SQL Server数据库的IT从业人员(开发人员和管理员)。当然,也有可能当您知道SQL Server 2008将成为业务计划的一部分时,正在负责另一个数据库应用程序或是之前的SQL Server版本。 我们正是为了您而撰写这本书的。您可能会想:“我已经是一名资深的数据库管理员,而这本书却是《SQL Server 2008 DBA入门经典》。我不是初学者。”我理解这一点。但是,您仍然可以阅读本书。尽管SQL Server 2008基于SQL Server 2005,但是与上一版相比还是有一些重要的变化。SQL Server 2008与之前的版本相比差别也很大。即便您是SQL Server 2000或者SQL Server 7的专家,也会在本书中找到大量非常有用的信息。 有关本书的一个注意点 从技术上讲,本书是《SQL Server 2005数据库管理入门经典》的第2版。如果您学过第1版,那么可能会熟悉本书中的一些概念。不过,第2版中的每一章都进行了更新,包含了SQL Server 2008中的一些新功能和工具。 必备知识 虽然在本书中,我们并没有假设您之前有使用SQL Server的经验,但却在另一些方面做了一些假设。本书假设您熟悉关系数据库的概念,并且还假设您能够熟练使用Windows操作系统(本书所有示例主要使用Windows Server 2008构建)。而可能最大的假设是您至少对于结构化查询语言(SQL)有所了解。本书中的例子都具有明确的定义,但是有时可能需要您改动书中提供的脚本,使其适合自己的环境。在这种情况下,一些基本的SQL知识将起到很大的帮助作用。如果您需要这方面的帮助,可以参阅清华大学出版社引进并出版的《T-SQL编程入门经典(涵盖SQL Server 2008 & 2005)》一书。 主要内容 虽然我们想尽可能全面地提供信息,但是却受到了时间和篇幅的限制。我们已经尽了最大的努力来涵盖SQL Server 2008的主要方面。在本书中,您会看到有关如何维护和管理SQL Server 2008安装的详细信息。本书中也讲述了数据库管理员的大多数日常工作,并介绍了安装、配置、备份、还原、安全性、可用性、性能监控以及管理方面的工具。我们的意图、目标乃至真诚的愿望就是我们给您提供的信息能够帮助您成为一名优秀且成功的数据库管理员。 本书中添加了一些第1版中未涉及的新内容,包括有关SQL Server Analysis Services和SQL Server Reporting Services(这两个都是Microsoft SQL Server BI功能集中的重要工具)的新章节。还有一个新章节介绍了如何优化SQL Server 2008,这将对新老DBA很有帮助。 本书结构 在组织本书内容时,我们特意采用一种逻辑有序的方式。 ● 前4章(第1~4章)讲述了SQL Server 2008的总体结构和安装过程。 ● 在打下了这个基础之后,我们在接下来的两章(第5~6章)讲述了构建和保护数据库的管理过程。 ● 之后的7章(第7~13章)涉及的是特定的管理任务和高可用性解决方案。 ● 最后6章(第14~19章)专门介绍了SQL Server 2008服务和功能,包括公共语言运行时(CLR)、SQL Server商业智能和Service Broker。 如前所述,我们尽量以逻辑顺序组织本书结构,但是和大多数技术类书籍一样,您并不一定要按某种特定的顺序阅读。不过,如果您之前完全不了解SQL Server,那么在阅读其他章节之前,可能需要通读第1章以对这个产品有个总体的了解。 使用要求 要完全利用好本书,需要安装某个版本的SQL Server 2008,同时要安装Adventure Works 2008示例数据库。为了能够执行后面章节中列出的所有步骤,我们强烈推荐安装开发人员版(它支持企业版的所有功能)。为了重现第14章“公共语言运行时”中的例子以及第7章中使用SOAP端点的例子,还需要安装Visual Basic 2008或者Visual C# 2008(推荐Visual Studio 2008专业版)。 源代码 在学习本书中的示例时,可以手工输入所有的代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点/或http://www. tupwk.com.cn/downpage上下载。登录到站点/,使用Search工具或使用书名列表就可以找到本书。接着单击本书细目页面上的Download Code链接,就可以获得所有的源代码。 提示: 由于许多图书的标题都很类似,所以按ISBN搜索是最简单的,本书英文版的ISBN是978-0-470-44091-9。 在下载了代码后,只需对其执行解压缩操作。另外,也可以进入/ dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。 勘误表 尽管我们已经尽了各种努力来保证正文和代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,同时也有助于我们提供更高质量的信息。 请给wkservice@vip.163.com发送电子邮件,我们将会检查您的反馈信息。如果是正确的,我们将在本书的后续版本中采用。 要在网站上找到本书英文版的勘误表,可以登录,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是/misc-pages/booklist.shtml。 要与作者和同行讨论,请加入上的P2P论坛。这个论坛是一个基于Web的系统,便于您发布与Wrox图书相关的消息和相关技术,以及与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您发送感兴趣的主题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。 在上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤: (1) 进入,单击Register链接。 (2) 阅读使用协议,并单击Agree按钮。 (3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按钮。 (4) 您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。 注释: 不加入P2P也可以阅读论坛上的消息,但要发布自己的消息,就必须加入该论坛。 加入论坛后,就可以发布新消息和回复其他用户发布的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。 关于使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。