注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络数据库数据库理论高级进阶DB2:内部结构、高级管理与问题诊断(第2版)

高级进阶DB2:内部结构、高级管理与问题诊断(第2版)

高级进阶DB2:内部结构、高级管理与问题诊断(第2版)

定 价:¥68.00

作 者: 牛新庄 著
出版社: 清华大学出版社
丛编项:
标 签: 计算机与互联网 数据库

ISBN: 9787302323839 出版时间: 2013-07-01 包装: 平装
开本: 16开 页数: 484 字数:  

内容简介

  数据库内核是数据库系统稳定运行的心脏,DB2数据库内核庞大而复杂。本书从DB2内核组件入手,同时介绍了其与操作系统在进程、共享内存、信号量之间的关系。作者在本书中重点介绍了各个内部组件的层次与功能、内存体系结构、存储内部结构、高级锁等。优化器是任何数据库执行SQL的关键部分,本书对优化器产生的各种执行计划进行了详细解释,这对于理解DB2内部工作原理大有裨益。同时,本书还介绍了DB2各种诊断工具的使用,各种数据库配置参数的含义及调整、数据库系统视图等。本书特色◆ 本书揭示了DB2数据库的内部结构和机理,展示了DB2数据库技术的精髓,并结合多年的实践经验,贯穿了大量的实战技巧◆ 新增了HADR和DPF的全名介绍和技巧

作者简介

  牛新庄,国内顶尖数据架构和信息治理专家,担任对外经济贸易大学客座教授、北京交通大学兼职教授、中国DB2用户协会(CDUG)理事长、亚洲金融合作联盟信息科技委员会主任。2008年曾以217万年薪受聘于中国建设银行总行特聘技术顾问,2009年受邀加入中国民生银行总行科技部,现任总行科技部总经理。牛新庄博士拥有20多项国际厂商认证(包括DB2 V5~V9的全部认证),获得过国内数据库领域最高荣誉的“2006年中国首届杰出数据库工程师奖”、“首届IBM杰出软件专家奖”、“2006年IT168技术卓越奖”等奖项。

图书目录

第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 Stability) 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  db2ls和db2level 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  实例启动报SQL1042C
错误 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 not
accessible) 422
10.3.3  quiesced exclusive | share |
update 423
10.3.4  restore pending和storage
must 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/IXF注意问题 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

本目录推荐