SQL Server 2012实施与管理实战指南(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-22 05:02:27

点击下载

作者:俞榕刚,朱桦,等

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

SQL Server 2012实施与管理实战指南

SQL Server 2012实施与管理实战指南试读:

前言

Microsoft SQL Server作为一款通用的关系型数据库管理系统,在业界已经有20年的历史。由于其上手容易、管理方便、功能丰富、系统稳定,受到了广大用户的青睐。随着PC服务器能力的提高和它自身的不断改进,它的使用广度和深度正在不断扩大。近年来它的使用主要有以下几种特征。

1.能够支持更多的并发用户与更大的数据库

最近几年,PC服务器完成了从32位到64位的转化,支持的内存数量有了数量级的增加。对于SQL Server这样一个需要缓存大量数据的Windows应用,这无疑帮助巨大。而现在的服务器动辄有十几个、几十个、甚至三位数个数的CPU,也提供了从前想象不到的计算能力,这使得SQL Server能够有更多的系统资源来响应客户端的请求。

而在SQL Server内部,微软的产品组也在不断地优化其内部设计,对资源调度、数据存储、语句执行及内部监控机制都做了重大调整,使得SQL Server能够更有效地利用系统资源,高效稳定地运行。

这两方面相结合,其效果是SQL Server在不断地挑战自身极限,能够支持更多的并发用户数与更大的数据库。我们衡量一台SQL Server能力的强弱经常会看一个性能监视器指标Batch Requests/sec,也就是SQL Server每秒能做完的批处理数目。近年来在国内客户那里,这个指标超过1000的服务器是越来越普遍了。而在一些国外的客户那里,我们能看到负荷超过10000、甚至能完成接近20000个批处理/秒的真实生产系统。

2.成为一个通用数据平台,被更多的应用服务所使用

由于SQL Server出色的表现,它被越来越多的应用服务选作了背后的数据平台。现在很多流行的微软服务器端产品,例如Microsoft SharePoint Service、Microsoft Lync Server、Microsoft Dynamics CRM、Microsoft System Center Configuration Manager,其背后都有SQL Server为它们存储和处理数据。

在这种背景下,SQL Server 2012于2012年上半年发布了。作为全新的企业级信息平台,SQL Server 2012不仅提供了更高级别的企业级稳定性,更灵活深入的商业智能,同时提供多种功能满足公有云及私有云环境下应用的实现与运行,并且可以帮助企业无缝透明地从现有的传统应用迁移到私有云及公有云之上。

SQL Server像微软的其他很多产品一样,上手很容易,装上就能用,入门的门槛不高。国内很多介绍 SQL Server的书籍都集中在功能介绍和编程开发上。很多用户觉得SQL Server就像一台傻瓜照相机,在大部分时候都能拍出不错的照片,可是如果工作不正常或者达不到要求,就不知道应该怎么调整了。其实SQL Server可以当傻瓜机用,但也具有复杂的“手动功能”。对于数据库的常见问题,其实都有一些套路来定位。对于性能优化问题,SQL Server也有很多地方可以调整。一台运行着关键业务的高负荷的SQL Server是需要开发者和使用者的细心管理与精心调优的。

在2009年的时候,作者出版了《Microsoft SQL Server企业级平台管理实践》这本书。作者把自己掌握的有关关系型数据库引擎的知识做了一些梳理,总结出在SQL Server设计和管理过程中最常遇到的问题,进行了比较完整的阐述。此书问世后,得到了读者的好评。

但是当初写那本书的时候,SQL 2005和SQL 2008刚刚在市场上广泛使用,所以很多经验还没有得到完全更新,一些问题诊断方法还在使用着SQL 2000时的老办法。而且因为作者的专业知识还不够全面,像安装、连接组件、群集、数据库镜像、复制、Log Shipping等这些很重要的问题没有被谈及,有些章节写得还不够深入和准确。随着很多新功能的引入,很多原有的做法也有所改变。

这次,我有幸请到了俞榕刚、王佳毅、朱桦三位同事来补充原来缺失的部分,重写相关的章节,并深入讨论SQL Server 2012所带来的改变和新功能。由于他们的强力加入,本书的内容变得更加丰富和全面了。

本书面向的读者

本书不是一本功能介绍的入门书籍,也不像Inside Microsoft SQL Server系列一样偏重理论。本书的最大特点是面向实战。它主要面向SQL Server各个版本的有一定基础的数据库系统管理和开发人员,针对的是他们在日常工作中可能遇到的种种困扰。讨论的主题都是在企业开发数据库应用和使用SQL Server过程中常见的经典问题。在每个章节里,都会从在这个主题上经常会遇到的问题入手,描述其表现形式,介绍其背后的运行机理与基本理论知识,介绍搜集和分析问题日志的方法,以及解决实际问题的可选手段。本书包含的案例分析都来源于真实案例。读者既可以把这本书当作一部进阶学习的参考书籍,更深入地理解SQL Server的原理和运行规律,以提高自身解决问题的能力;也可以把这本书当作一本工具书,遇到问题时查阅解决办法。

本书的结构

本书主要分为4大部分。

第1部分包括第1章~第4章,主要是谈SQL Server系统的选型和部署,包括SQL的安装和升级(第1章)、高可用及灾难恢复方案的选择(第2章和第3章),以及在编写数据库应用时应该怎样选择和使用各种连接组件(第4章)。

第2部分包括第5章~第10章,主要是谈SQL Server日常使用与管理中比较容易遇到的问题,包括SQL Server服务无法启动、数据库不可访问(第5章)、连接问题(第6章)、身份认证与连接加密(第7章)、空间管理(第8章)、数据库备份和恢复手段(第9章)、数据库损坏修复与预防等问题(第10章)。对于数据库管理员,这部分内容可能比较有帮助。

第3部分包括第11章~第18章,主要是谈论SQL Server在运行过程中对各种资源的使用,以及由此可能会遇到的服务器不稳定或者性能问题。其中包括SQL Server内存分配理念和常见内存问题(第11章)、SQL Server常见的I/O问题(第12章)、任务调度与CPU问题(第13章)、阻塞与死锁(第14章和第15章)、从等待状态判断系统资源瓶颈(第16章),以及如何分析有性能问题的语句和怎样去优化它们(第17章和第18章)。如果要做SQL Server的性能调优,或者想了解怎么才能设计出高性能的数据库应用,这部分的讨论对你一定会非常有帮助。

第4部分是第19章,它是个工具性章节,总结了处理SQL Server问题时可能需要检查的日志种类,以及搜集它们的推荐方法。在读者阅读前面各章的时候,这些内容可以作为参考。

本书基于的版本

SQL Server的基础框架结构从2005版以后并没有被推倒重来过,所以本书讨论的问题基本对SQL 2005以后的各个版本都适用,只是有些细节可能会有所不同。对于SQL 2012所引入的新功能或者重大的变化书中特别做出了说明。

本书不包含的内容

本书主要关注于关系型数据库引擎的管理和使用。对于SQL Server的商业智能组件部分,例如SQL Server Analysis Service、SQL Server Reporting Service、SQL Server Integration Service等没有涉及。第1部分 数据库系统的选型和部署

第1部分包括第1章~第4章,主要是谈SQL Server系统的选型和部署,包括SQL的安装和升级(第1章)、高可用及灾难恢复方案的选择(第2章和第3章),以及在编写数据库应用时应该怎样选择和使用各种连接组件(第4章)。第1章 SQL Server的安装和升级第2章 选择必要的高可用性和灾难恢复技术第3章 新一代的高可用技术AlwaysOn第4章 数据库连接组件编程机理第1章 SQL Server的安装和升级

使用SQL Server 2012的第一步就是在服务器上进行安装,或者将先前的SQL Server版本升级到 SQL Server 2012。

SQL Server 2012企业版安装所支持的操作系统有Windows Server 2012,Windows Server 2008 R2 SP1和Windows Server 2008 SP2及后续版本。SQL Server 2012标准版安装所支持的操作系统有Windows Server 2012,Windows Server 2008 R2 SP1、Windows 7 SP1、Windows Server 2008 SP2、Windows Vista SP2及后续版本。

可以直接升级的版本有SQL Server 2005 SP4、SQL Server 2008 SP2、SQL Server 2008 R2 SP1及后续版本。

数据库的安装和升级步骤相当简单,只要启动安装向导,根据需要单击下一步,完成所有的步骤即可。对于安装或升级过程中出现的问题,要尽可能找到失败原因,否则后面再怎么反复尝试很可能还是会失败的。在新服务器上安装相对容易,即使出了严重问题,也可以把整个系统重新安装一遍。但是对于现有系统的升级,一般总是在系统的维护期间操作。如果不能及时完成,就会影响正常的业务。可能只能等下一次维护时段,也许是几个月之后。现有的系统重新安装,一般代价高昂。如果反复安装或升级都不成功,数据库管理员的压力会很大。

数据库的安装和升级没有什么跟数据库本身相关的特别理论知识。如果碰到安装或升级错误,主要应凭借数据库的安装日志和Windows的日志进行分析。在安装或升级过程中,如果环境不是很“纯净”,可能会碰到各种各样的错误。举例如下。

● 性能计数器检查失败,导致数据库无法安装,完整错误信息如下:“对性能监视器计数器注册表执行系统配置检查失败,有关详细信息,请参阅自述文件或SQL Server联机丛书中的‘如何在SQL Server 2012中为安装程序增加计数器注册表项值’”

● 由于相应的msi或msp文件在%windir%\installer目录下丢失,导致升级失败,错误信息如下:

● 在群集环境下,由于其他资源组的磁盘没有上线,导致数据库升级失败,错误信息如下:

● 在群集环境下,由于在域控上没有足够权限,导致SQL网络名无法创建,从而数据库群集安装失败。在Windows应用日志里,错误信息如下:

还会有其他各种各样的错误,无法一一枚举。很多用户在遇到安装和升级错误后,往往会再试几次。如果还是失败,可能就没有办法了,一般会直接放弃当前的环境,重新安装Windows。其实很多安装失败的问题是可以解决的。可以首先查看安装日志,看出错到底在什么地方,然后进一步根据错误信息采取相应的解决办法。

在这一章,我们首先会介绍SQL Server的安装流程(1.1),以及如何查看数据库的安装日志。然后我们会分单机版本(1.2)、特殊版本(1.3)和在群集环境(1.4)下,对数据库进行安装和打补丁一些常见失败原因做一些分析。在1.5节中,我们会介绍在复杂环境里,对数据库做大版本升级的时候,需要注意的一些地方。希望这一章的内容可以帮助读者顺利地安装或者升级SQL Server。1.1 数据库安装过程介绍1.1.1 setup.exe执行过程

SQL Server通过执行setup.exe调用安装向导来进行数据库安装或升级。setup.exe是用native代码写的,不依赖于其他组件,在任何平台上都能运行。以SQL Server 2012为例,这个可执行文件主要做以下几件事情:检测在本服务器上是否有已安装过的setup.exe文件缓存。如果有,而且缓存的setup.exe版本高于或等于正在执行的setup.exe,那么会切换到本机上的setup.exe执行。这样做的目的是为了能够支持Slipstream(集成)安装(在安装时可以同时安装服务封包(Service Pack)和累计更新(Cumulative Update))。检测本机上的.net framework 2.0或3.5是否已经安装。安装程序启动ScenarioEngine.exe对全局规则(global rule)进行检查,如图1-1所示。图1-1 安装程序对全局规则进行检查通过全局规则(global rule)检查后,ScenarioEngine.exe会扫描是否有最新的补丁,如图1-2所示。如果不想检查,可以选择“Skip Scan”,并继续进行安装。图1-2 安装程序搜索是否有最新的补丁随后,ScenarioEngine.exe会对Setup files组件执行安装,如图1-3所示。图1-3 安装程序对Setup files组件进行安装ScenarioEngine.exe执行真正的用户请求操作,如图1-4所示。图1-4 ScenarioEngine.exe执行真正的用户请求操作

ScenarioEngine.exe是用C#写的,它根据用户输入信息产生工作流,并根据工作流信息执行安装。跟具体的SQL安装(ScenarioEngine.exe)日志不同,setup.exe的安装日志存放在%temp%目录下的 sqlsetup*.log文件中。

一般来讲,运行setup.exe这一阶段安装出错的可能性非常小。下面来讨论一下在执行工作流所产生的日志,也就是通常所说的SQL Server安装日志。执行工作流所产生的安装日志会比较多,我们在1.1.2节会介绍它们的位置,以及其中重要的几个安装日志文件。1.1.2 重要的数据库的安装日志文件

SQL Server在安装或升级的过程中会生成日志。不同版本的SQL Server其安装日志的位置稍有不同。SQL Server 2005安装日志目录是:%programFiles%\Microsoft SQL Server\90\Setup Bootstrap\Log。在Log目录下有两个子目录Files和Hotfix。其中Files子目录包含安装日志,Hotfix子目录包含服务封包和累计更新日志,如图1-5所示。

SQL Server 2008和SQL Server 2008 R2对安装或服务封包或累计更新不再区分,而是以时间为子目录统一放在如下目录:%programFiles%\Microsoft SQL Server\100\Setup Bootstrap\Log。SQL Server 2012也是以时间为子目录放在%programFiles%\Microsoft SQL Server\110\Setup Bootstrap\Log下,如图1-6所示。图1-5 SQL Server 2005的安装日志路径图1-6 SQL Server 2012的安装日志路径

子目录的时间以格式(如20120419_222544)表明我们的安装或升级是在2012年4月19日晚上10点25分44秒开始的。

以时间为单位的子目录下有很多日志文件,如图1-7所示。图1-7 具体的安装日志文件

下面对其中重要的日志文件进行介绍。

该文件是安装小结,读者看安装日志的时候,建议首先看这个文件。下面是这个小结的一个例子:有部分删除,并加有部分注释。

如果某个功能安装不成功,则会显示信息告诉我们大致的错误信息,以及从哪个日志能更具体的看到错误信息。如对于下面安装失败的例子,其小结告诉我们Database Engine服务安装出错,群集中资源不能正常上线,要看具体的日志需要进一步查看Detail.txt。

这是详细日志。由于是详细日志,所以里面记载的日志非常之多且详细,从头到尾把这个日志读下来是不太现实的,不过读者可以用关键字“Error:”或“Exception”来迅速定位到出错的地方。如针对前面提到的群集资源状态不正确的错误,其具体的Detail.txt相应日志如下:

从日志来看,我们在把群集资源SQL Server(xxxx)上线的时候,其依赖的某一资源不能正常上线,导致SQL Server资源在线超时而处于Failed状态,数据库的整体安装失败。

这时,查看Windows的日志就能发现SQL Server(xxxx)所依赖的数据库网络名资源上线失败,其根本原因是在于域控制器上的权限不足所导致的。我们会在后面的1.4节提到如何解决这个问题。

SQL Server安装程序进入工作流后,会根据用户选择不同而安装不同的组件,如SQL Server Management Studo组件,其安装源的MSI文件名为sql_ssms.msi。每一个MSI文件在安装时,会分别生成安装日志。其日志文件的命名规范是__.log。如sql_ssms_Cpu64_1.log是在64位平台上安装SQL Server Management

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载