第1章 DBA与DB2运维 1
1.1 DBA们的困惑:从Oracle向DB2运维转型 2
1.1.1 “库二代”的前世今生 2
1.1.2 向Oracle转型的挑战 4
1.2 DBA们,你们对自己的职业自信吗 6
1.2.1 学哪个数据库更有前途:Oracle还是DB2 7
1.2.2 “钱途”和提升能力哪个更重要 8
1.3 DBA的职责:无限风光在险峰 9
1.3.1 日常维护 10
1.3.2 处理故障 14
1.4 DBA修炼之道:运筹帷幄 决胜千里 17
1.4.1 搭起黄金屋 17
1.4.2 精通软硬件技术 18
1.4.3 加强精神层面的修养 19
1.4.4 熟练运用工具 20
1.5 读者使用本书的方法 23
1.6 运维攻略笔记——运筹帷幄从蒙古起步 23
1.7 小结 25
第2章 DB2安装与配置——瑜伽式的运维启航 26
2.1 找对版本 摸清特性——DB2的版本与特性 27
2.1.1 认识她选择她——DB2版本 27
2.1.2 了解她明白她——DB2的特性 28
2.2 并非“万事开头难”——DB2的安装 30
2.2.1 关键第一步——修改系统内核参数 30
2.2.2 轻轻松松开始——通过安装向导在Linux平台上安装DB2 31
2.2.3 DB2高级安装方法(适合Linux/UNIX平台) 40
2.2.4 享受成果——数据库操作初体验 44
2.2.5 理清在不同平台上安装的差异——Windows、Linux和UNIX平台安装要点 45
2.2.6 DB2安装常见问题 47
2.3 配置决定一切——DB2的环境与参数配置 49
2.3.1 环境变量(Environment Variables) 50
2.3.2 文件注册表(DB2 Profile Registries) 51
2.3.3 数据库管理器配置参数(DBM CFG) 52
2.3.4 数据库配置参数(DB CFG) 53
2.3.5 参数配置的实例 54
2.4 DB2数据库的系统编目 56
2.4.1 什么是DB2编目表 56
2.4.2 SYSCAT编目视图 57
2.4.3 SYSSTAT编目视图 60
2.4.4 与ORACLE数据字典的比较 61
2.5 运维攻略笔记——坐等扬帆时 62
2.6 本章小结 63
第3章 雾里看花——DB2的管理和操作 64
3.1 从DB2体系结构开始 65
3.1.1 DB2体系结构:分层管理 65
3.1.2 DB2进程模型:线程vs进程 66
3.1.3 掌握DB2内存模型:不容易 69
3.2 DB2实例 75
3.2.1 什么是实例 76
3.2.2 你必须掌握的:实例管理命令 77
3.3 DB2数据库 78
3.3.1 创建数据库:竟然有这么多学问 78
3.3.2 你必须掌握的:数据库管理命令 80
3.4 DB2表空间 82
3.4.1 表空间种类:真不少 82
3.4.2 你必须掌握的绝活:DB2存储规划 83
3.4.3 表空间管理的三板斧 88
3.4.4 攻克难关:降低表空间高水位标记 91
3.5 DB2访问与操作 95
3.5.1 访问DB2的接口 95
3.5.2 访问远程数据库的方式 96
3.5.3 实战:连接远程数据库 98
3.5.4 你必须掌握的:实用DB2命令 100
3.6 DB2安全控制 102
3.6.1 什么是DB2中的认证 102
3.6.2 什么是DB2中的授权 104
3.6.3 如何对敏感数据加密 117
3.6.4 三层架构的安全基石:可信上下文 120
3.7 运维攻略笔记——当Oracle使用者遇见DB2 121
3.8 本章小结 122
第4章 芝麻开门-DB2数据仓库 123
4.1 数据仓库是什么 124
4.1.1 数据仓库的误区 124
4.1.2 数据仓库的体系结构 126
4.2 支撑数据仓库的DB2特性 127
4.2.1 分区数据库 127
4.2.2 灵活的数据分区 129
4.2.3 分区环境中的连接(Join)策略 132
4.2.4 物化查询表 134
4.3 DB2数据仓库系统设计 135
4.3.1 BCU/BPU的设计原则 135
4.3.2 数据BPU上存储划分的原则 138
4.3.3 数据库文件的系统划分 138
4.3.4 仓库中诞生的数据库 139
4.3.5 数据库分区组的设计 139
4.3.6 缓冲池的设计 140
4.3.7 数据库日志的设计 141
4.3.8 表空间的设计 142
4.3.9 表的存放技巧 142
4.3.10 数据压缩 143
4.4 数据仓库实战 143
4.4.1 实战的硬件环境 143
4.4.2 数据仓库中实例的规划与实施 144
4.4.3 数据仓库中数据库的规划与实施 149
4.4.4 数据仓库中的DB2参数设置 152
4.4.5 其他操作 154
4.5 DB2工作负载管理(WLM) 156
4.5.1 创建WLM的监视器 156
4.5.2 怎样控制已知工作的负载 158
4.5.3 怎样控制不可预见的工作负载 159
4.5.4 对并行LOAD的工作负载限制 162
4.6 数据仓库日常运维 163
4.6.1 DB2数据仓库可扩展吗 163
4.6.2 对数据库分区的维护 163
4.6.3 分区数据库中常用的两个命令 168
4.6.4 数据仓库的备份与恢复 169
4.7 与Oracle数据仓库的比较 169
4.8 运维攻略笔记:想买房 先预测一把地铁修到哪里 170
4.9 本章小结 172
第5章 运维中的锁处理与并发控制 173
5.1 如履薄冰——并发环境下的数据库运维 174
5.2 并发控制的法宝——DB2锁机制解析 180
5.2.1 锁与事务一致性 181
5.2.2 锁的类型和相互关系 184
5.3 定制并发——DB2隔离级别 188
5.3.1 隔离级别解析 188
5.3.2 隔离级别设定 190
5.3.3 隔离级别与锁常见问题 192
5.4 样板戏——锁之案例解析 194
5.4.1 解锁的“样板”套路 194
5.4.2 沙家浜开始了 195
5.4.3 锁等待分析 197
5.4.4 锁超时分析 202
5.4.5 锁升级分析 205
5.4.6 死锁探秘 206
5.5 精打细算——DB2并发性的最大化 215
5.5.1 并发性与性能问题 215
5.5.2 并发性与应用程序设计 216
5.5.3 如何实现并发性的最大化 217
5.6 强力PK——DB2和Oracle并发机制比较 220
5.7 经验之谈——提升系统并发能力的秘诀 221
5.8 运维攻略笔记:体验过网络购票吗?感觉慢的话,来这里看看 224
5.9 小结 225
第6章 DB2日常运维-监控 226
6.1 运维人员的必修课——监控 227
6.1.1 监控工作的原则 227
6.1.2 监控的任务 228
6.2 每天你需要做什么 230
6.2.1 监控存储空间状态 231
6.2.2 监控主机状态 234
6.2.3 检查数据库状态 236
6.2.4 每日监控任务与命令对照表 245
6.3 每周你需要做什么 246
6.3.1 检查全量备份 246
6.3.2 检查是否需要Runstats 248
6.3.3 检查表是否需要重组 248
6.3.4 查找并重新绑定无效包 250
6.3.5 监控新对象和应用程序变动 250
6.4 每月你需要做什么 252
6.4.1 监控月结过程 252
6.4.2 统计数据增长 253
6.4.3 检查权限变更 254
6.4.4 审计用户操作 255
6.4.5 检查软件更新 258
6.5 监控利器——DB2监控工具 259
6.5.1 快照监视器 259
6.5.2 事件监视器 262
6.5.3 监视器表函数 266
6.5.4 管理视图 268
6.5.5 db2pd 270
6.5.6 db2top 273
6.6 如何监控特定问题 274
6.7 运维攻略笔记——女性运维指南 280
6.8 小结 281
第7章 有备无患——数据库备份与恢复 282
7.1 DB2金刚不坏之身的秘密 283
7.1.1 运维人员必须看清的日志真相 283
7.1.2 突然断电之灾难恢复 290
7.1.3 归档日志很给力,也会吓坏人 292
7.1.4 日志与备份恢复的关系 295
7.2 挂一档起步 295
7.2.1 备份很简单吗 295
7.2.2 手把手教你使用BACKUP命令 298
7.2.3 Oracle、DB2、版本恢复和前滚恢复 300
7.2.4 手把手教你使用RESTORE和ROLLFORWARD命令 302
7.2.5 有个捷径:RECOVER命令恢复 306
7.2.6 有个技巧:恢复被删除的表 309
7.3 踩油门快跑 312
7.3.1 备份和恢复机制 312
7.3.2 增量备份与恢复 313
7.3.3 全备份和表空间备份 316
7.3.4 大容量磁带库备份恢复 318
7.3.5 重定向恢复数据——应对机器损坏的招数 322
7.3.6 Flash Copy——高级备份方式 326
7.4 工具箱 327
7.4.1 监控工具 327
7.4.2 查