SQLServer2000常见系统错误_第1页
SQLServer2000常见系统错误_第2页
SQLServer2000常见系统错误_第3页
SQLServer2000常见系统错误_第4页
SQLServer2000常见系统错误_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQLServer2000常见系统错误第一章 启动与配置1、剖析事件查看器,将应用程序中的所有事件清除,序号内 容说 明117052: Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft CorporationDeveloper Edition on Windows NT 5.1 (Build 2600: Service Pack 2)SQL Server的版本信息,安装环境的操作系统版本。217104: 服务器进程 ID 是 2828。分

2、配的服务器进程ID3此 SQL Server 实例最近于 2007-9-1 10:38:00 (本地) 2007-9-1 2:38:00 (UTC)报告使用的进程 ID 是 3360。SQL Server2000实例上一次运行使用的进程ID417162: SQL Server 正在以优先级“high”(已检测到 1 CPU)启动。SQL Server安装在1个CPU的服务器上,以高优先级开始启动。517124: 已为 thread 模式处理而配置了 SQL Server。SQL Server2000的CPU配置为线程模式。617125: 使用 dynamic 锁分配。2500 锁块,5000

3、锁所有者块。为SQL Server2000分配的锁信息。717834: 正在使用“SSNETLIB.DLL”版本“8.0.2039”。启用默认的由SSNETLIB.DLL文件封装的网络库超级套接字,封闭了TCP/IP协议和Nwlink IPX/SPX两种通信协议。819013: SQL Server 正在监听 192.168.1.8: 1433。19013: SQL Server 正在监听 219.140.27.21: 1433。19013: SQL Server 正在监听 127.0.0.1: 1433。可以使用本地TCP/IP连接9SuperSocket 信息: (SpnRegister)

4、 : Error 1355。提示无法注册超级套接字网络库的提示信息,这和使用的协议有关。1019013: SQL Server 正在监听 TCP, Shared Memory, Named Pipes。SQL Server实例配置了TCP/IP、共享内存和命名管道3种协议。1117126: SQL Server 已准备好进行客户端连接可以接受客户机的请求1217052: 恢复完成。正常完成启动过程。2、SQL Server服务器错误日志错误日志是SQL Server2000服务器中记录服务器级信息的文件。当SQL Server启动、关闭和发生系统级错误时,SQL Server会自动记录有关信息

5、。查看错误日志:C:Program FilesMicrosoft SQL ServerMSSQLLOG总结SQL Server启动的过程操作系统为实例分配进程IDOS为实例分配CPU和优先级OS为实例分配CPU使用模式操作系统为实例分配内存启动系统数据库master启动网络库启动系统数据库Model如果非正常关闭数据库,则恢复启动系统msdb及用户数据库按照配置的网络协议进行监听清除系统数据库tempdb后重启成功启动SQL Server数据库系统数据故障数据库信息结论Master17052: Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)

6、May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft CorporationDeveloper Edition on Windows NT 5.1 (Build 2600: Service Pack 2);17104: 服务器进程 ID 是 284;此 SQL Server 实例最近于 2007-9-1 16:43:19 (本地) 2007-9-1 8:43:19 (UTC)报告使用的进程 ID 是 3752;17113: initconfig: 打开“C:Program FilesMicrosoft SQL ServerMSSQLdata

7、master.mdf”以获取配置信息时出错 2(系统找不到指定的文件。);SQL Server实例的启动过程将停留在仅仅由操作系统分配进程ID阶段。Model17126: SQL Server 已准备好进行客户端连接如果master数据库正常,而model数据库不存在或有故障,SQL Server实例的启动过程将完成CPU、内存和网络库的初始化,但model数据库的故障仍将导致客户机无法正常连接。tempdb成功启动SQL Server实例。如果master正常,model正常,不论有没有tempdb,SQL Server实例都将重建tempdb。msdbC:Program FilesMicr

