SQL Server中的事务日志管理(2/9):事务日志架构概述

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的。你只要确保每个数据库都有正确的备份。当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时。这系列文章会告诉你每个DBA应该知道的具体细节。


虽然我们想回避它,去讨论下事务日志的内部结构和内部运行机制,但适当的理解下日志维护技术是有益的。这个话题在Paul Randal的讲座《理解SQL Server里的日志和恢复》里已经讲得很透彻,另外Kalen Delaney的《深入解析Microsoft SQL Server 2008》书里也有很详细的讲解,因此在这里我们将会简单介绍。

虚拟日志文件(Vitual Log Files(VLF))

事务日志文件是连续的文件;换句话说,SQL Server是连续写事务日志的(不像数据文件,它是随机写入的,因为数据是在随机的数据页里修改的)。

存储注意事项

在写入数据和日志文件的不同方式意味着它们也会有不同的存储注意事项,例如对于存储各个文件类型的硬盘,要配置合适的RAID,这个会在以后的文章里介绍。

每个插入日志文件的日志记录会用逻辑序列号(Logical Sequence Number(LSN))标记。当数据库和它关联的日志文件第一次创建时,第1条日志记录标志着逻辑文件的开始,同时也是物理文件的开始。LSN接下来也是自增长;最近增加的日志记录总会有最大的LSN,也标志着逻辑文件的结束(等下会详细讲解)。所有日志记录与提供的事务在LSN链(LSN chain)里链接,LSN上有指针前后指向当前操作的成功的和进行中的事务操作。

在内部,SQL Server把事务日志文件分成许多所谓的虚拟日志文件(virtual log files(VLFs))段。图1描述了8个VLFs组成的事务日志,还有标记了日志的活动部分。

2.1 有8个VLFs的日志记录

2.1 有8个VLFs的日志记录

在第1篇文章里我们提到,任何与打开事务相关日志记录都需要回滚的可能。另外,在数据库里还有很多其他使用事务日志的活动(包括复制,镜像和修改数据快照),也需要保持事务日志记录直到这些活动已经处理。在图2.1里显示的最小LSN的日志记录,是定义为“用作成功的数据库范围回滚或数据库里其他活动和操作的最老记录“。有时候它们也称为日志“头”。

活动日志记录的原因

活动事务可以让日志记录活动,除此之外,还有很多原因让它活动。这个在接下来的文章都会谈到。

现在可以说,如果一条日志记录对于任何事务或活动需要的话,这个日志记录就是活动的,它对应的VLF也是活动的一部分。

如图2.1所示,最近的日志记录总有最大LSN,这标志着日志的逻辑尾。接下来的记录都会写在日志逻辑尾。在最小LSN和和最大LSN之间的文件部分称为活动日志(active log)

活动日志不包含“活动”(例如打开)事务的细节,这很重要。例如,假设有个开始于上午9点,持续30分钟执行的打开事务(T1)日志记录定义了最小LSN。如果接下来的事务(T2)开始于上午9点10分,结束于9点11分,它还会是活动日志的一部分,因为相关日志记录的LSN比最小LSN大。在上午9点30分,当T1提交时,对于开始于上午9点25分的打开事务(T3)的日志记录会有新的最小LSN。到这时,对于T2的日志记录不会是活动日志的一部分。

任何包含活动日志任何部分的VLF都被认为是活动VLF。例如,图2.1的VLF3就是个活动VLF,即使它包含的大部分日志记录不是活动日志的一部分。一旦事务开始并提交,我们可以(简单)想象出日志头会在图2.1里从左往右移动,因此刚才包含活动记录部分的VLFS现在变成了不活动(VLF1和VLF2),刚才没用到的(VLF8)的VLFS会变成活动日志部分。

标记一个VLF为“不活动”具体做什么取决于数据库使用的恢复模式,接下来我们会谈到。

日志截断与空间重用

这里要注意的重点是日志文件里截断的最小单位不是各个日志记录或日志块,是VLF。如果在VLF里的一条日志记录还是活动日志部分,那么整个VLF被认为是活动的且不能被截断(cannot be truncated)

一把来说,一个VLF会是2个物理状态的1个:活动(active)或不活动(inactive)。但是,基于VLF的可能不同“行为”,我们可以分出4个逻辑状态:

  1. 活动(Active)——这个状态的VLF是活动的,因为它至少包含活动日志部分的一条记录,因此它需要被回滚或其他目的。
  2. 可恢复(Recoverable)——这个状态的VLF是不活动的,但没被截断或备份,空间不可以重用。
  3. 可重用(Reusable)——这个状态的VLF是不活动的,它已被截断或备份,空间可以重用。
  4. 未使用(Unused)——这个状态的VLF是不活动的,在它里面还没有被记录的日志记录。

把一个VLF标记为不活动——按照我们的逻辑状态,这表示从状态2切换到状态3——被称为日志截断(log truncation)。

这个日志截断什么时候发生取决于使用的恢复模式。当数据库在简单(Simple)恢复模式时,活动的VLF在检查点操作时变成不活动。当检查点发生时,缓存中的任何脏页写回到硬盘,然后日志中的空间变成可重用。

但是,在完整(FULL)或大容量日志(BULL LOGGED)模式里,只有日志备份可以把活动的VLF变成不活动。这样的话,一旦日志备份已完成备份,任何VLFs不在需要是不活动的,因此是可重用的。

在图2.2,我们看看到检查点(或日志备份)的结果,VLF1和VLF2已被截断且是不活动。活动日志的开始现在是VLF3的开始,VLF8还从未用过,因此它是不活动的(状态4)。

2.2 截断后,有8个VLF的事务日志

2.2 截断后,有8个VLF的事务日志

下一个要考虑的问题,当活动日志到达VLF7尾时会发生什么。日志文件中空间简单来想都是反复被重用的,尽管有让空间重用模式变得相当专制的复杂因素,对此在这个系列文章里我们不会深入探讨。

不过,在最简单的情况下,一旦日志的逻辑尾到达VLF尾,SQL Server会开始重用接下来顺序的不活动VLF。在图2.1,会是VLF8。当VLF8满了,它会回绕重用VLF1和VLF2。如果没有更多的可用VLF,日志会需要自动增长,增加更多的VLF。由于自动增长被停用或磁盘提供的日志文件满了(没磁盘空间了),活动日志的逻辑尾会遇上日志文件的逻辑尾,事务日志满了,就会发生9002错误。

这个架构解释了原因,例如,一个长时间运行的事务,或由于某个原因复制的事务没有发送到派发的数据库,或者是丢失连接的镜像,还有其它的原因,会造成日志增长非常大。例如,考虑下图2.2,关联最小LSN的事务非常长时间运行。日志已经包裹了,填满了VLF1,VLF2和VLF8,没有不活动的VLF了。即使在最小LSN后的每个事务已提交,在这些VLFs没有可重用的空间,因为所有的的VLF还是活动日志部分。

我们很容易演示这个例子。首先,重新执行1.1代码删除和重建TestDB数据库。

 1 USE master ;
 2 IF EXISTS ( SELECT  name
 3             FROM    sys.databases
 4             WHERE   name = 'TestDB' ) 
 5     DROP DATABASE TestDB ;
 6 CREATE DATABASE TestDB ON
 7 (
 8   NAME = TestDB_dat,
 9   FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestDB.mdf'
10 ) LOG ON
11 (
12   NAME = TestDB_log,
13   FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestDB.ldf'
14 ) ;
15 DBCC SQLPERF(LOGSPACE) ;

