《高级进阶DB2 第2版 内部结构、高级管理与问题诊断》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:牛新庄著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302323839
  • 页数:470 页
图书介绍:本书作者在本书中重点介绍了各个内部组件的层次与功能、内存内部结构、存储内部结构、高级锁等。优化器是任何数据库执行SQL的关键部分,本书对优化器产生的各种执行计划进行了详细解读,这对应理解DB2内部工作原来大有裨益。同时,本书还介绍了DB2各种诊断工具的使用,各种数据库配置参数含义及调整、数据库系统视图等。同时还详细介绍了HADR和DPF技术。

第1章DB2进程和内存结构 1

1.1 DB2进程体系结构 1

1.1.1 DB2进程技术模型 1

1.1.2与操作系统相关的进程 3

1.1.3与实例相关的进程和线程 5

1.1.4与数据库相关的进程和线程 6

1.1.5与应用程序相关的进程 9

1.1.6监控EDU运行的SQL语句 10

1.1.7收集进程/线程堆栈信息 12

1.2代理程序通信 13

1.2.1代理程序概述 13

1.2.2代理程序相关配置参数 13

1.2.3应用程序、代理程序和事务 16

1.2.4代理和连接的常见问题与优化 17

1.3实用程序相关进程 21

1.3.1 LOAD相关进程 21

1.3.2备份/恢复相关进程 26

1.4 DB2内存体系结构 29

1.4.1实例共享内存 30

1.4.2数据库共享内存 31

1.4.3应用程序共享内存 36

1.4.4代理私有内存 38

1.4.5代理程序与应用程序之间通信时的内存 40

1.4.6共享内存与私有内存 40

1.5内存集、内存池和内存块 42

1.5.1实例级内存集 43

1.5.2跟踪内存使用 46

1.5.3定位内存泄漏 48

1.5.4数据库级内存集 49

1.6内存案例分析 51

1.7内存自动调优 53

1.8本章小结 55

第2章DB2数据库设计 57

2.1 DB2存储内部结构 57

2.1.1 DB2存储层次结构 57

2.1.2表空间存储结构 59

2.1.3 SMS表空间的存储结构 59

2.1.4 DMS表空间头部信息 59

2.1.5 DMS表空间映射 60

2.1.6表空间的高水位标记 61

2.1.7 RID格式 61

2.1.8索引叶的内部结构 62

2.2数据库物理设计 63

2.2.1表空间容器的放置原则 63

2.2.2数据库物理设计原则 63

2.3数据库逻辑设计 64

2.3.1缓冲池设计原则 64

2.3.2表空间设计原则 69

2.3.3索引设计原则 79

2.4其他高级设计技术 81

2.4.1表分区及应用案例 81

2.4.2索引分区及应用案例 83

2.4.3数据库分区及应用案例 86

2.4.4多维(MDC)及应用案例 88

2.4.5表分区和多维集群表的使用 92

2.4.6物化查询表及应用案例 96

2.4.7 MDC、数据库分区、MQT和表分区配合使用 100

2.4.8表压缩和索引压缩 111

2.5总结 111

第3章 表的高级特性 113

3.1表分区的概念 113

3.1.1定义 113

3.1.2优点 114

3.2分区表的基本用法 115

3.2.1创建基本表分区 115

3.2.2定义分区表空间和分区键 118

3.2.3执行计划 123

3.2.4将现有表和视图迁移到分区表 126

3.3分区表的管理 128

3.3.1分区转出 128

3.3.2分区转入 130

3.3.3分区索引 132

3.3.4分区重组 135

3.4分区表detach的常见问题 140

3.4.1分区主表关联有强制外键约束 140

3.4.2分区主表含有非自动刷新的MQT 141

3.4.3分区主表含有自动刷新的MQT 141

3.4.4主表或主表的分区正在被其他事务以非UR的隔离级别读取 142

3.5行压缩 142

3.5.1概念 143

3.5.2启用或禁用行压缩 144

3.5.3创建数据字典 146

3.5.4评估压缩空间 148

3.5.5检查压缩状态 150

3.6表压缩应用案例 151