8、osoft SQL ServerMSSQLLOG SQLAGENT.1文本内容:2007-09-01 16:59:30 - ? 393 正在等待 SQL Server 恢复数据库.2007-09-01 16:59:38 - ? 131 由于来自用户、进程或操作系统的停止请求,SQLSERVERAGENT 服务停止.2007-09-01 16:59:39 - ? 098 SQLServerAgent 已终止 (正常)Msdb数据库存在与否仅影响SQL Server Agent服务,和SQL Server服务没有什么关系。Master系统数据库对于SQL Server实例至关重要,是管理实例和所有

9、数据库的数据库;Model系统数据库是系统创建所有数据库的模板。当发出create database语句时,新数据库的第一部分通过复制model数据库中的内容创建,剩余部分由空页填充。由于SQL Server每次启动时都要创建tempdb数据库,model数据库必须一直存在于SQL Server系统中。Tempdb 数据库存在与否不影响实例的正常启动。Msdb 数据库。影响SQL Server Agent服务正常启动。windows操作系统将为SQL Server服务器上的每个服务分配一个进程ID。SQL Server服务的启动信息记录在ERRORLOG文件中。SQL Server Agent

10、服务的启动信息记录在SQLAGENT文件中。重建master数据库1、在重建master数据库之前,需要准备好SQL Server2000的安装光盘。2、重建主控实用工具:C:Program FilesMicrosoft SQL Server80ToolsBinn rebuildm.exe单用户模式启动1、单用户模式就是同一时刻仅允许一个DBA用户对SQL Server实例进行操作,如果要恢复已经损坏的master数据库,则必须要启动SQL Server实例的单用户模式。2、什么情况下切换到单用户模式常见的情况包括:更改服务器的配置参数;重建已经损坏的master数据库;修复其他系统数据库;3

11、、如何启动C:Program FilesMicrosoft SQL Server80ToolsBinn目录下有管理SQL Server实例服务的命令文件sqlservr,带参数-c m就表示以单用户模式启动默认实例。配置SQL Server网络SQLServer2000基于网络提供服务。1、IPC IPC:即进程间通信机制。SQL Server2000采用了客户机-服务器的体系结构,即使在物理上的同一台计算机上安装的SQL Server2000,也好像是逻辑上的两台计算机。客户机上启用的客户机进程,服务器上启用的是服务器进程。2、IPC的组成一个IPC包括以下的两个组成部分。通信协议:通信协议

12、定义了利用IPC通信的两个进程之间传递的数据分组格式。API:应用编程接口,是一组定义好的函数,应用程序通过这些函数来使用IPC机制,发出命令并反馈结果。3、Net-LibraryNet-Library,网络库。网络库是以动态链接库DLL形式实现的IPC机制。网络库不是简单的通信协议,而是通信协议和IPC机制组合的结果。DLLDLL的另外一个突出特点是动态加载,即虽然在一个主程序中调用了DLL文件中的函数,但主程序的代码中并不复制DLL文件中的函数,而是在运行时才动态加载这些函数。避免了将大量重复的函数代码复制到主程序中,在运行时同样需要大量占用内存空间的问题。相对于静态加载技术而言,DLL的

13、动态加载就更能有效节省内存空间。DLL技术的突出特点是代码重用和节省空间。网络库DLL网络库以DLL形式出现,也就是指一些特殊的DLL文件是包含了实现网络通信的、可以重用的函数和代码。查看网络库DLL服务器网络实用工具、客户端网络实用工具网络库和通信协议的关系一个网络库DLL文件并不一定仅封装一种网络协议的函数,也可能封装多种网络协议。比如:SSNETLIB.DLL网络库文件实际上就封装了TCP/IP和IPX/SPX两种网络协议。1、配置共享内存网络(1)启用SQL 服务器网络实用工具,常规选项卡。在启用的协议列表框中清除所有协议即可。(2)重新启动SQL Server2000服务器,服务器上

