书籍详情

SQL Server 2005奥秘

SQL Server 2005奥秘

作者:赵松涛

出版社:电子工业出版社

出版时间:2007-07-01

ISBN:9787121046193

定价:¥49.80

购买这本书可以去
内容简介
  本书是作者深入研究SQL Server 2005数据库体系结构和内部机制的经验总结。全书不拘泥于具体的管理操作,而是通过对存储的数据和日志文件数据的深入研究,依次揭示了很多在Internet和目前市面上的图书中都无法查询到的SQL Server 2005的奧秘(包括诠释了SQL Server 2005备份与恢复的奥秘)。这些经过艰辛的努力、大量的实验得出的结论非常有助于学习和使用SQL Server 2005的读者深入掌握和理解SQL Server 2005的运行机制。本书内容全面,思路流畅,所有实例均经过上机反复实践。本书适合有一定管理和开发经验的读者阅读参考,可作为DBA的案头参考书,具有很高的收藏价值。本书配套光盘包含各章标注的内容及作者亲自配音制作的多媒体视频。随书附带CD-ROM光盘一张!
作者简介
  赵松涛:北京大学计算机专业硕士。高校教学5年,从事计算机网络和数据库系统管理、应用开发6年。目前在一线从事SQL Server和Oracle数据库的系统管理、应用开发,并为大型企业和高校做培训,广受学员好评。从2001年至今,先后独立和合作出版了5本数据库方面的图书。