3.7索引压缩及应用案例 160

3.8本章小结 163

第4章 分区数据库 165

4.1 DB2 DPF多分区基本架构和相关概念 165

4.1.1 DB2 DPF基本架构 165

4.1.2 DB2 DPF数据的分布键以及数据倾斜问题 166

4.1.3 DB2 DPF数据库并行I/O 168

4.1.4 DB2 DPF数据库的扩展性 169

4.2 DB2 DPF多分区应用 170

4.3配置DB2 DPF多分区环境 172

4.3.1 DB2 DPF安装准备 172

4.3.2 DB2 DPF环境搭建 174

4.3.3创建表空间和缓冲池 177

4.3.4 DB2 DPF最佳实践 178

4.4本章小结 193

第5章DB2 HADR 195

5.1 HADR的设计理念 195

5.1.1什么是高可用性 195

5.1.2 HADR的原理 197

5.1.3 HADR的日志处理模式 198

5.1.4 HADR的限制 200

5.2 HADR典型场景的搭建 200

5.2.1对基础环境的要求 201

5.2.2 HADR的配置参数 201

5.2.3复制PRIMARY数据库 202

5.2.4启动STANDBY 203

5.2.5启动PRIMARY 204

5.3 HADR的维护 204

5.3.1监控HADR 204

5.3.2 HADR的切换方式 209

5.3.3切换后对应用产生的影响 210

5.3.4 HADR状态 211

5.3.5 HADR异常状态的处理 211

5.4 HADR性能调优 212

5.4.1接收缓冲 212

5.4.2网络相关 212

5.4.3内部参数 212

5.4.4表和表空间的调整 213

5.5 HADR高可用案例分享 213

5.5.1 HADR结合PowerHA 214

5.5.2 HADR结合TSA 218

第6章 锁和并发 223

6.1锁的概念 223

6.1.1数据一致性 223

6.1.2事务和事务边界 224

6.1.3锁的概念 226

6.2锁的属性、策略及模式 231

6.2.1锁的属性 231

6.2.2加锁策略 231

6.2.3锁的模式 231

6.2.4如何获取锁 234

6.2.5锁的兼容性 236

6.3隔离级别(Isolation Levels) 237

6.3.1可重复读(RR—Repeatable Read) 237

6.3.2读稳定性(RS—Read Stabity) 238

6.3.3游标稳定性(CS—Cursor Stability) 240

6.3.4当前提交(Currently Committed) 241

6.3.5未提交读(UR—Uncommitted Read) 242

6.3.6隔离级别的摘要 244

6.4锁转换、锁等待、锁升级和死锁 246

6.4.1锁转换及调整案例 246

6.4.2锁升级及调整案例 248

6.4.3锁等待及调整案例 251

6.4.4死锁及调整案例 253

6.5锁相关的性能问题总结 257

6.6锁与应用程序设计 259

6.7锁监控工具 262

6.8最大化并发性 266

6.8.1选择合适的隔离级别 266

6.8.2尽量避免锁等待、锁升级和死锁 266

6.8.3设置合理的注册表变量 267

6.9锁和并发总结 275

第7章DB2高级监控 277

7.1从系统函数和视图获取监控信息 277

7.1.1利用表函数监控 277

7.1.2性能管理视图 280

7.2监控指标和案例 281

7.2.1一些常用的监控指标和语句 281

7.2.2编写脚本以获取监控信息 287

7.3 db2pd及监控案例 289

7.3.1 db2pd概述 289

7.3.2 db2pd监控案例 290

7.4事件监视器及监控案例 301

7.4.1事件监视器的创建方法和步骤 302

7.4.2事件监控器案例 303

7.4.3编写脚本从事件监控器中获取监控信息 306

7.5 db2mtrk及监控案例 308

7.6 DB2高级监控总结 310

第8章DB2故障诊断 311

8.1 DB2故障诊断机制 311

8.1.1故障诊断相关文件 311

8.1.2设置故障诊断级别 320

8.2深入讲解故障诊断文件 325

8.2.1解释管理通知日志文件条目 325

8.2.2解释诊断日志文件条目 326

8.3故障诊断工具 329