14、的共享内存协议才能够启动。(3)启用SQL Server客户端网络实用工具,常规选项卡中,在按顺序启用协议列表框中清除所有的协议。选择启用共享内存协议复选框。2、配置TCP/IP网络(1)配置服务器:SQL Server网络实用工具,常规选项中,将TCP/IP添加启用的协议列表框。点击属性可修改默认端口号;(2)配置客户机:SQL Server客户端网络实用工具,常规选项中,将TCP/IP添加到按顺序启用协议列表框中;在别名选项卡,单击添加,在服务器别名文本框中输入mysqlserver,选网络库中的TCP/IP单选按钮,服务器名称文本框输入SQL Server2000服务器的IP地址192.

15、168.1.8,取消对动态决定端口复选框的选择,在端口号文本框核实SQL Server2000服务器的端口。TDS协议TDS译为表格格式数据流协议,就是SQL Server2000的客户机和服务器之间的应用层协议。TDS的作用应用程序的数据必须通过TDS协议的封装,然后交由传输层的协议,经过层层封装之后才能在网络上传输。TDS的作用主要包括:创建到SQL Server服务器的连接;请求数据和服务器的状态;接收数据、状态、错误信息和其他服务器结果;完成存储过程的执行;顺序关闭连接;TDS的结构:SQL Server2000使用TDS8.0协议,其数据报(网络上传输的一个数据单元,也称为数据包)包

16、括两个部分:TDS报头和TDS数据。第二章未公开的DBCC命令DBCC(Data Base Console Command):数据库控制台命令;(1)dbcc page命令参数查询dbid和dbnameselect name,dbid from sysdatabases查询filenum和pagenumselect fileid,size,filename from sysfilesfileid:即FILENUMsize:某个数据文件或日志文件已经分配的数据页面总数,编号从0开始filename:数据文件和日志文件的物理存储路径;dbcc page作用可以直接查看某个数据页面的内容。可查看到数

17、据库的物理存储情况。dbcc page ( dbid | dbname, filenum, pagenum )dbcc page ( dbid | dbname, filenum, pagenum,print option )filenum:数据文件的编号pagenum:数据页面文件的编号print option:如何输出结果,0,1,2,3(2)dbcc logDbcc log作用是查看某个数据库使用的事务日志信息。Dbcc log (dbid | dbname , ,type=-1 | 0 | 1 | 2 | 3 | 4)参数取值参数说明0输出最小的信息(操作、上下文、事务ID)1操作、上

18、下文、事务ID、标记、标签、行长度、描述2操作、上下文、事务ID、标记、标签、行长度、描述、对象名称、索引名称、数据页面ID3每个操作的完整信息4每个操作的完整信息,十六进制的日志行数据-1每个操作的完整信息,十六进制的日志行数据、检查点开始、数据库版本等。(3)dbcc errorlog作用是初始化SQL Server的错误日志文件的内容。等同于:sp_cycle_errorlogsp_cycle_errorlog关闭当前的错误日志文件,并循环错误日志扩展编号(就像重新启动服务器)。新错误日志包含版本和版权信息,以及表明新日志已创建的一行。语法sp_cycle_errorlog返回代码值0(

19、成功)或 1(失败)结果集无注释每次启动 SQL Server 时,当前错误日志重新命名为 errorlog.1;errorlog.1 成为 errorlog.2,errorlog.2 成为 errorlog.3,依次类推。sp_cycle_errorlog 使您得以循环错误日志文件,而不必停止而后再启动服务器。权限sp_cycle_errorlog 的执行许可权限仅限于 sysadmin 固定服务器角色的成员(4)dbcc flushprocindb(DBID)Dbcc flushprocindb命令用于清除SQL Server2000服务器上某个数据库在缓存中的存储过程,实际上就是清除缓存