目录
第1章  启动与配置 1
1.1  SQL Server启动的奥秘 1
1.1.1  剖析【事件查看器】中记录的启动信息 1
1.1.2  SQL Server服务器的黑匣子——错误日志 5
1.1.3  总结SQL Server启动的过程 12
1.1.4  master数据库发生故障的启动 13
1.1.5  系统资源数据库发生故障的启动 15
1.1.6  model数据库发生故障的启动信息 18
1.1.7  tempdb数据库发生故障的启动信息 21
1.1.8  msdb数据库发生故障的启动信息 26
1.1.9  单用户模式启动 28
1.2  配置SQL Server网络 31
1.2.1  IPC 32
1.2.2  Net-Library 32
1.2.3  配置共享内存网络 34
1.2.4  配置TCP/IP网络 36
1.3  TDS协议 42
1.3.1  TDS的概念 43
1.3.2  TDS的作用 44
1.3.3  TDS的结构 45
第2章  未公开的DBCC命令 46
2.1  DBCC PAGE 46
2.1.1  查询DBID和DBNAME 47
2.1.2  查询FILENUM和PAGENUM 47
2.1.3  DBCC PAGE的典型用法 48
2.2  DBCC LOG 49
2.3  DBCC ERRORLOG 50
2.4  DBCC FLUSHPROCINDB 51
2.5  DBCC BUFFER 51
2.6  DBCC DBINFO 53
2.7  DBCC DBTABLE 53
2.8  DBCC IND 53
2.9  DBCC PRTIPAGE 54
2.10  DBCC RESOURCE 55
2.11  DBCC DBRECOVER 55
2.12  DBCC CACHESTATS 56
2.13  DBCC MEMORYSTATUS 57
2.14  DBCC跟踪标记 57
2.14.1  概念 57
2.14.2  打开跟踪标记 58
2.14.3  关闭跟踪标记 58
2.14.4  查询跟踪标记状态 58
第3章  体系结构 59
3.1  SQL Server引擎结构 59
3.1.1  引擎的工作过程 59
3.1.2  引擎的内部结构 61
3.1.3  SQL语句的执行机制 64
3.1.4  查询优化 65
3.1.5  执行计划 68
3.2  进程结构 70
3.2.1  进程(Process) 70
3.2.2  线程(Thread) 71
3.2.3  纤程(Fiber) 73
3.2.4  SQL Server如何管理线程和纤程 74
3.2.5  配置SQL Server线程模式 75
3.2.6  配置多CPU的实例 75
3.3  存储结构 77
3.3.1  存储数据的文件 78
3.3.2  存储数据的对象 78
3.3.3  页面(Page) 79
3.3.4  盘区(Extent) 80
3.4  内存结构 82
3.4.1  计算机的Memory、Cache和Buffer 82
3.4.2  SQL Server的Cache和Buffer 84
3.4.3  内存组成部分 85
3.4.4  Hash-Buffer管理机制 85
3.4.5  LRU-Buffer的更新机制 87
3.4.6  验证时钟算法 88
3.4.7  验证Hash算法 89
3.4.8  查看Buffer的内容 90
第4章  系统视图和系统数据库 92
4.1  系统视图 92
4.1.2  视图system_internals_allocation_units 93
4.1.3  视图allocation_units 95
4.1.4  视图system_internals_partitions 97
4.1.5  视图partitions 98
4.1.6  视图objects 99
4.1.7  视图columns 101
4.1.8  视图indexes 104
4.1.9  视图databases 106
4.1.10  视图master_files 107
4.2  系统数据库 109
4.2.1  Master数据库 110
4.2.2  resource数据库 110
4.2.3  model数据库 112
4.2.4  msdb数据库 112
4.2.5  tempdb数据库 112
第5章  数据的存储 115
5.1  数据库的数据 115
5.1.1  数据库的总大小 115
5.1.2  用DBCC EXTENTINFO查询数据库盘区数 117
5.2  数据文件的数据 119
5.2.1  数据文件的读写机制 119
5.2.2  查看数据文件的空间使用率 119
5.2.3  Master数据库启动的奥秘 121
5.2.4  数据文件头部信息的奥秘 123
5.2.5  BindingID蕴含的奥秘 127
5.2.6  DBCC PAGE命令查询日志文件的说明 132
5.3  表的数据 133
5.3.1  查询表的ID 133
5.3.2  获得表的hobt_id 134
5.3.3  按照hobt_id获得表的第1个页面 135
5.3.4  first_page参数的奥秘 137
5.3.5  查询表上分配的页面 138
5.3.6  查询表的页面 139
5.3.7  总结研究表数据存储的方法 144
5.4  分区 145
5.4.1  为什么要分区 145
5.4.2  分区的原理 146
5.4.3  分区的优点 146
5.4.4  分区逻辑存储结构 147
第6章  深入研究数据存储 148
6.1  堆数据存储的奥秘 148
6.1.1  堆数据存储的特点 148
6.1.2  产生堆数据 149
6.1.3  堆页面头部的奥秘 154
6.1.4  first_iam_page参数的奥秘 157
6.1.5  总结堆数据存储的管理方法 161
6.2  聚集索引数据存储的奥秘 162
6.2.1  产生聚集索引数据 162
6.2.2  获得聚集索引的管理参数 164
6.2.3  获得聚集索引的页面信息 166
6.2.4  root_page参数的奥秘 166
6.2.5  研究聚集索引页面头部数据 169
6.2.6  总结聚集索引数据存储的管理方法 175
6.3  非聚集索引数据存储的奥秘 176
6.3.1  产生非聚集索引数据 177
6.3.2  获得非聚集索引的管理参数 177
6.3.3  获得非聚集索引的页面信息 179
6.3.4  研究root_page参数的奥秘 180
6.3.5  研究非聚集索引页面数据 183
6.3.6  总结非聚集索引数据存储的管理方法 189
6.4  盘区(Extent) 190
6.4.1  盘区的类型 191
6.4.2  分配盘区的策略 191
6.4.3  GAM管理盘区的机制 191
6.4.4  SGAM管理混合盘区的机制 194
6.4.5  给数据对象分配盘区的机制 197
6.5  页面头部存储参数的奥秘 197
6.5.1  m_pageid 198
6.5.2  m_hearderVersion 199
6.5.3  m_type 199
6.5.4  m_level 200
6.5.5  m_objid(allocUnitId.idobj) 200
6.5.6  4个metadata参数 202
6.5.7  m_prevPage参数 204
6.5.8  m_nextPage参数 204
6.5.9  pminlen参数 205
6.5.10  m_slotCnt参数 205
第7章  事务日志 206
7.1  事务(Transaction) 206
7.1.1  事务的特性 207
7.1.2  事务的状态 208
7.1.3  SQL Server 2005的事务模式 209
7.2  日志文件(Transaction Log) 211
7.2.1  VLF的奥秘 211
7.2.2  日志文件的WAL机制的奥秘 214
7.3  日志记录(Log Record) 216
7.3.1  日志记录的类型 216
7.3.2  用DBCC LOG研究日志记录的数据 216
7.3.3  研究完整事务的日志记录 218
7.4  SQL语句与日志的关系 223
7.4.1  Select语句与日志的关系 223
7.4.2  Insert语句与日志的关系 225
7.4.3  Update语句与日志的关系 229
7.4.4  Delete语句与日志的关系 237
第8章   LSN 242
8.1  文件的LSN 242
8.1.1  查询数据文件的LSN 242
8.1.2  日志文件的LSN 243
8.2  数据页面的m_lsn的奥秘 244
8.2.1  查询页面的m_lsn 244
8.2.2  查询m_lsn对应的日志记录 246
8.2.3  剖析日志记录的含义 247
8.2.4  结论 248
第9章  深入剖析备份与恢复机制 249
9.1  无处不在的故障 249
9.1.1  事务故障 249
9.1.2  系统故障 250
9.1.3  介质故障 250
9.1.4  DBA需要应对的故障 251
9.2  不同类型故障的恢复机制 251
9.2.1  事务故障的恢复机制 251
9.2.2  系统故障的恢复机制 252
9.2.3  介质故障的恢复机制 252
9.3  基于事务日志的备份和恢复机制 253
9.3.1  经典的事务日志结构 253
9.3.2  Redo(重做)事务 253
9.3.3  Undo(回滚)事务 255
9.4  SQL Server事务日志的恢复机制 256
9.4.1  剖析日志记录结构的奥秘 256
9.4.2  Previous Page LSN参数的奥秘 258
9.4.3  Undo的实现机制 262
9.4.4  Redo的实现机制 263
9.5  检查点机制 264
9.5.1  检查点的操作 264
9.5.2  检查点与恢复效率的关系 265
9.5.3  MinLSN的选择 266
第10章  研究备份与恢复的工具 267
10.1  RESTORE FILELISTONLY 267
10.1.1  语法形式 267
10.1.2  使用方法 268
10.2  RESTORE HEADERONLY 270
10.2.1  语法形式 270
10.2.2  使用方法 271
第11章  恢复模型的奥秘 274
11.1  产生测试数据库 274
11.1.1  产生库结构 275
11.1.2  产生表 276
11.1.3  产生测试数据 277
11.2  完整恢复模型 277
11.2.1  概念 277
11.2.2  模型下日志的特点 278
11.2.3  将数据库设置为完整恢复模型 278
11.2.4  研究Insert语句的日志 279
11.2.5  研究Update语句的日志 282
11.2.6  研究Delete语句的日志 283
11.2.7  研究bcp语句的日志 284
11.3  简单恢复模型 286
11.3.1  概念 286
11.3.2  模型下日志的特点 287
11.3.3  将数据库设置为简单恢复模型 287
11.3.4  研究检查点的影响 288
11.4  大容量日志恢复模型 289
11.4.1  概念 289
11.4.2  将数据库设置为大容量日志恢复模型 290
11.4.3  研究bcp语句的日志 290
11.5  如何选择恢复模型 293
第12章  完整数据库备份与恢复的奥秘 294
12.1  完整数据库备份与恢复原理 294
12.1.1  完整数据库备份原理 294
12.1.2  完整数据库恢复原理 295
12.1.3  完整数据库备份能否恢复到故障点 295
12.2  完整数据库备份与恢复操作 295
12.2.1  Backup Database语句 296
12.2.2  图形化备份操作 297
12.3  完整数据库备份对日志的影响 300
12.3.1  产生测试数据库 300
12.3.2  备份前的日志情况 300
12.3.3  备份后的日志情况 301
12.3.4  备份集中的日志情况 302
12.3.5  揭示完整数据库备份影响日志的奥秘 302
12.4  完整数据库恢复的奥秘 303
12.4.1  Restore Database语句 303
12.4.2  目标时间点的奥秘 305
12.4.3  恢复后的日志 310
12.5  结论 311
第13章  差异数据库备份与恢复的奥秘 312
13.1  差异数据库备份与恢复原理 312
13.1.1  差异数据库备份原理 312
13.1.2  差异数据库恢复原理 313
13.1.3  差异数据库备份能否恢复到故障点 313
13.2  差异数据库备份对日志的影响 314
13.2.1  产生测试数据库 314
13.2.2  备份前的日志情况 314
13.2.3  完整数据库备份后的日志情况 315
13.2.4  备份集中的日志情况 316
13.2.5  完成第1次差异备份 316
13.2.6  第1次差异数据库备份后的日志情况 317
13.2.7  差异备份集中的日志情况 319
13.2.8  完成第2次差异备份 319
13.2.9  第2次差异数据库备份后的日志情况 320
13.2.10  第2次差异备份集中的日志情况 322
13.2.11  差异备份如何影响日志 323
13.3  差异数据库恢复的奥秘 324
13.3.1  恢复完整数据库备份 324
13.3.2  恢复完全数据库备份+差异备份1 325
13.3.3  恢复完全数据库备份+差异备份2 327
13.3.4  恢复完全数据库备份+差异备份1+差异备份2 329
13.4  结论 331
第14章  事务日志备份与恢复的奥秘 332
14.1  事务日志备份与恢复原理 332
14.1.1  事务日志备份与恢复原理 332
14.1.2  事务日志备份连续的奥秘 333
14.1.3  恢复到即时点的奥秘 335
14.1.4  恢复到故障点的奥秘 337
14.1.5  尾日志备份 338
14.2  尾日志备份 339
14.2.1  图形化尾日志备份操作 339
14.2.2  用Backup Log语句完成尾日志备份 340
14.3  产生备份集 342
14.3.1  案例设计 342
14.3.2  产生备份集 344
14.4  在线恢复到故障点 351
14.4.1  存储备份信息的系统表 351
14.4.2  在线恢复到故障点 352
14.5  用Bak文件恢复到故障点的奥秘 352
14.5.1  发现的问题 352
14.5.2  解决的办法 353
14.5.3  验证是否恢复到故障点 355
14.6  备份与恢复疑难问题 357
14.6.1  恢复中的单用户模式问题 357
14.6.2  尚未备份日志尾部问题 358
14.6.3  日志备份序列LSN中断问题 359
14.6.4  备份集不吻合的问题 361
猜您喜欢

读书导航