第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文件注册表 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 SYSSTAI编目视图 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查看历史记录 329
7.4.3检查备份介质完整性 331
7.4.4实例参数导出导入 332
7.5 DPF分区环境下的备份与恢复 333
7.5.1 DPF分区环境下备份与恢复的特点 333
7.5.2再论BACKUP与RESTORE命令 334
7.5.3需要掌握:db2_all和rah命令 337
7.6最佳实践 338
7.6.1了解DB2备份策略 338
7.6.2如何让我的备份井井有条 339
7.6.3还有哪些可供调整的参数 340
7.7运维攻略笔记——一条龙解决方案 342
7.8小结 343
第8章 数据移动——搬运的年代 344
8.1数据移动时刻准备着 345
8.1.1移动数据不容易 345
8.1.2移动手段多多益善 345
8.1.3“移动的粮草”先行 346
8.2数据移动双胞胎——PORT兄弟 348
8.2.1手把手教你使用EXPORT命令导出数据 348
8.2.2手把手教你使用IMPORT命令导入数据 353
8.3 LOAD面面观 363
8.3.1手把手教你使用LOAD命令导入数据 363
8.3.2你所要知道的LOAD的四个阶段 366
8.3.3你所要知道的LOAD过程中表的状态以及应对方法 368
8.3.4 LOAD提速与刘翔跨栏有一样的烦恼 371
8.3.5 LOAD好,还是IMPORT更棒 372
8.4还有什么移动方式可供选择 373
8.4.1使用db2move在数据库间移动数据 374
8.4.2使用ADMIN_MOVE_TABLE在数据库内移动表 378
8.4.3使用ADMIN_COPY_SCHEMA在数据库内移动对象 382
8.4.4特殊对象的移动方式 383
8.4.5物理层面移动数据 389
8.5多分区环境下的数据移动 395
8.5.1多分区环境下的LOAD 395
8.5.2多分区环境下LOAD需要注意的问题 400
8.6 Oracle数据移动与DB2数据移动的比较 401
8.7运维攻略笔记——检验的三个指标 402
8.8本章小结 403
第9章 数据库故障诊断 404
9.1救场如救火排障如救人 405
9.1.1数据库出了故障?急! 405
9.1.2常见问题与故障分类 407
9.1.3排障六诀 408
9.1.4日常运维“防患于未然” 409
9.2你必须掌握的故障诊断工具 410
9.2.1 db2support收集诊断信息 410
9.2.2 db2diag分析事故现场 413
9.2.3 db2pd诊断和调优 415
9.2.4 db2trc跟踪DB2的内部运行 416
9.3一场惊心动魄的排障实战 417
9.4 DB2数据库排障案例集 420
9.4.1与实例相关的问题集锦 421
9.4.2存储规划问题 425
9.4.3 DB2日志、备份恢复一箩筐 431
9.4.4 LOAD,一定要hold住 433
9.4.5日常运维那些事儿 435
9.4.6数据仓库排障 436
9.5运维攻略笔记——呵呵,IBM的人喜欢在盘古大观上看问题 440
9.6小结 441
附录A Oracle和DB2机制对比 442
附录B Oracle和DB2术语对比 444
附录C Oracle和DB2命令对比 446
附录D缩略语 450
后记 455
参考文献 456