20、中的存储过程的执行计划。该命令常在需要对存储过程的性能进行测试时使用,一般不要在生产数据库上执行该命令,否则将影响正在运行的应用程序的性能。dbcc traceon( 3604 )godeclare intDBID integerset intDBID = ( select dbid from sysdatabases where name = northwind )dbcc flushprocindb( intdbid )go(5)dbcc bufferDbcc buffer 命令显示缓冲区的头部信息和页面信息。Dbcc buffer ( DBID | dbname,objid | objn

21、ame,nbufs,printopt )参数参数说明DBID数据库的唯一ID。DBName数据库的名称。OBJID数据库对象的IDOBJNAME数据对象的名称NBUFS检查的缓冲区数量。0 按照MRU(最近最常使用算法)=0 所有的缓冲区按照MRU至LRU顺序显示0 按照LRU到MRU顺序显示PRINTOPT输出信息选择。0:默认设置,输出缓冲区头部和页面头部1:输出页面每行的数据和行偏移数组;2:将每行作为一个整体输出,输出行偏移数组;将显示所有数据库在内存中的缓冲情况。Dbcc traceon( 3604 )GoDbcc bufferGo(6)dbcc dbinfoDbcc dbinfo

22、命令用于显示特定的数据库结构Dbcc dbinfo( dbname )dbcc traceon( 3604 )godbcc dbinfo( master )go(7)dbcc dbtable 用于显示管理数据库的表(数据字典)的信息。Dbcc dbtable ( dbid | dbname )dbcc traceon( 3604 )godbcc dbtable( master )go(8)dbcc indDbcc ind命令用于显示特定表的所有索引页面信息。Dbcc ind( DBID, objid,printopt )参数参数说明DBID数据库的唯一IDOBJID数据对象的IDPRINTOP

23、T输出信息选项。0:默认设置,输出缓冲区中的页头部和数据页头部信息;1:输出页头、以行格式输出页数据,偏移表;2:输出页头、非格式化的页数据、偏移表;dbcc traceon( 3604 )godbcc ind( master,sysobjects, 0 )go(9)dbcc procbufDbcc procbuf命令用于显示过程缓冲区中缓冲区头部和存储过程头。Dbcc procbuf ( dbid | dbname,objid | objname, nbufs, printopt )参数参数说明DBID数据库的唯一IDDBNAME数据库名称OBJID数据对象的IDOBJNAME数据对象的名称

24、NBUFS输出的缓冲区的数目PRINTOPT输出信息选项。0:默认设置,输出过程缓冲区和过程头;1:输出过程缓冲区、过程头和缓冲区内容;dbcc traceon( 3604 )godbcc procbuf( master,sp_help,1, 0 )go(10)dbcc prtipageDbcc prtipage命令用输出某个索引页面的每行指向的页面号。Dbcc prtipage ( DBID,OBJID,INDEXID,INDEXPAGE )参数参数说明DBID数据库的唯一IDOBJID数据对象的IDINDEXID索引对象的IDINDEXPAGE索引页面的逻辑页面号码dbcc traceon

25、( 3604 )godeclare dbid int, objectid intselect dbid = db_id( master )select objectid = object_id( sysobjects )dbcc prtipage( dbid, objectid, 1, 0 )go(11)dbcc pssDbcc pss 用于显示当前连接到SQL Server2000服务器的进程信息。dbcc pss( suid, spid, printopt )参数参数说明SUID服务器用户IDSPID服务器进程IDPRINTOPT输出信息选项0:标准输出1:输出所有打开的DES(标识符)和

26、当前序列树2:将进程拥有的锁信息输出到错误日志中;获取administrator用户系统进程ID为53的SQLServer进程信息。dbcc traceon( 3604 )godbcc pss( administrator, 53, 0 )go(12)dbcc resourceDbcc resource用于显示服务器当前使用的资源情况。dbcc traceon( 3604 )godbcc resourcego(13)dbcc tabDbcc tab用于显示设定的表的所有数据页面的内容。Dbcc tab ( DBID, OBJID, PRINTOPT )参数参数说明DBID数据库的IDOBJID

27、数据对象的IDPRINTOPT输出信息选项。0:显示页头部;1:按照行偏移表显示每行;2:按照整体显示页面和偏移表;dbcc traceon( 3604 )godeclare dbid int, objectid intselect dbid = db_id( master )select objectid = object_id( sysindexes )dbcc tab( dbid, objectid )go(14)dbcc bufcountdbcc bufcount命令用于显示最长的内存Hash桶的链表长度及平均链表长度,最多显示10个。Dbcc bufcount ( n_chains

28、)n_chains参数,表示hash桶的数目,最多只能显示10个。Bucket number:内存中Hash桶号;Chain size:桶中数据链表的长度;Average Chain Size:内存中所有链表的平均长度;dbcc traceon( 3604 )godbcc bufcount( 10 )go(15)dbcc dbrecoverDbcc dbrecover命令用于在不重启服务器的情况下恢复处于“质疑”(Suspect)状态的数据库。Dbcc traceon( 3604 )GoDbcc dbrecover( northwind )Go(16)dbcc desDbcc des输出特定的

