《SQL Server 2005奥秘》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:赵松涛编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121046199
  • 页数:361 页
图书介绍:本书是作者深入研究SQL Server 2005数据库体系结构和奥秘的经验总结。本书不拘泥于具体的管理操作,而是通过对存储的数据和日志文件数据的深入研究,依次揭示了很多在Internet和目前市面上都无法查询到的SQL Server2005的奥秘,在后面几章,还诠释了SQL Server2005备份与恢复的奥秘。这些经过艰辛的努力、大量的实验得出的结论非常有助于学习和使用SQL Server2005的读者深入掌握和理解SQL Server2005的运行机制。本书内容全面,思路流畅,所有实例均经过上机反复实践。本书适合有一定管理和开发经验的读者阅读参考,可作为DBA的案头参考书,具有很高的收藏价值。本书配套光盘包含各章标注的内容及作者亲自配音制作的多媒体视频。

第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