第1章 DB2介绍和安装 1
1.1 DB2数据库概述 1
1.1.1 DB2发展历史 1
1.1.2 DB2版本和平台支持 5
1.1.3 DB2产品组件和功能 9
1.2 DB2数据库的安装与配置 12
1.2.1 DB2在Windows上的安装 13
1.2.2 DB2在Linux/UNIX上
的安装 21
1.3 DB2数据库的体系结构 23
第2章 创建实例和管理服务器 31
2.1 实例 31
2.1.1 实例的概念 31
2.1.2 创建实例 32
2.1.3 实例目录 35
2.1.4 实例的相关命令 39
2.1.5 DB2INSTANCE变量介绍 44
2.1.6 删除实例 45
2.1.7 配置实例 45
2.2 管理服务器 46
2.2.1 管理服务器的概念 46
2.2.2 创建管理服务器 47
2.2.3 管理服务器的相关命令 49
2.2.4 删除管理服务器 49
2.2.5 配置管理服务器 50
第3章 创建数据库和表空间 51
3.1 创建数据库 51
3.1.1 DB2数据库存储模型 53
3.1.2 表空间管理类型 55
3.1.3 创建数据库 58
3.1.4 数据库目录 70
3.2 设计表空间 73
3.2.1 创建表空间 73
3.2.2 维护表空间 76
3.2.3 表空间设计注意事项 83
3.2.4 prefechsize大小选择 89
3.2.5 文件系统(CIO/DIO)和
裸设备 90
3.2.6 设置OVERHEAD和
TRANSFERRATE 93
3.2.7 优化RAID设备上表空间
的性能 93
3.2.8 合理设置系统临时表空间 95
3.3 缓冲池 96
3.3.1 缓冲池的使用方法 97
3.3.2 缓冲池和表空间之间的关系 97
3.3.3 维护缓冲池 98
3.3.4 缓冲池的设计原则 101
3.4 DB2 V10新特性——多温度
存储器 104
3.4.1 存储器组 104
3.4.2 表空间与存储器组 108
3.5 本章小结 109
第4章 访问数据库 111
4.1 访问DB2 111
4.2 DB2图形化操作环境 112
4.3 DB2 CLP处理程序 121
4.3.1 DB2 CLP简介 121
4.3.2 DB2 CLP设计 122
4.3.3 DB2 CLP命令选项 124
4.3.4 设置DB2_CLPPROMPT
以定制DB2 CLP 127
4.4 配置DB2服务器的TCP/IP
通信 131
4.4.1 在服务器上更新services
文件 132
4.4.2 在服务器上更新数据库
管理器配置文件 133
4.4.3 设置DB2服务器的通信
协议 134
4.4.4 查看服务器通信端口的
状态 134
4.4.5 使用控制中心配置DB2
服务器通信 134
4.5 配置客户机至服务器通信 135
4.5.1 客户机至服务器通信概述 135
4.5.2 使用控制中心配置客户端
通信 136
4.5.3 使用CA配置客户机到
服务器通信 137
4.5.4 深入了解DB2节点目录、
数据库目录 142
4.5.5 使用CLP配置客户机到
服务器通信的案例 148
4.6 实际生产中连接数据库的
各种方式 152
4.7 案例:数据库连接问题诊断 155
4.8 本章小结 159
第5章 创建数据库对象 161
5.1 模式 161
5.1.1 模式的概念 161
5.1.2 系统模式 163
5.1.3 设置和获得当前模式 163
5.1.4 模式和用户的区别 164
5.2 表设计 165
5.2.1 选择合适的数据类型 165
5.2.2 选择合适的约束类型 168
5.2.3 使用not null with default 171
5.2.4 生成列及应用案例 171
5.2.5 自动编号和标识列应用
案例 172
5.2.6 使用not logged initially
特性 173
5.2.7 使用append on特性 174
5.2.8 数据、索引和大对象分开
存放 175
5.2.9 设置pctfree 175
5.2.10 表的locksize 176
5.2.11 表的volatile特性 176
5.2.12 表维护相关命令 177
5.2.13 表设计高级选项 181
5.3 索引设计 187
5.3.1 索引的优点 187
5.3.2 索引类型 188
5.3.3 索引结构 191
5.3.4 理解索引的访问机制 193
5.3.5 创建集群索引 196
5.3.6 创建双向索引 197
5.3.7 完全索引访问
(index access only) 198
5.3.8 创建索引示例 199
5.3.9 索引总结 205
5.4 使用序列提高性能 207
5.4.1 应用程序性能和序列 207
5.4.2 序列的设计原则 208
5.4.3 维护序列 209
5.4.4 比较序列与标识列 213
5.5 视图 215
5.5.1 视图的类型 215
5.5.2 创建with check option
视图 219
5.5.3 维护视图 220
5.6 表表达式 221
5.6.1 嵌套的表表达式 221
5.6.2 公用表表达式 221
5.7 触发器设计 223
5.7.1 触发器的类型 223
5.7.2 触发器创建示例 225
5.7.3 触发器设计总结 227
5.8 例程 228
5.9 本章小结 229
第6章 数据移动 231
6.1 数据移动格式 231
6.1.1 定界ASCII文件格式 232
6.1.2 非定界ASCII文件格式 232
6.1.3 PC/IXF文件格式 233
6.1.4 工作表文件格式 233
6.1.5 游标 233
6.2 EXPORT 234
6.2.1 EXPORT概述 234
6.2.2 导出数据 234
6.2.3 导出数据示例 237
6.3 IMPORT 238
6.3.1 IMPORT概述 238
6.3.2 导入数据 238
6.3.3 导入示例 244
6.4 LOAD 246
6.4.1 LOAD概述 246
6.4.2 装入数据 247
6.4.3 装入示例 255
6.4.4 在线LOAD 259
6.4.5 监控LOAD进度 262
6.4.6 LOAD期间和之后的表空间
状态 263
6.4.7 使用CURSOR文件类型
移动数据 266
6.4.8 提高LOAD性能 267
6.4.9 LOAD失败恢复 272
6.4.10 LOAD和IMPORT
的比较 275
6.5 数据移动的性能问题 276
6.6 db2move和db2look 277
6.6.1 数据库移动工具
——db2move 278
6.6.2 DB2 DDL提取工具
——db2look 280
6.6.3 利用db2move和
db2look移动数据的案例 280
6.6.4 带COPY操作的
db2move实用程序 284
6.7 本章小结 289
第7章 数据库备份与恢复 291
7.1 恢复的概念 291
7.1.1 崩溃恢复(Crash Recovery) 295
7.1.2 灾难恢复
(Disaster Recovery) 296
7.1.3 版本恢复(Version Restore) 296
7.1.4 前滚恢复
(RollForward Recovery) 297
7.2 DB2日志 299
7.2.1 日志文件的使用 300
7.2.2 日志类型 302
7.2.3 日志相关配置参数 305
7.2.4 数据库日志总结 306
7.2.5 DB2日志的建议设置 308
7.3 数据库和表空间备份 310
7.3.1 数据库备份 310
7.3.2 表空间备份 312
7.3.3 增量备份 312
7.3.4 检查备份完整性——
db2ckbkp 314
7.4 数据库和表空间恢复 316
7.4.1 数据库恢复 316
7.4.2 表空间恢复 318
7.4.3 增量恢复 321
7.4.4 增量恢复检查——
db2ckrst 322
7.4.5 重定向恢复 322
7.4.6 恢复已删除的表 325
7.5 数据库和表空间前滚 329
7.5.1 数据库前滚 329
7.5.2 表空间前滚 331
7.6 RECOVER实用程序 334
7.7 恢复历史文件 338
7.8 数据库重建 341
7.8.1 数据库重建的概念 341
7.8.2 使用表空间备份重建可恢复
数据库 341
7.8.3 只使用部分表空间备份重建
可恢复数据库 344
7.8.4 使用包含日志文件的在线
备份重建数据库 346
7.8.5 使用增量备份映像重建
可恢复数据库 346
7.8.6 使用重定向选项重建可恢复
数据库 347
7.8.7 重建不可恢复数据库 348
7.8.8 数据库重建的限制 348
7.9 监控备份、复原和恢复进度 349
7.10 备份、恢复和复原期间的表
空间状态 350
7.11 优化备份、复原和恢复
性能 350
7.12 备份恢复最佳实践 352
第8章 SQL基础知识 355
8.1 简单查询入门 355
8.1.1 SELECT和FROM 356
8.1.2 WHERE 356
8.1.3 ORDER BY 356
8.1.4 GROUP BY和HAVING 357
8.2 搜索条件 358
8.2.1 谓词种类 358
8.2.2 基本谓词 358
8.2.3 量化谓词 359
8.2.4 BETWEEN、EXISTS和IN
谓词 360
8.2.5 LIKE谓词 360
8.2.6 NULL谓词 361
8.3 数据操作语言 361
8.3.1 INSERT 361
8.3.2 DELETE 362
8.3.3 UPDATE 363
8.3.4 MERGE 364
8.4 多表查询 366
8.4.1 JOIN连接 366
8.4.2 集合运算 367
8.5 高性能的SQL语句 369
8.5.1 高效SQL的准则 369
8.5.2 提高插入性能的准则 371
8.5.3 复杂查询的准则 372
8.5.4 索引的注意事项 373
8.6 本章小结 374
第9章 DB2基本监控方法 375
9.1 监控工具概述 375
9.2 快照监视器 377
9.3 利用表函数监控 382
9.4 性能管理视图及案例 385
9.5 快照监视器案例 391
9.5.1 监控案例1——动态 SQL
语句 391
9.5.2 监控案例2——通过表函数
监控 393
9.5.3 编写快照监控脚本 395
9.5.4 db2pd及监控案例 396
9.5.5 事件监视器及监控案例 403
9.5.6 db2mtrk及监控案例 407
9.6 本章小结 410
第10章 运行数据库必须考虑的数据库
设置 411
10.1 数据库配置参数概述 411
10.2 通信设置 413
10.3 内存有关的设置 415
10.4 锁有关的设置 421
10.5 日志相关的配置 426
10.6 自动维护相关的配置 431
10.7 监控相关的配置 432
10.8 安全相关的设置 434
10.9 供参考的DB2上线前设置 434
10.10 本章小结 437
第11章 DBA日常运行维护 439
11.1 统计信息更新 439
11.1.1 统计信息的重要性 440
11.1.2 减小RUNSTATS对
系统性能影响的策略 447
11.1.3 DB2自动统计信息收集 448
11.2 统计信息更新案例分析 451
11.2.1 RUNSTATS更新示例 451
11.2.2 收集分布式统计信息 452
11.2.3 包含频率和分位数统计
信息的RUNSTATS 453
11.2.4 包含列组统计信息的
RUNSTATS 455
11.2.5 包含 LIKE STATISTICS
的RUNSTATS 455
11.2.6 包含统计信息配置文件
的RUNSTATS 456
11.2.7 带有抽样的RUNSTATS 456
11.2.8 带有系统页级抽样的
RUNSTATS 457
11.2.9 收集统计信息的其他可供
选择的方法 458
11.2.10 RUNSTATS总结 459
11.3 碎片整理 459
11.3.1 表重组(REORG) 460
11.3.2 索引重组 468
11.3.3 重组表和索引的成本 474
11.3.4 合理设计以减少碎片
生成 475
11.3.5 启用表和索引的自动
重组 476
11.4 碎片整理案例分析 477
11.4.1 执行表、索引检查是否
需要做REORG 477
11.4.2 表和索引碎片整理 478
11.5 案例:生成碎片检查、统计
信息更新、碎片整理和
REBIND脚本 479
11.6 重新绑定程序包 479
11.7 DB2健康检查 481
11.7.1 查看是否有僵尸实例
进程 481
11.7.2 检查数据库是否一致 482
11.7.3 查找诊断日志以判断是否
有异常 482
11.7.4 检查数据库备份完整性、
日志归档是否正常 482
11.7.5 维护实例目录和数据库
目录的权限 485
11.7.6 查看磁盘空间 485
11.8 数据库监控 486
11.8.1 监控工具 486
11.8.2 计算数据库的大小 488
11.8.3 监控表的物理大小 488
11.8.4 监控单个索引的大小 488
11.8.5 监控数据库实用工具的
进度 489
11.8.6 监控数据库crash recovery
进度 489
11.8.7 监控catalog cache命中率 489
11.8.8 监控package cache
命中率 489
11.8.9 监控排序溢出率 489
11.8.10 监控正在REORG的表 489
11.8.11 监控缓冲池命中率 489
11.8.12 监控高成本应用程序 490
11.8.13 监控正在执行的时间
最长的SQL语句 490
11.8.14 监控SQL准备和预编译
时间最长的SQL语句 490
11.8.15 监控执行次数最多的
SQL语句 491
11.8.16 监控执行时间最长的
SQL语句 491
11.8.17 监控排序次数最多的
SQL语句 491
11.8.18 监控引起锁等待的SQL
语句 491
11.8.19 查找新创建的对象 491
11.8.20 查找无效对象 492
11.8.21 检查表空间状态 492
11.8.22 检查表状态 493
11.8.23 查找需要REORG的表
和索引 493
11.8.24 查找需要RUNSTATS的
表和索引 494
11.8.25 定期清理db2diag.log
文件 495
11.8.26 查找异常增长的表空间
和表 495
11.8.27 数据库维护总结 496
第12章 数据库常用工具 499
12.1 解释工具 499
12.1.1 Visual Explain
(可视化解释) 499
12.1.2 db2expln 507
12.1.3 db2exfmt 510
12.1.4 各种解释工具的比较 511
12.1.5 如何从解释信息中获取有
价值的建议 512
12.2 索引设计工具(db2advis) 513
12.2.1 DB2 Design Advisor
(db2advis) 513
12.2.2 DB2 Design Advisor
(db2advis)案例讲解 514
12.3 基准测试工具db2batch 517
12.3.1 db2batch 517
12.3.2 db2batch基准程序测试
分析示例 519
12.4 数据一致性检查工具 520
12.4.1 db2dart及案例 520
12.4.2 inspect及案例 521
12.5 db2look 522
12.5.1 db2look概述 522
12.5.2 利用db2look构建模拟
测试数据库 524
12.6 其他工具 526
12.6.1 db2bfd 526
12.6.2 db2_kill和db2nkill 527
12.6.3 db2tbst 527
12.7 本章小结 528
第13章 DB2 V10.1新特性 529
13.1 分身大法——pureScale 529
13.1.1 基本介绍 529
13.1.2 安装和管理 532
13.1.3 性能监控 537
13.2 九阴白骨爪——Continue Data
Ingest 541
13.2.1 Continue Data Ingest
介绍 541
13.2.2 CDI 实际操作案例 544
13.3 缩骨大法——自适应压缩 553
13.3.1 基本介绍 553
13.3.2 自适应压缩的工作方式 554
13.3.3 启用或禁用自适应压缩 554
13.3.4 评估表压缩率 555
13.3.5 经典行压缩和自适应
压缩的对比测试 557
13.3.6 归档日志压缩 566
13.4 乾坤大挪移——灾备功能
增强 567
13.4.1 基本介绍 567
13.4.2 超级异步 567
13.4.3 假脱机日志 570
13.4.4 重做延迟 570
13.4.5 多备机 572
13.4.6 监控指标 573
13.5 凌波微步——性能增强 574
13.5.1 提高了一组常用SQL
语句的查询性能 574
13.5.2 RUNSTATS支持索引
采样 575
13.5.3 优化概要文件能支持
注册表变量和非精确
匹配 575
13.5.4 统计视图改进了统计信息
以及查询优化器的统计信息
收集 576
13.5.5 分区内并行性改进 576
13.5.6 通过更有效地进行数据和
索引预取来提高查询
性能 578
13.5.7 提高了对具有组合索引的
表执行的查询的性能 579
13.5.8 提高了基于星型模式的
查询的性能 580
13.6 火眼金睛——监控增强 581
13.6.1 用于跟踪配置更改的事件
监视器 581
13.6.2 用法列表对象记录影响
表或索引的语句 583
13.6.3 使用新的STATEMENT
阈值域为特定语句创建
阈值 585
13.6.4 用于访问监视信息的新函
数和已更改的函数 588
13.6.5 工作单元事件监视器捕获
的信息中现在包括的可执行
标识列表 589
13.6.6 使用ALTER EVENT监视
器语句修改事件监视器捕获
的信息作用域 589
13.6.7 其他监控增强 590
13.7 金钟罩——安全功能增强 591
13.7.1 RCAC特点 591
13.7.2 RCAC规则 592
13.7.3 RCAC实战 592
13.8 本章小结 593
· · · · · · (
收起)