29、标志符信息。Dbcc des (dbid,objid)Dbcc traceon( 3604 )GoDbcc des( master, sysindexes )Go(17)dbcc memusageDbcc memusage命令用于显示服务器内存使用的细节信息。dbcc traceon( 3604 )godbcc memusagegoINDEXID:索引ID;BUFFERS:所分配的缓冲区数量。DIRTY:是否为脏数据,即已经被修改过,需要写到硬盘上的数据。(18)dbcc pglinkageDbcc pglinkage命令用于查看某个数据库数据页面的链接,还可以完成完整性检查。Dbcc pgl

30、inkage( dbid, fileid, start, number, printopt=0 | 1 | 2 )参数参数说明Dbid数据库IDFILEID数据文件IDSTART开始查看的数据页面逻辑编号NUMBER检查的页面数量PRINTOPT输出信息选项。0:仅显示扫描的页面数;1:显示最后扫描的16个页面的信息;2:显示扫描的所有页数;实例将扫描从dbid为1(master数据库)的第1个数据文件的页号为100的页面开始,共3个页面的数据对象的链接情况,显示扫描的所有页数。dbcc traceon( 3604 )godbcc pglinkage( 1,1, 100,3,1 )go(19)

31、dbcc cachestatsDbcc cachestats 用于查看SQL Server实例的内存统计信息。dbcc traceon( 3604 )godbcc cachestatsgoHit Ratio:在SQL Server2000的内存中对象的命中率。该值越高,一般情况下越好。Object Count:缓存中某种特定类型对象的数量。Avg.Cost:SQL Server2000用于编译计划的代价。SQL Server2000使用该值来决定执行计划是否应该被放入缓存。Avg. Page:缓存对象使用的页面平均数。LW Object Count、LW Avg Cost、WL Avg Sta

32、y、LW Ave Use:所有的列都显示了被Lazy Writer(懒写)后台进程从Cache中移走的对象。数字越低越好。(20)dbcc memorystatusDbcc memorystatus显示当前状态下SQL Server实例的内存分配的详细情况。dbcc traceon( 3604 )godbcc memorystatusgo(21)dbcc sqlmgrstatsDbcc sqlmgrstats命令显示缓存中先读和预先准备的SQL语句。dbcc traceon( 3604 )godbcc sqlmgrstatsgoMemory Used( 8K Pages):如果内存页面数量很大

33、,该值表示一些用户连接预读了许多T-SQL语句;Number CSql Objects:缓存中T-SQL语句的总数量;Number False Hits:SQL Server2000到内存中去查找已经缓存而没有命中的T-SQL语句的值。该值应该尽可能的低。(22)dbcc跟踪标记参数标记说明200查询树的前映像201查询树的后映像260有关扩展存储过程动态链接库(DLL)的版本信息302索引选择信息310连接选择信息317连接选择的全部信息1204返回参与死锁的锁的类型,以及当前受影响的命令。2528通过dbcc checkdb、checkfilegroup、checktable禁用对象的并行

34、检查。3205禁用磁带驱动程序的硬件压缩。3604将跟踪结果输出到屏幕。3605将跟踪结果输出到SQL Server2000的错误日志文件。8602停止索引提示功能8722停止最优化提示功能8755停止锁提示功能。(23)打开跟踪标记dbcc traceon( 3604 )dbcc traceoff( 3604 )dbcc tracestatus( 3604 )第三章体系结构1、引擎的工作过程(1)查询处理“查询处理”部分将用户的SQL命令转换成SQL Server2000能够识别和执行的关系代数操作,同时进行各种优化以提高SQL的执行效率,最后生成具体的执行计划提交给“事务处理”部分。(2)