8.3.1使用db2support收集环境信息 329

8.3.2 db21s和db21evel 330

8.3.3使用db2diag分析db2diag.log文件 331

8.3.4 DB2内部返回码 337

8.4故障诊断分析流程 339

8.4.1故障诊断流程 339

8.4.2结合系统事件判断 342

8.4.3结合系统运行状况诊断 342

8.5案例分析 343

8.6本章小结 347

第9章 数据库安全 349

9.1 DB2安全机制概述 350

9.2认证(authentication) 352

9.2.1什么时候进行DB2身份认证 352

9.2.2 DB2身份认证类型 353

9.3权限(authorization) 358

9.3.1权限层次 358

9.3.2实例级权限 359

9.3.3数据库级权限 365

9.4特权(privilege) 368

9.4.1特权层次结构 368

9.4.2授予特权 370

9.4.3撤销特权 374

9.4.4显式特权/隐式特权/间接特权 376

9.4.5静态和动态SQL特权考虑因素 379

9.4.6维护特权/权限 381

9.5某银行安全规划案例 385

9.6执行安全审计(db2audit) 387

9.6.1实例级审计 387

9.6.2数据库级审计 392

9.7基于标签的访问控制(LBAC)及案例 395

9.8本章小结 401

第10章DB2常见问题总结 403

10.1实例常见问题和诊断案例 403

10.1.1实例无法启动问题总结 403

10.1.2实例无法正常终止 404

10.1.3实例启动报SQL 1042C错误 404

10.1.4实例目录误删除 405

10.1.5实例崩溃问题 405

10.2数据库常见问题总结 406

10.2.1数据库日志空间满SQL0964C错误 406

10.2.2数据库时区和时间 407

10.2.3中文乱码和代码页转换 408

10.2.4通讯错误SQL30081N 411

10.2.5数据库备份、前滚暂挂 412

10.2.6数据库活动日志删除 412

10.2.7数据库损坏(数据页、索引页)SQL1043C 412

10.2.8索引重新构建问题 414

10.2.9 DB2实用程序不可用 415

10.2.10快速清空表数据 415

10.2.11表和索引统计信息不一致 416

10.2.12表空间高水位问题 417

10.3表空间状态 421

10.3.1 backup pending 422

10.3.2脱机(offline and notaccessible) 422

10.3.3 quiesced exclusive | share|update 423

10.3.4 restore pending和storagemust be defined 423

10.3.5 rollforward pending 424

10.3.6表空间状态总结 424

10.4 LOAD期间表状态总结 424

10.4.1 check pending 425

10.4.2 load pending 425

10.4.3 load in progress 426

10.4.4 not load restartable 426

10.4.5 read access only 427

10.4.6 unavailable 428

10.5锁相关问题 428

10.5.1锁升级 428

10.5.2锁等待问题解决流程 428

10.5.3死锁 429

10.6内存常见问题 429

10.6.1 bufferpool设置过大,导致数据库无法启动 429

10.6.2排序溢出 429

10.6.3锁内存不足 430

10.7备份恢复常见问题 430

10.8数据移动常见问题总结 431

10.8.1标识列 431

10.8.2生成列 435

10.8.3大对象 438

10.8.4空值处理 440

10.8.5定界符注意问题 443

10.8.6 PC/LXF注意问题 446

10.8.7代码页不同注意事项 448

10.8.8日期格式 449

10.8.9 XML问题 451

10.9安全常见问题总结 453

10.9.1从PUBLIC撤销隐式的权限和特权 454

10.9.2保护系统编目视图 456

10.9.3创建实例用户并显式指定组 457

10.9.4为SYSxxx GROUP参数使用显式值 457

10.9.5跟踪隐式特权 458

10.9.6不授予不必要的特权 459

10.9.7使用加密的AUTHENTICATION模式 460

10.9.8使用独立ID创建和拥有对象 461

10.9.9使用视图控制数据访问 462

10.9.10使用存储过程控制数据访问 463

10.9.11使用LBAC控制数据访问 464

10.9.12对重要敏感数据进行加密 465

10.10 SQL0805和SQL0818错误 467