高级进阶DB2(第2版)——内部结构、高级管理与问题诊断
《高级进阶DB2(第2版)——内部结构、高级管理与问题诊断》
基本信息
作者: 牛新庄
出版社:清华大学出版社
ISBN:9787302323839
上架时间:2013-7-3
出版日期:2013 年7月
开本:16开
页码:484
版次:2-1
所属分类:计算机 > 数据库 > DB2
更多关于 》》》《
高级进阶DB2(第2版)——内部结构、高级管理与问题诊断》
内容简介
计算机书籍
数据库内核是数据库系统稳定运行的心脏,DB2数据库内核庞大而复杂。《高级进阶DB2(第2版)——内部结构、高级管理与问题诊断》从DB2内核组件入手,同时介绍了其与操作系统在进程、共享内存、信号量之间的关系。作者在本书中重点介绍了各个内部组件的层次与功能、内存体系结构、存储内部结构、高级锁等。优化器是任何数据库执行SQL的关键部分,本书对优化器产生的各种执行计划进行了详细解释,这对于理解DB2内部工作原理大有裨益。同时,本书还介绍了DB2各种诊断工具的使用,各种数据库配置参数的含义及调整、数据库系统视图等。
目录
《高级进阶db2(第2版)——内部结构、高级管理与问题诊断》
第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和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/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