35、事务处理“事务处理”部分负责为执行计划生成具体的事务标识,记录事务的信息。然后将做好标识的执行计划传送给“事务调度”部分 。(3)事务调度“事务调度”部分将用户的事务加锁以确保对数据库的操作不会导致错误的结果,然后交给“故障恢复”部分。(4)故障恢复“故障恢复”部分对数据、日志的操作是在内存中完成的,所以当内存中没有要操作的数据或日志时,就必须调用“内存缓冲管理”部分来将物理数据提取到内存中。(5)内存缓冲管理“内存缓冲管理”部分管理服务器上为SQL Server2000开辟的内存区,也称为缓冲池。必要的时候调用“存储管理”部分将事务需要的数据从物理文件中读进缓冲池中。(6)存储管理“存储管理

36、”部分位于引擎的底端。完成对硬盘上数据的管理操作后,根据“内存缓冲管理”部分的要求完成数据的读或写操作。2、引擎的内部结构UMS(用户模式调度器)网络库ODS(开放数据服务)OLEDB接口通信非OLEDB接口通信事务管理器 行管理器 锁管理器页面管理器 索引管理器 缓冲管理器文本管理器 文件/设备 日志管理器 管理器 分类管理器 实用工具I/O管理器 解析器 编译器 SQL管理器 表达式管理器 优化器Windows APISQL Server2000的引擎包括7个部分(1)网络接口(2)线程调度客户机对服务器的访问,以事务为单元执行。随着SMP(对称多处理器)对线程进行了细分,提出了更小的并发

37、资源分配单位轻量级线程纤程(Fiber)。(3)关系引擎关系引擎完成对SQL命令的语法分析、编译、优化处理、查询执行等功能。它对客户机的查询事务进行处理,向存储引擎请求数据,将处理后的结果反馈给客户机。组成部分功能开放数据服务ODS,管理连接到SQLServer2000服务器的客户机;对失败的连接信息进行清理;向客户机反馈结果、消息和状态信息;协调线程、纤程的产生和结束供UMS使用。解析器对ODS转发的SQL命令进行解析、转换成内部的语法树表达形式,在转换过程中发现并反馈错误信息。编译器对解析器的结果进行编译,生成执行计划。优化器对编译器的执行计划采用基于代价的优化方法进行优化,选择一个合理的

38、执行计划作为最终的执行计划。SQL管理器管理存储过程及执行计划,存储过程由于在创建时已经进行编译,所以保留在内存中可以重复执行,而无须像普通的SQL语句一样每次都进行编译优化,可以提高执行效率。表达式管理器完成对SQL表达式的比较、运算、数据的移动等处理任务。(4)关系引擎存储引擎接口关系引擎完成语句的编译和优化,而数据是由存储引擎进行管理的。存储引擎提取的数据最终要送入内存中由关系引擎调度执行。典型select查询语句使用OLEDB接口处理数据。(5)存储引擎存储引擎完成对硬盘数据的更新和访问。(6)存储引擎操作系统接口SQL Server2000的存储引擎归根到底还是调用Windows操作

39、系统提供的底层API来完成存储空间的管理。SQL Server2000的存储引擎和Windows操作系统的接口称I/O管理器。(7)操作系统API存储引擎调用Widows API来完成存储空间的分配和管理。纤程与线程:SQL Server实例管理纤程的调度,而操作系统管理线程的调度。线程模式:SQL Server服务器将为每个并发用户创建一个线程。纤程模式:SQL Server服务器为每个CPU分配一个线程,并为每个并发用户创建一个纤程。一个线程中可以有多个纤程,纤程仅仅在线程内部切换,不用上下文切换。提示:SQL Server实例在使用线程或纤程时,使用相同的算法调度和同步任务。SQL Se