然后创建一个小表,在显性事务里更新表里的行,把事务停留在打开状态(不要提交它)。

 1 USE TestDB
 2 CREATE TABLE Test
 3  (
 4     num INT,
 5      Filler CHAR(8000)
 6  )
 7  GO
 8  
 9  INSERT INTO dbo.Test
10          ( num, Filler )
11  VALUES  ( 1, -- num - int
12            REPLICATE('A', 8000)  -- Filler - char(8000)
13            )           
14            
15 BEGIN TRAN
16 UPDATE dbo.Test SET Filler=REPLICATE('B',8000) WHERE num=1
17 
18 DBCC SQLPERF(LOGSPACE) ;
19 
20 --ROLLBACK

在新开会话里,进行数据库完整备份,插入100万条记录后,查看日志空间占用。

 1 -- full backup of the database
 2 BACKUP DATABASE TestDB
 3 TO DISK ='C:\Backups\TestDB.bak'
 4 WITH INIT;
 5 GO
 6 
 7 USE TestDB ;
 8 GO
 9 IF OBJECT_ID('dbo.LogTest', 'U') IS NOT NULL 
10     DROP TABLE dbo.LogTest ;
11 --===== AUTHOR: Jeff Moden
12 --===== Create and populate 1,000,000 row test table.
13 -- "SomeID" has range of 1 to 1000000 unique numbers
14 -- "SomeInt" has range of 1 to 50000 non-unique numbers
15 -- "SomeLetters2";"AA"-"ZZ" non-unique 2-char strings
16 -- "SomeMoney"; 0.0000 to 99.9999 non-unique numbers
17 -- "SomeDate" ; >=01/01/2000 and <01/01/2010 non-unique
18 -- "SomeHex12"; 12 random hex characters (ie, 0-9,A-F) 
19 SELECT TOP 1000000
20         SomeID = IDENTITY( INT,1,1 ),
21         SomeInt = ABS(CHECKSUM(NEWID())) % 50000 + 1 ,
22         SomeLetters2 = CHAR(ABS(CHECKSUM(NEWID())) % 26 + 65)
23         + CHAR(ABS(CHECKSUM(NEWID())) % 26 + 65) ,
24         SomeMoney = CAST(ABS(CHECKSUM(NEWID())) % 10000 / 100.0 AS MONEY) ,
25         SomeDate = CAST(RAND(CHECKSUM(NEWID())) * 3653.0 + 36524.0 AS DATETIME) ,
26         SomeHex12 = RIGHT(NEWID(), 12)
27 INTO    dbo.LogTest
28 FROM    sys.all_columns ac1
29         CROSS JOIN sys.all_columns ac2 ;
30 
31 DBCC SQLPERF(LOGSPACE) ;

进行日志备份。

1 -- now backup the transaction log
2 BACKUP LOG TestDB
3 TO DISK ='C:\Backups\TestDB_log.bak'
4 WITH INIT ;
5 GO
6 
7 DBCC SQLPERF(LOGSPACE) ;

可以看到,日志备份后,空间不会被重用。

我们把刚才的事务回滚。

1 ROLLBACK

再次备份日志。

1 -- now backup the transaction log
2 BACKUP LOG TestDB
3 TO DISK ='C:\Backups\TestDB_log.bak'
4 WITH INIT ;
5 GO
6 
7 DBCC SQLPERF(LOGSPACE) ;

可以看到,日志空间已经被重用了。

在这样的情况下,如果活动日志占用的“区域”很大,大量的空间没被重用,这样的话,日志文件大小会增大(增长并增长……)。可以延迟日志文件截断的其他因素会在第8篇——救命,我的日志满了里讨论。

太多虚拟日志文件?

一般来说,SQL Server决定VLF的大小优化和个数分配。但是,频繁自动增长的事务日志,在小增量里会有很大数的小VLF。这个现象称为日志碎片(log fragmentation),我们可以通过第1篇里的代码演示下,同时可以使用DBCC LogInfo命令来询问VLF架构。

使用DBCC LogInfo询问日志信息

DBCC LogInfo是个未公开且不支持的命令——微软对此很少介绍。但是,它可以用来询问VLFs。它每个VLF返回一行,除了别的以外,还有VLF的状态。0值状态表示这个VLF是可用的(在状态3和4里),如上介绍,2值状态表示这个是不可用的(在状态1和2里)。在后续的文章我们会详细介绍它。

我们删除并重建TestDB数据。

 1 USE master ;
 2 IF EXISTS ( SELECT  name
 3             FROM    sys.databases
 4             WHERE   name = 'TestDB' ) 
 5     DROP DATABASE TestDB ;
 6 CREATE DATABASE TestDB ON
 7 (
 8   NAME = TestDB_dat,
 9   FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestDB.mdf'
10 ) LOG ON
11 (
12   NAME = TestDB_log,
13   FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestDB.ldf'
14 ) ;

然后运行DBCC LogInfo命令。

1 -- how many VLFs?
2 DBCC Loginfo
3 GO

现在我们并没有返回任何有意义的列;4行返回表示我们有4个VLF。现在我们往表里插入100条记录到TetsDB数据库的LogTest表,再次执行DBCC LogInfo命令。

 1 USE TestDB ;
 2 GO
 3 IF OBJECT_ID('dbo.LogTest', 'U') IS NOT NULL 
 4     DROP TABLE dbo.LogTest ;
 5 --===== AUTHOR: Jeff Moden
 6 --===== Create and populate 1,000,000 row test table.
 7 -- "SomeID" has range of 1 to 1000000 unique numbers
 8 -- "SomeInt" has range of 1 to 50000 non-unique numbers
 9 -- "SomeLetters2";"AA"-"ZZ" non-unique 2-char strings
10 -- "SomeMoney"; 0.0000 to 99.9999 non-unique numbers
11 -- "SomeDate" ; >=01/01/2000 and <01/01/2010 non-unique
12 -- "SomeHex12"; 12 random hex characters (ie, 0-9,A-F) 
13 SELECT TOP 1000000
14         SomeID = IDENTITY( INT,1,1 ),
15         SomeInt = ABS(CHECKSUM(NEWID())) % 50000 + 1 ,
16         SomeLetters2 = CHAR(ABS(CHECKSUM(NEWID())) % 26 + 65)
17         + CHAR(ABS(CHECKSUM(NEWID())) % 26 + 65) ,
18         SomeMoney = CAST(ABS(CHECKSUM(NEWID())) % 10000 / 100.0 AS MONEY) ,
19         SomeDate = CAST(RAND(CHECKSUM(NEWID())) * 3653.0 + 36524.0 AS DATETIME) ,
20         SomeHex12 = RIGHT(NEWID(), 12)
21 INTO    dbo.LogTest
22 FROM    sys.all_columns ac1
23         CROSS JOIN sys.all_columns ac2 ;
1 USE TestDB
2 -- how many VLFs?
3 DBCC Loginfo
4 GO

现在我们有131行返回,这表示我们有131个VLF!来自model数据库的增长属性决定日志文件有非常小的初始大小,然后在相对小的增量里增长。对于数据库对象,对于这里活动,这些属性是不合适的,会导致大量的VLF。

日志文件碎片对性能会造成很大的影响,尤其在灾难恢复,还原,日志备份;换句话说,这些操作会读日志文件。我们会在第7篇——事务日志的大小和增长详细讨论它,还会展示如何通过修正日志文件的大小来避免碎片。但是,为了给你它会有的影响的大致情况,Lichi Shea已经演示了:但与16个VLF的数据库和20000个VLF的数据相比,在进行数据修改的性能上会带来很大的影响。

最后,在一个日志文件里VLF的合理个数问题取决于日志的大小。一般来说,微软认为超过200个VLF就要关注它造成问题的可能,但在很大的日志文件里(例如500GB)只有200个VLF也会是个问题,这些VLF太大,限制令空间重用。Kimberly Tripp的“事务日志VLF——太多还是太少”详细讨论了这个问题。