40、rver的个人版和桌面版不支持纤程模式。Windows95/98不支持纤程池的机制。SQL Server可以分配的线程或纤程的最大数目,一般采用默认值255。体系结构配置1、配置SQL Server线程模式SQLServer实例将工作在线程模式。默认为线程模式。2、配置SQL Server纤程模式SQL Server属性处理器选择使用WindowsNT纤程复选框,SQL Server实例将工作在纤程模式。3、提升SQL Server优先级SQL Server属性处理器选择在Windows上提升SQL Server的优先级复选框即可。如果设置为0x1,则为CPU0使用。sp_configure

41、show advanced options,1goreconfiguresp_configure affinity mask,0x2goreconfigurego4、存储结构(1)页面(page)在SQL Server2000数据库的存储结构中,数据文件的存储单位为一个一个标准的页面,其大小为8192Byte。页面类型说明数据页面存储除text、ntext和image数据类型外的用户数据。索引页面存储索引数据文本/图页面存储text、ntext和image类型的数据全局、共享全局分配映射页面有关分配的盘区的信息可用空间页面页的可用空间大小索引分配映射表页面索引使用的盘区的信息大容量更改映射表页

42、面自上次执行backup log语句后大容量操作更改的盘区的信息。差异更改映射表页面自上次执行backup database语句后更改的盘区的信息。(2)页面结构Slot 0Slot 1数据页面头部:96字节保存页面的管理信息。数据区以槽为单位分配存储空间,用于存储数据。数据记录(行)就存储在槽中。行偏移数组:每个记录占据2字节通过查询行偏移数组的某个槽的偏移量就可以准确定位槽在数据页面中的位置。组成部分说明页面头部(Header)占据固定的96字节。保存页面的管理信息。数据区(Data)以槽(slot)为单位分配存储空间,用于存储数据。数据记录(行)就存储在槽中行偏移数组(Offset Ta

43、ble)表示页面中槽的相对位置。通过查询行偏移数组的某个槽的偏移量就可以准确定位槽在数据页面中的位置。槽(Slot):在数据表中,数据横向称为记录。在页面中,存储记录在存储单位为槽(Slot)。数据表中的逻辑单位记录,在数据文件就存储在某个页面的某个槽上。当我们使用SQL语句操作该行记录时,SQL Server引擎会到指定的页面和槽上去提取记录的数据。所以每条记录对应的存储单位是一个唯一的槽号(如Page(1:95)Slot1,就表示第1个数据文件的页面号为95的Slot1中),它称为记录RowID(记录标识)。SQL Server2000就可以根据RowID来操作物理的数据。页头部的信息:参

44、数说明M_pageId物理页面的文件号、页面编号M_level如果是索引页面,表示在索引中的级别(叶级页面为0 )M_objId页面所属数据对象的ID,可以在sysobjects系统表中按照ID进行查询,获得具体所属的数据对象。M_indexid页面的索引ID(数据页面0)M_prevPage如果页面处理面链中,表示页链的上一页面。M_nextPage如果页面处理面链中,表示页链的下一页面。Pminlen数据行的固定长部分的字节数M_slotCnt页面上已经分配的槽(行)的总数量。M_freeCnt页面上空闲的数据区大小(字节为单位)M_freeData页面上第一个空闲空间的字节偏移量。M_r

45、eservedCnt页面为所有事务保留的字节数M_lsn页面的LSN(日志序列)号,用于更新或者页面变化使用。M_xactReserved为最近启动的事务保留的字节数。M_tornBits每个扇区1bit,用于检测页面的分裂写操作M_flagBits2字节的页面的额外信息盘区(Extent)页面是SQL Server2000数据文件的标准存储单位,但并不是数据文件的存储分配单位。SQLServer2000存储分配单位是盘区。每8个页面为1个盘区,盘区的大小为64Kbyte。盘区:操作系统分配存储的单位。(3)内存结构SQLServer Cache执行代码系统数据结构数据缓冲区日志缓冲区过程缓冲

46、区连接环境缓冲区内存组成部分:1、系统数据结构SQL Server实例的全局数据的数据结构;2、数据缓冲区在内存临时保存数据库的数据,以标准的8KB为单位。3、日志缓冲区在内存中临时保存对数据库的操作产生的日志。4、过程缓冲区在内存中临时保存存储过程、SQL代码的执行计划等。当其他客户机的SQL语句或者存储过程将产生相同的执行计划时,SQL Server引擎将从过程缓冲区中直接调度执行计划执行,由于不需要重新编译生成执行计划,所以以大大提高执行效率。5、连接环境缓冲区在内存中保存客户机的连接池。而不是在客户机断开和服务器的连接后就直接从内存中将连接信息清除。这样下次到达的客户机还可以从内存中使

47、用相同的连接信息连接SQLServer服务器。查看Hash Bucketdbcc traceon(3604)godbcc bufcount(10)go查看Buffer的内容dbcc traceon(3604)godbcc buffergo第四章 数据的存储系统表SQL Server2000中的系统表分为两类全局系统表:系统数据库中的系统表,管理服务器级别的信息。数据库的系统表:管理特定的数据库的信息。(1)sysaltfiles:(master)用于存储和管理服务器上的数据文件和日志文件信息。Size即页面数(2)syscacheobjects:(master)存储SQLServer服务器内存

48、的内容。(3)sysdatabases:(master)存储SQLServer数据库的内容。(4)sysobjects:存在于每个数据库中,管理该数据库本身的数据对象。Sysobjects系统表保存数据库内创建的每个对象(包括约束、默认值、日志、规则、存储过程等),每个对象用一行来描述。在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。xtypeChar(2)对象类型。可以是下列对象类型中的一种: C = CHECK 约束D = 默认值或 DEFAULT 约束F = FOREIGN KEY 约束L = 日志FN

49、 = 标量函数IF = 内嵌表函数P = 存储过程PK = PRIMARY KEY 约束(类型是 K)RF = 复制筛选存储过程S = 系统表TF = 表函数TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程(5)sysindexes:管理该数据库的表和索引。Sysindexs系统表保存数据库的表和索引这两类对象。数据库的数据(1)数据库状态值的奥秘Master:24Model:1073741840Msdb:24Northwind:28Pubs:24Tempdb:8状态位,其中某些状态位可由用户使用 sp_dboption(read onl

50、y、dbo use only、single user 等)进行设置: 1 = autoclose; 自动关闭4 = select into/bulkcopy;8 = trunc. log on chkpt;数据库设置在简单恢复模式16 = torn page detection, 残缺页检测32 = loading。正在装载64 = pre recovery。准备恢复128 = recovering。正在恢复256 = not recovered。没有恢复512 = offline;脱机1024 = read only;只读2048 = dbo use only;仅仅dbo使用4096 = s

51、ingle user;单用户32768 = emergency mode。紧急模式4194304 = autoshrink。自动收缩1073741824 = cleanly shutdown。干净关闭查询数据库盘区数dbcc traceon(3604)godbcc extentinfo(pubs)gopg_alloc字段:该盘区为数据库分配的页面数据量m( 1 = m = 8 )查询到的盘区信息是数据库数据文件的盘区信息,日志文件不以盘区为单位。查询到的所有盘区数量:84查询到的所有盘区给该数据库分配的页面数:89数据文件的数据企业管理器数据库选中数据库所有任务收缩数据库-D:指出master

52、数据库主要数据文件的路径和文件名;-L:指出master数据库日志文件的路径和文件名;-R:指明服务器的错误日志文件路径和文件名。数据库启动的奥秘:在系统注册表中定位master数据库的文件启动master数据库在master数据库的sysaltfiles表中定位文件。启动其他系统数据库启动用户数据库BindingID蕴含的奥秘(1)select * from sysfiles(2)获得test数据库的主要数据文件的头部信息。查询的数据文件结果如下:ID1:主要数据文件,文件组ID1;ID3:次要数据文件,文件组ID2;ID4:次要数据文件,文件组ID3;查询的日志文件结果如下:ID2:日志文件,文件组ID0ID5:日志文件,文件组ID0dbcc traceon(3604)godbcc page( master,1,0,3)go结论:(1)同一数据库所有的数据文件和日志文件,其头部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论