小结

在这篇文章里,我们按照事务日志架构的谈了一些背景知识,我们很有必要理解这些知识,我们也谈了日志文件的截断、空间重用和碎片等潜在问题。

在下篇文章里,我们会详细谈到在数据库还原与恢复里,事务日志是如何使用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(本书由4部分组成,需下载完4个文件之后,放在同一文件目录下才能正常解压) 基本信息   作者:(美国)(William R.Stanek)斯坦里克 译者:贾洪峰   出版社:清华大学出版社   页码:583 页   出版日期:2009年   ISBN:9787302192671   装帧:平装   开本:16   丛书名:微软技术丛书   定价:69.00 编辑本段 作者简介   William R.Stanek微软MVP(最有价值专家),拥有20多年系统管理和高级编程的经验。他是屡获嘉奖的作家,著作多达70部,其包括Microsoft Windows Server 2008 InsideOut。他也是“管理员必备指南”系列丛书的编辑。 编辑本段 编辑推荐   《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!   这本实用指南讲述了SQL Server 2008日常管理的工作。使用快速参考表、指令和列表聚焦核心的支持与维护任务。无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。   《SQL Server 2008管理员必备指南》重要主题:   规划、部署和配置SQL Server 2008   管理服务器,管理外围安全、访问及网络配置   导入、导出、转换和复制数据   使用SQL Server Management Studio执行主要的管理任务   操作架构、表、索引和视图   进行自动化维护和实现基于策略的管理   监视服务器活动并优化性能   管理日志传送和数据库镜像   执行备份和还原   《微软技术丛书》包括以下几个子系列   从入门到精通   适舍新手程序员的实用教程   侧重于基础技术和特征   提供范例文件   技术内幕   权威必备的参考大全   包含丰富、实用的范例代码   帮助读者熟练掌握微软技术   高级编程   侧重于高级特性、技术和解决问题   包含丰富适用性强的范倒代码   帮助读者精通微软技术   精通&宝典   着重剖析应用技巧以帮助提高工作效率   主题包括办公应用和开发工具   认证考试教材   完全根据考试要求来阐述每一个知识点   提供可供搜索的Ebook(英文版)和训练题   提供实际场景案例分析和故障诊断实验   SQL Server专家的呕心力作,数据库管理员的实战宝典,全面、深入地剖析SQL Server2008新特性,结构独特,实例丰富,操作性强。 编辑本段 目录   第Ⅰ部分 SQL Server 2008管理基础   第1章 SQL Server 2008管理概况 3   1.1 SQL Server 2008与硬件 4   1.2 SQL Server 2008的版本 6   1.3 SQL Server和Windows 8   1.3.1 SQL Server的服务 8   1.3.2 SQL Server登录和身份验证 9   1.3.3 SQL Server的服务帐户 10   1.4 使用图形化管理工具 11   1.5 使用命令行工具 14   1.5.1 BCP 15   1.5.2 SQLCMD 15   1.5.3 其他命令行工具 17   1.6 使用SQL Server PowerShell 18   1.6.1 运行和使用cmdlet 18   1.6.2 运行和使用SQL Server PowerShell 19   1.6.3 使用SQL Server cmdlet 20   第2章 部署SQL Server 2008 22   2.1 SQL Server集成角色 22   2.1.1 使用SQL Server集成服务 22   2.1.2 使用SQL Server 2008的关系数据仓库 23   2.1.3 使用SQL Server 2008的多维数据库和数据挖掘 25   2.1.4 使用SQL Server 2008管理报表 26   2.2 规划SQL Server 2008的部署 27   2.2.1 建立服务器的性能系统 27   2.2.2 配置I/O子系统 28   2.2.3 确保可用性和可伸缩性 30   2.2.4 确保连接性和数据访问 31   2.2.5 管理SQL Server配置和安全性 32   2.3 运行安装程序和修改SQL Server安装 33   2.3.1 创建新的SQL Server实例 33   2.3.2 添加组件和实例 44   2.3.3 修复SQL Server 2008安装 44   2.3.4 升级SQL Server 2008版本 45   2.3.5 卸载SQL Server 45   第3章 管理外围安全、访问以及网络配置 46   3.1 管理SQL Server的组件功能 46   3.2 配置SQL Server服务 49   3.2.1 管理服务配置 50   3.2.2 管理服务的状态和启动模式 53   3.2.3 设置启动的服务帐户 54   3.2.4 配置文件流 56   3.2.5 配置服务转储目录、错误报告和客户反馈报告 58   3.3 管理网络和SQL本地客户端配置 59   3.3.1 管理连接配置 60   3.3.2 配置Shared Memory网络配置 62   3.3.3 配置Named Pipes网络配置 62   3.3.4 配置TCP/IP网络配置 62   3.3.5 配置本地客户端配置的安全性 65   3.3.6 配置本地客户端协议的顺序 65   3.3.7 设置共享内存的本地客户端配置 66   3.3.8 设置命名管道的本地客户端配置 66   3.3.9 设置TCP/IP本地客户端配置 67   第4章 配置和优化SQL Server 2008 68   4.1 访问SQL Server的配置数据 69   4.1.1 使用系统目录和目录视图 70   4.1.2 使用系统存储过程 75   4.2 管理SQL Server配置选项的技巧 82   4.2.1 设置配置选项 82   4.2.2 使用SET选项 83   4.2.3 使用服务器选项 85   4.2.4 使用数据库选项 86   4.2.5 管理数据库的兼容性 87   4.3 通过存储过程配置SQL Server 88   4.3.1 使用SQL Server Management Studio查询 88   4.3.2 执行查询和改变设置 90   4.3.3 检查和设置配置参数 91   4.3.4 使用ALTER DATABASE改变设置 95   第Ⅱ部分 SQL Server 2008的系统管理   第5章 管理企业 101   5.1 使用SQL Server Management Studio 101   5.1.1 开始使用SQL Server Management Studio 101   5.1.2 连接到特定的服务器实例 103   5.1.3 连接到特定数据库 103   5.2 管理SQL Server组 104   5.2.1 介绍SQL Server组 104   5.2.2 创建服务器组 106   5.2.3 删除服务器组 106   5.2.4 编辑和移动服务器组 107   5.2.5 添加SQL Server到一个组 107   5.3 管理服务器 107   5.3.1 注册已连接服务器 108   5.3.2 在“已注册的服务器”视图注册新的服务器 109   5.3.3 注册以前注册的SQL Server 2000服务器 109   5.3.4 更新本地服务器注册 110   5.3.5 将服务器组和注册信息复制到另一台计算机 110   5.3.6 编辑注册属性 112   5.3.7 连接到服务器 113   5.3.8 从服务器断开连接 113   5.3.9 移动服务器到新的组 113   5.3.10 删除服务器注册 113   5.4 启动、停止和配置SQL Server代理 114   5.5 启动、停止和配置Microsoft分布式事务处理协调器 114   5.6 管理SQL Server启动 115   5.6.1 启用或防止SQL Server的自动启动 115   5.6.2 设置数据库引擎的启动参数 116   5.6.3 从命令行管理服务 118   5.6.4 管理SQL Server命令行的可执行文件 119   5.7 管理服务器活动 120   5.7.1 检查进程信息 120   5.7.2 跟踪资源等待和阻塞 122   5.7.3 检测修复死锁和阻塞连接 125   5.7.4 在SQL Server跟踪命令的执行 126   5.7.5 终止服务器进程 127   第6章 使用SQL Server Management Studio配置SQL Server 128   6.1 使用SQL Server Management Studio管理配置 128   6.2 确定系统和服务器信息 130   6.3 配置身份验证和审核 130   6.3.1 设置身份验证模式 131   6.3.2 设置审核级别 132   6.3.3 启用或禁用C2审核登录 132   6.3.4 启用或禁用“符合公共标准” 133   6.4 调节内存的使用 133   6.4.1 动态配置内存 135   6.4.2 使用固定内存 136   6.4.3 启用AWE内存的支持 136   6.4.4 为索引优化内存 137   6.4.5 为查询分配内存 138   6.5 配置处理器和并行处理 138   6.5.1 优化CPU的使用 139   6.5.2 设置并行处理 141   6.6 配置线程、优先级和纤程 142   6.7 配置用户和远程连接 143   6.7.1 设置最大用户连接 144   6.7.2 设置默认连接选项 145   6.7.3 配置远程服务器连接 146   6.8 管理服务器设置 147   6.8.1 启用或禁用文件流 148   6.8.2 设置SQL Server的默认语言 148   6.8.3 允许和禁止嵌套触发器 149   6.8.4 控制查询的执行 149   6.8.5 配置2000年的支持 150   6.9 管理数据库设置 150   6.9.1 设置索引填充 151   6.9.2 配置备份和还原超时选项 152   6.9.3 配置备份和还原保持选项 153   6.9.4 用检查点清空缓存 153   6.9.5 压缩备份媒体 153   6.10 添加和删除活动目录的信息 154   6.11 修复配置故障 154   6.11.1 从损坏的配置恢复 154   6.11.2 更改排序规则和重新生成master数据库 155   第7章 数据库管理的核心任务 157   7.1 数据库文件和日志 157   7.2 数据库管理基础 161   7.2.1 在SQL Server Management Studio查看数据库的信息 161   7.2.2 使用T-SQL查看数据库信息 163   7.2.3 检查系统和示例数据库 164   7.2.4 检查数据库对象 164   7.3 创建数据库 166   7.3.1 在SQL Server Management Studio创建数据库 167   7.3.2 使用T-SQL创建数据库 170   7.4 修改数据库及其选项 171   7.4.1 在SQL Server Management Studio设置数据库选项 171   7.4.2 使用ALTER DATABASE修改数据库 172   7.4.3 配置自动选项 176   7.4.4 在数据库级别上控制ASNI的兼容性 177   7.4.5 配置参数化 179   7.4.6 配置游标选项 181   7.4.7 控制用户访问和数据库状态 182   7.4.8 设置联机、脱机或紧急模式 183   7.4.9 管理数据库链接和外部访问选项 183   7.4.10 配置恢复、日志记录和磁盘I/O错误检查选项 184   7.4.11 查看、更改和覆盖数据库选项 186   7.5 管理数据库日志大小 186   7.5.1 配置SQL Server自动管理文件大小 186   7.5.2 手动扩展数据库日志 187   7.5.3 手动压缩和收缩数据库 187   7.6 操作数据库 191   7.6.1 重命名数据库 191   7.6.2 清除和删除数据库 192   7.6.3 附加和分离数据库 193   7.7 提示和技巧 195   7.7.1 复制和移动数据库 195   7.7.2 移动数据库 199   7.7.3 移动tempdb和改变tempdb的大小 200   7.7.4 创建辅助数据和日志文件 201   7.7.5 防止事务日志错误 201   7.7.6 防止文件组充满的错误 202   7.7.7 创建新的数据库模板 202   7.7.8 配置数据库加密 202   第8章 全文搜索的管理 204   8.1 全文目录和索引 204   8.2 管理全文目录 207   8.2.1 查看目录属性 207   8.2.2 创建目录 209   8.2.3 启用表和视图的索引 210   8.2.4 编辑表和视图的索引 212   8.2.5 从表或视图禁用和删除全文索引 212   8.2.6 填充全文目录 213   8.2.7 重新生成当前目录 216   8.2.8 清除旧的目录 217   8.2.9 删除目录 217   8.3 管理全文搜索 218   8.3.1 设置全文搜索的默认语言 218   8.3.2 使用非索引字表 219   8.3.3 创建非索引字表 220   8.3.4 管理非索引字表 222   8.3.5 创建和使用同义词库文件 223   第9章 管理SQL Server 2008的安全性 227   9.1 SQL Server 2008安全性概况 227   9.1.1 使用安全主体和安全对象 228   9.1.2 理解安全对象的权限 229   9.1.3 检查授予安全对象的权限 231   9.2 SQL Server 2008的身份验证模式 234   9.2.1 Windows身份验证 234   9.2.2 混合模式和SQL Server登录 234   9.3 特殊目的的登录和用户 235   9.3.1 使用管理员组 235   9.3.2 使用管理员用户帐户 236   9.3.3 使用sa登录 236   9.3.4 使用NETWORK SERVICE和SYSTEM登录 236   9.3.5 使用guest用户 236   9.3.6 使用dbo用户 237   9.3.7 使用sys和INFORMATION_SCHEMA用户 238   9.4 权限 238   9.4.1 对象权限 238   9.4.2 语句权限 243   9.4.3 隐含权限 243   9.5 角色 243   9.5.1 服务器角色 244   9.5.2 数据库角色 245   9.6 管理服务器登录 247   9.6.1 查看和编辑现有的登录 247   9.6.2 创建登录 249   9.6.3 用T-SQL编辑登录 251   9.6.4 允许或拒绝访问服务器 252   9.6.5 启用、禁用和解锁登录 253   9.6.6 删除登录 254   9.6.7 更改密码 254   9.7 配置服务器角色 255   9.7.1 为登录分配角色 255   9.7.2 为多个登录分配角色 256   9.7.3 撤销服务器登录的访问权限和授予的角色 257   9.8 控制数据库访问和管理 258   9.8.1 为登录分配访问权限和角色 258   9.8.2 为多个登录分配角色 259   9.8.3 创建标准的数据库角色 260   9.8.4 创建应用程序数据库角色 261   9.8.5 删除数据库用户的角色成员关系 262   9.8.6 删除用户定义的角色 262   9.8.7 管理访问和角色的Transact-SQL命令 263   9.9 管理数据库权限 264   9.9.1 为语句分配数据库权限 264   9.9.2 登录的对象权限 269   9.9.3 多个登录的对象权限 270   第Ⅲ部分 SQL Server 2008的数据管理   第10章 操作架构、表、索引和视图 275   10.1 处理架构 275   10.1.1 创建架构 276   10.1.2 修改架构 278   10.1.3 将对象移动到新架构 279   10.1.4 删除架构 280   10.2 表的概况 280   10.3 表的实质 281   10.3.1 了解数据页 281   10.3.2 了解区 282   10.3.3 了解表的分区 283   10.4 处理表 283   10.4.1 创建表 284   10.4.2 修改现有的表 288   10.4.3 查看表的行和大小的信息 290   10.4.4 显示表属性和权限 291   10.4.5 显示表当前的值 291   10.4.6 复制表 292   10.4.7 重命名和删除表 292   10.4.8 在一个表添加和删除列 293   10.4.9 编写表脚本 294   10.5 管理表的值 294   10.5.1 使用原始数据类型 294   10.5.2 使用固定长度、可变长度   和最大长度的字段 298   10.5.3 使用用户定义的数据类型 299   10.5.4 允许和不允许Null值 301   10.5.5 使用默认值 302   10.5.6 使用稀疏列 302   10.5.7 使用标识和全局唯一标识符 303   10.5.8 使用用户定义的表类型 304   10.6 使用视图 307   10.6.1 操作视图 307   10.6.2 创建视图 308   10.6.3 修改视图 311   10.6.4 使用可更新视图 312   10.6.5 管理视图 312   10.7 创建和管理索引 313   10.7.1 了解索引 313   10.7.2 使用聚集索引 315   10.7.3 使用非聚集索引 315   10.7.4 使用XML索引 315   10.7.5 使用筛选索引 316   10.7.6 确定应当索引哪些列 317   10.7.7 索引计算列和视图 318   10.7.8 查看索引属性 318   10.7.9 创建索引 320   10.7.10 管理索引 324   10.7.11 使用数据库引擎优化顾问 326   10.8 列约束和规则 329   10.8.1 使用约束 329   10.8.2 使用规则 333   10.9 创建已分区表和索引 334   10.9.1 创建分区函数 334   10.9.2 创建分区方案 335   10.9.3 创建分区 335   10.9.4 查看和管理分区 337   10.10 压缩表、索引和分区 338   10.10.1 使用行和页压缩 338   10.10.2 设置或改变压缩设置 339   第11章 数据的导入和导出及转换 341   11.1 使用集成服务 341   11.1.1 集成服务简介 341   11.1.2 集成服务工具 342   11.1.3 集成服务和数据提供程序 344   11.1.4 集成服务包 344   11.2 使用SQL Server导入和导出向导创建包 345   11.2.1 阶段1:数据源和目标的配置 346   11.2.2 阶段2:复制或查询 353   11.2.3 阶段3:格式化和转换 357   11.2.4 阶段4:保存和执行 360   11.3 了解BCP 363   11.3.1 BCP 基础 363   11.3.2 BCP 语法 363   11.3.3 BCP 权限和模式 366   11.3.4 使用BCP导入数据 366   11.3.5 使用BCP导出数据 368   11.4 BCP脚本 368   11.5 使用BULK INSERT 命令 369   第12章 链接服务器与分布式事务 371   12.1 使用链接服务器和分布式数据 371   12.1.1 使用分布式查询 372   12.1.2 使用分布式事务 374   12.1.3 运行分布式事务处理协调器服务 375   12.2 管理链接服务器 375   12.2.1 添加链接服务器 376   12.2.2 配置链接服务器的安全性 379   12.2.3 设置远程和链接服务器的服务器选项 381   12.2.4 删除链接服务器 382   第13章 实施快照、合并和事务复制 384   13.1 复制的概况 384   13.1.1 复制组件 385   13.1.2 复制代理和作业 386   13.1.3 复制的类型 387   13.2 复制的计划 389   13.2.1 复制模式 389   13.2.2 复制的预备任务 390   13.3 分发服务器的管理 392   13.3.1 设置新的分发服务器 392   13.3.2 更新分发服务器 396   13.3.3 创建分发数据库 398   13.3.4 启用和更新发布服务器 399   13.3.5 启用发布数据库 399   13.3.6 删除分发数据库 400   13.3.7 禁用发布和分发 400   13.4 创建和管理发布 401   13.4.1 创建发布 401   13.4.2 查看和更新发布 407   13.4.3 设置发布属性 408   13.4.4 设置代理安全性和进程帐户 409   13.4.5 控制订阅访问发布 410   13.4.6 为发布创建脚本 410   13.4.7 删除发布 411   13.5 订阅发布 411   13.5.1 订阅的实质 411   13.5.2 创建订阅 412   13.5.3 查看订阅属性 415   13.5.4 更新、维护和删除订阅 416   13.5.5 验证订阅 416   13.5.6 重新初始化订阅 417   第Ⅳ部分 SQL Server 2008的优化与维护   第14章 分析和监视SQL Server 2008 421   14.1 监视服务器的性能和活动 421   14.1.1 监视SQL Server的原因 421   14.1.2 为监视做准备 422   14.1.3 监视工具和资源 423   14.2 使用复制监视器 425   14.2.1 启动并使用复制监视器 425   14.2.2 添加发布服务器和发布服务器组 426   14.3 使用事件日志 427   14.3.1 检查应用程序日志 428   14.3.2 检查SQL Server事件日志 430   14.3.3 检查SQL Server代理事件日志 432   14.4 监视SQL Server的性能 433   14.4.1 选择要监视的计数器 433   14.4.2 创建性能日志 435   14.4.3 查看数据收集器报告 439   14.4.4 配置性能计数器警报 440   14.5 配置管理数据仓库 441   14.5.1 了解管理数据仓库 441   14.5.2 创建管理数据仓库 441   14.5.3 设置数据收集 442   14.5.4 管理收集和生成报表 442   14.6 使用事件探查器解决性能问题 442   14.6.1 使用事件探查器 443   14.6.2 新建跟踪 444   14.6.3 使用跟踪 447   14.6.4 保存跟踪 447   14.6.5 重播跟踪 448   第15章 备份和还原SQL Server 2008 452   15.1 创建备份和还原计划 452   15.1.1 开始备份和还原计划 452   15.1.2 规划镜像与镜像数据库的备份 456   15.1.3 规划被复制数据库的备份 456   15.1.4 规划大型数据库的备份 458   15.1.5 规划备份压缩 458   15.2 选择备份设备和媒体 459   15.3 使用备份策略 461   15.4 创建备份设备 462   15.5 执行备份 464   15.5.1 在SQL Server Management Studio创建备份 464   15.5.2 使用多个设备的条带   备份 468   15.5.3 使用Transact-SQL备份 469   15.5.4 执行事务日志备份 472   15.6 还原数据库 473   15.6.1 数据库损坏及解决方法 473   15.6.2 从正常备份还原数据库 475   15.6.3 还原文件和文件组 479   15.6.4 将数据库还原到不同位置 481   15.6.5 还原丢失的数据 481   15.6.6 创建备用服务器 482   15.6.7 使用Transact-SQL还原命令 483   15.7 还原master数据库 487   第16章 数据库自动化和维护 489   16.1 数据库自动化和维护概述 489   16.2 使用数据库邮件 490   16.2.1 执行初始数据库邮件配置 490   16.2.2 管理数据库邮件配置文件和帐户 495   16.2.3 查看和更改数据库邮件系统参数 496   16.3 使用SQL Server代理 497   16.3.1 访问警报、操作员和作业 497   16.3.2 配置SQL Server代理服务 497   16.3.3 设置SQL Server代理邮件配置文件 498   16.3.4 使用SQL Server代理重新启动服务 499   16.4 管理警报 499   16.4.1 使用默认警报 499   16.4.2 创建错误消息警报 500   16.4.3 处理警报响应 501   16.4.4 删除、启用和禁用警报 503   16.5 管理操作员 503   16.5.1 注册操作员 503   16.5.2 删除和禁用对操作员的通知 504   16.5.3 配置防故障操作员 505   16.6 计划作业 505   16.6.1 创建作业 506   16.6.2 指定或更改作业定义 506   16.6.3 设置执行步骤 508   16.6.4 配置作业计划 511   16.6.5 处理作业警报 514   16.6.6 处理通知消息 514   16.6.7 管理现有作业 515   16.6.8 管理作业类别 516   16.7 自动完成服务器到服务器的 日常管理任务 517   16.7.1 在数据库之间复制用户、表、视图和其他对象 517   16.7.2 在数据库之间复制警报、操作员和计划作业 519   16.8 多服务器管理 519   16.8.1 事件转发 520   16.8.2 多服务器作业计划 521   16.9 数据库维护 523   16.9.1 数据库维护清单 523   16.9.2 使用维护计划 524   16.9.3 检查和维护数据库完整性 529   第17章 管理日志传送与数据库镜像 534   17.1 日志传送 534   17.1.1 日志传送:如何工作 534   17.1.2 为日志传送做准备 536   17.1.3 将SQL Server 2000 日志传送升级到 SQL Server 2008日志传送 37   17.1.4 在主数据库上启用日志传送 537   17.1.5 添加日志传送辅助数据库 541   17.1.6 改变事务日志备份的时间间隔 544   17.1.7 改变复制和还原的时间间隔 545   17.1.8 监视日志传送 545   17.1.9 故障转移到辅助数据库 546   17.1.10 禁用和删除日志传送 548   17.2 数据库镜像 548   17.2.1 数据库镜像基础知识 548   17.2.2 配置数据库镜像 549   17.2.3 管理和监视镜像 553   17.2.4 使用故障转移进行恢复 556   17.2.5 删除数据库镜像 557   17.3 使用镜像和日志传送 557   第18章 实施基于策略的管理 559   18.1 基于策略的管理简介 559   18.2 使用基于策略的管理 561   18.3 在整个企业内管理策略 566   18.3.1 导入和导出策略 566   18.3.2 配置管理服务器 568   18.3.3 针对多个服务器执行语句 571   18.3.4 配置和管理策略方面 571   18.3.5 创建和管理策略条件 573   18.3.6 创建和管理策略 575   18.3.7 管理策略目标和托管策略 578   18.3.8 评估策略 580   18.3.9 基于策略的管理策略疑难解答 582   ……
由于文件太大,被分成3部分,当前第2部分,请下载完三部分,并放在同一目录,否则无法解压。 内容简介 《SQL Server 2008管理员必备指南》按照由浅入深的逻辑共分为4部分,即管理基础、系统管理、数据管理以及优化与维护。这种分类方法不仅从理论上环环相扣,全面介绍数据库管理人员需要掌握的相关理论知识和工作技能,也从不同层次上体现了数据库管理员的工作内容及工作的要点和难点,能够科学地指导数据库管理员的日常工作。《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容,并含有大量实例操作指导、技巧提示及T-SQL代码,方便管理员日常的工作。 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server 2008日常管理的工作。使用快速参考表、指令和列表聚焦核心的支持与维护任务。无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。 《SQL Server 2008管理员必备指南》重要主题: 规划、部署和配置SQL Server 2008 管理服务器,管理外围安全、访问及网络配置 导入、导出、转换和复制数据 使用SQL Server Management Studio执行主要的管理任务 操作架构、表、索引和视图 进行自动化维护和实现基于策略的管理 监视服务器活动并优化性能 管理日志传送和数据库镜像 执行备份和还原 《微软技术丛书》包括以下几个子系列 从入门到精通 适舍新手程序员的实用教程 侧重于基础技术和特征 提供范例文件 技术内幕 权威必备的参考大全 包含丰富、实用的范例代码 帮助读者熟练掌握微软技术 高级编程 侧重于高级特性、技术和解决问题 包含丰富适用性强的范倒代码 帮助读者精通微软技术 精通&宝典 着重剖析应用技巧以帮助提高工作效率 主题包括办公应用和开发工具 认证考试教材 完全根据考试要求来阐述每一个知识点 提供可供搜索的Ebook(英文版)和训练题 提供实际场景案例分析和故障诊断实验 SQL Server专家的呕心力作,数据库管理员的实战宝典,全面、深入地剖析SQL Server2008新特性,结构独特,实例丰富,操作性强。 作者简介 作者:(美国)斯坦里克 (William R.Stanek) 译者:贾洪峰 William R.Stanek微软MVP(最有价值专家),拥有20多年系统管理和高级编程的经验。他是屡获嘉奖的作家,著作多达70部,其包括Microsoft Windows Server 2008 InsideOut。他也是“管理员必备指南”系列丛书的编辑。 目录 第Ⅰ部分 SQL Server 2008管理基础 第1章 SQL Server 2008管理概况 1.1 SQL Server 2008与硬件 1.2 SQL Server 2008的版本 1.3 SQL Server和Windows 1.3.1 SQL Server的服务 1.3.2 SQL Server登录和身份验证 1.3.3 SQL Server的服务帐户 1.4 使用图形化管理工具 1.5 使用命令行工具 1.5.1 BCP 1.5.2 SQLCMD 1.5.3 其他命令行工具 1.6 使用SQL Server PowerShell 1.6.1 运行和使用cmdlet 1.6.2 运行和使用SQL Server PowerShell 1.6.3 使用SQL Server cmdlet 第2章 部署SQL Server 2008 2.1 SQL Server集成角色 2.1.1 使用SQL Server集成服务 2.1.2 使用SQL Server 2008的关系数据仓库 2.1.3 使用SQL Server 2008的多维数据库和数据挖掘 2.1.4 使用SQL Server 2008管理报表 2.2 规划SQL Server 2008的部署 2.2.1 建立服务器的性能系统 2.2.2 配置I/O子系统 2.2.3 确保可用性和可伸缩性 2.2.4 确保连接性和数据访问 2.2.5 管理SQL Server配置和安全性 2.3 运行安装程序和修改SQL Server安装 2.3.1 创建新的SQL Server实例 2.3.2 添加组件和实例 2.3.3 修复SQL Server 2008安装 2.3.4 升级SQL Server 2008版本 2.3.5 卸载SQL Server 第3章 管理外围安全、访问以及网络配置 3.1 管理SQL Server的组件功能 3.2 配置SQL Server服务 3.2.1 管理服务配置 3.2.2 管理服务的状态和启动模式 3.2.3 设置启动的服务帐户 3.2.4 配置文件流 3.2.5 配置服务转储目录、错误报告和客户反馈报告 3.3 管理网络和SQL本地客户端配置 3.3.1 管理连接配置 3.3.2 配置Shared Memory网络配置 3.3.3 配置Named Pipes网络配置 3.3.4 配置TCP/IP网络配置 3.3.5 配置本地客户端配置的安全性 3.3.6 配置本地客户端协议的顺序 3.3.7 设置共享内存的本地客户端配置 3.3.8 设置命名管道的本地客户端配置 3.3.9 设置TCP/IP本地客户端配置 第4章 配置和优化SQL Server 2008 4.1 访问SQL Server的配置数据 4.1.1 使用系统目录和目录视图 4.1.2 使用系统存储过程 4.2 管理SQL Server配置选项的技巧 4.2.1 设置配置选项 4.2.2 使用SET选项 4.2.3 使用服务器选项 4.2.4 使用数据库选项 4.2.5 管理数据库的兼容性 4.3 通过存储过程配置SQL Server 4.3.1 使用SQL Server Management Studio查询 4.3.2 执行查询和改变设置 4.3.3 检查和设置配置参数 4.3.4 使用ALTER DATABASE改变设置 第Ⅱ部分 SQL Server 2008的系统管理 第5章 管理企业 5.1 使用SQL Server Management Studio 5.1.1 开始使用SQL Server Management Studio 5.1.2 连接到特定的服务器实例 5.1.3 连接到特定数据库 5.2 管理SQL Server组 5.2.1 介绍SQL Server组 5.2.2 创建服务器组 5.2.3 删除服务器组 5.2.4 编辑和移动服务器组 5.2.5 添加SQL Server到一个组 5.3 管理服务器 5.3.1 注册已连接服务器 5.3.2 在“已注册的服务器”视图注册新的服务器 5.3.3 注册以前注册的SQL Server 2000服务器 5.3.4 更新本地服务器注册 5.3.5 将服务器组和注册信息复制到另一台计算机 5.3.6 编辑注册属性 5.3.7 连接到服务器 5.3.8 从服务器断开连接 5.3.9 移动服务器到新的组 5.3.10 删除服务器注册 5.4 启动、停止和配置SQL Server代理 5.5 启动、停止和配置Microsoft分布式事务处理协调器 5.6 管理SQL Server启动 5.6.1 启用或防止SQL Server的自动启动 5.6.2 设置数据库引擎的启动参数 5.6.3 从命令行管理服务 5.6.4 管理SQL Server命令行的可执行文件 5.7 管理服务器活动 5.7.1 检查进程信息 5.7.2 跟踪资源等待和阻塞 5.7.3 检测修复死锁和阻塞连接 5.7.4 在SQL Server跟踪命令的执行 5.7.5 终止服务器进程 第6章 使用SQL Server Management Studio配置SQL Server 6.1 使用SQL Server Management Studio管理配置 6.2 确定系统和服务器信息 6.3 配置身份验证和审核 6.3.1 设置身份验证模式 6.3.2 设置审核级别 6.3.3 启用或禁用C2审核登录 6.3.4 启用或禁用“符合公共标准” 6.4 调节内存的使用 6.4.1 动态配置内存 6.4.2 使用固定内存 6.4.3 启用AWE内存的支持 6.4.4 为索引优化内存 6.4.5 为查询分配内存 6.5 配置处理器和并行处理 6.5.1 优化CPU的使用 6.5.2 设置并行处理 6.6 配置线程、优先级和纤程 6.7 配置用户和远程连接 6.7.1 设置最大用户连接 6.7.2 设置默认连接选项 6.7.3 配置远程服务器连接 6.8 管理服务器设置 6.8.1 启用或禁用文件流 6.8.2 设置SQL Server的默认语言 6.8.3 允许和禁止嵌套触发器 6.8.4 控制查询的执行 6.8.5 配置2000年的支持 6.9 管理数据库设置 6.9.1 设置索引填充 6.9.2 配置备份和还原超时选项 6.9.3 配置备份和还原保持选项 6.9.4 用检查点清空缓存 6.9.5 压缩备份媒体 6.10 添加和删除活动目录的信息 6.11 修复配置故障 6.11.1 从损坏的配置恢复 6.11.2 更改排序规则和重新生成master数据库 第7章 数据库管理的核心任务 7.1 数据库文件和日志 7.2 数据库管理基础 7.2.1 在SQL Server Management Studio查看数据库的信息 7.2.2 使用T-SQL查看数据库信息 7.2.3 检查系统和示例数据库 7.2.4 检查数据库对象 7.3 创建数据库 7.3.1 在SQL Server Management Studio创建数据库 7.3.2 使用T-SQL创建数据库 7.4 修改数据库及其选项 7.4.1 在SQL Server Management Studio设置数据库选项 7.4.2 使用ALTER DATABASE修改数据库 7.4.3 配置自动选项 7.4.4 在数据库级别上控制ASNI的兼容性 7.4.5 配置参数化 7.4.6 配置游标选项 7.4.7 控制用户访问和数据库状态 7.4.8 设置联机、脱机或紧急模式 7.4.9 管理数据库链接和外部访问选项 7.4.10 配置恢复、日志记录和磁盘I/O错误检查选项 7.4.11 查看、更改和覆盖数据库选项 7.5 管理数据库日志大小 7.5.1 配置SQL Server自动管理文件大小 7.5.2 手动扩展数据库日志 7.5.3 手动压缩和收缩数据库 7.6 操作数据库 7.6.1 重命名数据库 7.6.2 清除和删除数据库 7.6.3 附加和分离数据库 7.7 提示和技巧 7.7.1 复制和移动数据库 7.7.2 移动数据库 7.7.3 移动tempdb和改变tempdb的大小 7.7.4 创建辅助数据和日志文件 7.7.5 防止事务日志错误 7.7.6 防止文件组充满的错误 7.7.7 创建新的数据库模板 7.7.8 配置数据库加密 第8章 全文搜索的管理 8.1 全文目录和索引 8.2 管理全文目录 8.2.1 查看目录属性 8.2.2 创建目录 8.2.3 启用表和视图的索引 8.2.4 编辑表和视图的索引 8.2.5 从表或视图禁用和删除全文索引 8.2.6 填充全文目录 8.2.7 重新生成当前目录 8.2.8 清除旧的目录 8.2.9 删除目录 8.3 管理全文搜索 8.3.1 设置全文搜索的默认语言 8.3.2 使用非索引字表 8.3.3 创建非索引字表 8.3.4 管理非索引字表 8.3.5 创建和使用同义词库文件 第9章 管理SQL Server 2008的安全性 9.1 SQL Server 2008安全性概况 9.1.1 使用安全主体和安全对象 9.1.2 理解安全对象的权限 9.1.3 检查授予安全对象的权限 9.2 SQL Server 2008的身份验证模式 9.2.1 Windows身份验证 9.2.2 混合模式和SQL Server登录 9.3 特殊目的的登录和用户 9.3.1 使用管理员组 9.3.2 使用管理员用户帐户 9.3.3 使用sa登录 9.3.4 使用NETWORK SERVICE和SYSTEM登录 9.3.5 使用guest用户 9.3.6 使用dbo用户 9.3.7 使用sys和INFORMATION_SCHEMA用户 9.4 权限 9.4.1 对象权限 9.4.2 语句权限 9.4.3 隐含权限 9.5 角色 9.5.1 服务器角色 9.5.2 数据库角色 9.6 管理服务器登录 9.6.1 查看和编辑现有的登录 9.6.2 创建登录 9.6.3 用T-SQL编辑登录 9.6.4 允许或拒绝访问服务器 9.6.5 启用、禁用和解锁登录 9.6.6 删除登录 9.6.7 更改密码 9.7 配置服务器角色 9.7.1 为登录分配角色 9.7.2 为多个登录分配角色 9.7.3 撤销服务器登录的访问权限和授予的角色 9.8 控制数据库访问和管理 9.8.1 为登录分配访问权限和角色 9.8.2 为多个登录分配角色 9.8.3 创建标准的数据库角色 9.8.4 创建应用程序数据库角色 9.8.5 删除数据库用户的角色成员关系 9.8.6 删除用户定义的角色 9.8.7 管理访问和角色的Transact-SQL命令 9.9 管理数据库权限 9.9.1 为语句分配数据库权限 9.9.2 登录的对象权限 9.9.3 多个登录的对象权限 第Ⅲ部分 SQL Server 2008的数据管理 第10章 操作架构、表、索引和视图 10.1 处理架构 10.1.1 创建架构 10.1.2 修改架构 10.1.3 将对象移动到新架构 10.1.4 删除架构 10.2 表的概况 10.3 表的实质 10.3.1 了解数据页 10.3.2 了解区 10.3.3 了解表的分区 10.4 处理表 10.4.1 创建表 10.4.2 修改现有的表 10.4.3 查看表的行和大小的信息 10.4.4 显示表属性和权限 10.4.5 显示表当前的值 10.4.6 复制表 10.4.7 重命名和删除表 10.4.8 在一个表添加和删除列 10.4.9 编写表脚本 10.5 管理表的值 10.5.1 使用原始数据类型 10.5.2 使用固定长度、可变长度 和最大长度的字段 10.5.3 使用用户定义的数据类型 10.5.4 允许和不允许Null值 10.5.5 使用默认值 10.5.6 使用稀疏列 10.5.7 使用标识和全局唯一标识符 10.5.8 使用用户定义的表类型 10.6 使用视图 10.6.1 操作视图 10.6.2 创建视图 10.6.3 修改视图 10.6.4 使用可更新视图 10.6.5 管理视图 10.7 创建和管理索引 10.7.1 了解索引 10.7.2 使用聚集索引 10.7.3 使用非聚集索引 10.7.4 使用XML索引 10.7.5 使用筛选索引 10.7.6 确定应当索引哪些列 10.7.7 索引计算列和视图 10.7.8 查看索引属性 10.7.9 创建索引 10.7.10 管理索引 10.7.11 使用数据库引擎优化顾问 10.8 列约束和规则 10.8.1 使用约束 10.8.2 使用规则 10.9 创建已分区表和索引 10.9.1 创建分区函数 10.9.2 创建分区方案 10.9.3 创建分区 10.9.4 查看和管理分区 10.10 压缩表、索引和分区 10.10.1 使用行和页压缩 10.10.2 设置或改变压缩设置 第11章 数据的导入和导出及转换 11.1 使用集成服务 11.1.1 集成服务简介 11.1.2 集成服务工具 11.1.3 集成服务和数据提供程序 11.1.4 集成服务包 11.2 使用SQL Server导入和导出向导创建包 11.2.1 阶段1:数据源和目标的配置 11.2.2 阶段2:复制或查询 11.2.3 阶段3:格式化和转换 11.2.4 阶段4:保存和执行 11.3 了解BCP 11.3.1 BCP 基础 11.3.2 BCP 语法 11.3.3 BCP 权限和模式 11.3.4 使用BCP导入数据 11.3.5 使用BCP导出数据 11.4 BCP脚本 11.5 使用BULK INSERT 命令 第12章 链接服务器与分布式事务 12.1 使用链接服务器和分布式数据 12.1.1 使用分布式查询 12.1.2 使用分布式事务 12.1.3 运行分布式事务处理协调器服务 12.2 管理链接服务器 12.2.1 添加链接服务器 12.2.2 配置链接服务器的安全性 12.2.3 设置远程和链接服务器的服务器选项 12.2.4 删除链接服务器 第13章 实施快照、合并和事务复制 13.1 复制的概况 13.1.1 复制组件 13.1.2 复制代理和作业 13.1.3 复制的类型 13.2 复制的计划 13.2.1 复制模式 13.2.2 复制的预备任务 13.3 分发服务器的管理 13.3.1 设置新的分发服务器 13.3.2 更新分发服务器 13.3.3 创建分发数据库 13.3.4 启用和更新发布服务器 13.3.5 启用发布数据库 13.3.6 删除分发数据库 13.3.7 禁用发布和分发 13.4 创建和管理发布 13.4.1 创建发布 13.4.2 查看和更新发布 13.4.3 设置发布属性 13.4.4 设置代理安全性和进程帐户 13.4.5 控制订阅访问发布 13.4.6 为发布创建脚本 13.4.7 删除发布 13.5 订阅发布 13.5.1 订阅的实质 13.5.2 创建订阅 13.5.3 查看订阅属性 13.5.4 更新、维护和删除订阅 13.5.5 验证订阅 13.5.6 重新初始化订阅 第Ⅳ部分 SQL Server 2008的优化与维护 第14章 分析和监视SQL Server 2008 14.1 监视服务器的性能和活动 14.1.1 监视SQL Server的原因 14.1.2 为监视做准备 14.1.3 监视工具和资源 14.2 使用复制监视器 14.2.1 启动并使用复制监视器 14.2.2 添加发布服务器和发布服务器组 14.3 使用事件日志 14.3.1 检查应用程序日志 14.3.2 检查SQL Server事件日志 14.3.3 检查SQL Server代理事件日志 14.4 监视SQL Server的性能 14.4.1 选择要监视的计数器 14.4.2 创建性能日志 14.4.3 查看数据收集器报告 14.4.4 配置性能计数器警报 14.5 配置管理数据仓库 14.5.1 了解管理数据仓库 14.5.2 创建管理数据仓库 14.5.3 设置数据收集 14.5.4 管理收集和生成报表 14.6 使用事件探查器解决性能问题 14.6.1 使用事件探查器 14.6.2 新建跟踪 14.6.3 使用跟踪 14.6.4 保存跟踪 14.6.5 重播跟踪 第15章 备份和还原SQL Server 2008 15.1 创建备份和还原计划 15.1.1 开始备份和还原计划 15.1.2 规划镜像与镜像数据库的备份 15.1.3 规划被复制数据库的备份 15.1.4 规划大型数据库的备份 15.1.5 规划备份压缩 15.2 选择备份设备和媒体 15.3 使用备份策略 15.4 创建备份设备 15.5 执行备份 15.5.1 在SQL Server Management Studio创建备份 15.5.2 使用多个设备的条带 备份 15.5.3 使用Transact-SQL备份 15.5.4 执行事务日志备份 15.6 还原数据库 15.6.1 数据库损坏及解决方法 15.6.2 从正常备份还原数据库 15.6.3 还原文件和文件组 15.6.4 将数据库还原到不同位置 15.6.5 还原丢失的数据 15.6.6 创建备用服务器 15.6.7 使用Transact-SQL还原命令 15.7 还原master数据库 第16章 数据库自动化和维护 16.1 数据库自动化和维护概述 16.2 使用数据库邮件 16.2.1 执行初始数据库邮件配置 16.2.2 管理数据库邮件配置文件和帐户 16.2.3 查看和更改数据库邮件系统参数 16.3 使用SQL Server代理 16.3.1 访问警报、操作员和作业 16.3.2 配置SQL Server代理服务 16.3.3 设置SQL Server代理邮件配置文件 16.3.4 使用SQL Server代理重新启动服务 16.4 管理警报 16.4.1 使用默认警报 16.4.2 创建错误消息警报 16.4.3 处理警报响应 16.4.4 删除、启用和禁用警报 16.5 管理操作员 16.5.1 注册操作员 16.5.2 删除和禁用对操作员的通知 16.5.3 配置防故障操作员 16.6 计划作业 16.6.1 创建作业 16.6.2 指定或更改作业定义 16.6.3 设置执行步骤 16.6.4 配置作业计划 16.6.5 处理作业警报 16.6.6 处理通知消息 16.6.7 管理现有作业 16.6.8 管理作业类别 16.7 自动完成服务器到服务器的 日常管理任务 16.7.1 在数据库之间复制用户、表、视图和其他对象 16.7.2 在数据库之间复制警报、操作员和计划作业 16.8 多服务器管理 16.8.1 事件转发 16.8.2 多服务器作业计划 16.9 数据库维护 16.9.1 数据库维护清单 16.9.2 使用维护计划 16.9.3 检查和维护数据库完整性 第17章 管理日志传送与数据库镜像 17.1 日志传送 17.1.1 日志传送:如何工作 17.1.2 为日志传送做准备 17.1.3 将SQL Server 2000 日志传送升级到 SQL Server 2008日志传送 17.1.4 在主数据库上启用日志传送 17.1.5 添加日志传送辅助数据库 17.1.6 改变事务日志备份的时间间隔 17.1.7 改变复制和还原的时间间隔 17.1.8 监视日志传送 17.1.9 故障转移到辅助数据库 17.1.10 禁用和删除日志传送 17.2 数据库镜像 17.2.1 数据库镜像基础知识 17.2.2 配置数据库镜像 17.2.3 管理和监视镜像 17.2.4 使用故障转移进行恢复 17.2.5 删除数据库镜像 17.3 使用镜像和日志传送 第18章 实施基于策略的管理 18.1 基于策略的管理简介 18.2 使用基于策略的管理 18.3 在整个企业内管理策略 18.3.1 导入和导出策略 18.3.2 配置管理服务器 18.3.3 针对多个服务器执行语句 18.3.4 配置和管理策略方面 18.3.5 创建和管理策略条件 18.3.6 创建和管理策略 18.3.7 管理策略目标和托管策略 18.3.8 评估策略 18.3.9 基于策略的管理策略疑难解答

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值