第1章 DB2 V9介绍 1
1.1 DB2不同的版本 1
1.2 DB2客户端 2
1.3 DB2扩展器(Extender) 3
1.4 DB2 Connect 4
第2章 DB2 V9新特性和重大变更 5
2.1 DB2 V9.1重大变更 5
2.1.1 简介 5
2.1.2 应用程序标识已更改 6
2.1.3 新的内置函数和SQL/XML函数 6
2.1.4 DMS表空间的新默认类型 8
2.1.5 重大改进:支持多字节字符数据处理 10
2.1.6 应用程序和例程功能支持发生了更改 13
2.1.7 对索引、主键和唯一键默认启用的逆向扫描 13
2.1.8 对数据移动实用程序的更改 14
2.1.9 不允许在同一个工作单元中对同一缓冲池进行多次更改 15
2.1.10 备份映像的新命名约定(Windows) 15
2.1.11 支持IBM JAVA软件开发包(SDK)5.X 15
2.2 DB2 V9.1表分区 16
2.2.1 简介 16
2.2.2 创建示例数据库DB2TEST1 17
2.2.3 使用自动方法创建示例分区表 22
2.2.4 使用手工方式创建示例分区表 26
2.3 DB2 V9.1表压缩 29
2.3.1 简介 29
2.3.2 创建示例数据库DB2TEST1 31
2.3.3 对新表使用数据行压缩(表压缩) 33
2.3.4 对已经存在的表使用数据行压缩(表压缩) 39
2.3.5 对表启用空值、系统默认值压缩 42
2.4 DB2 V9.1自动自调整内存 44
2.4.1 简介 44
2.4.2 自动自调整内存概述 44
2.4.3 启用自调整内存功能 45
2.4.4 禁用自动自调整内存 50
2.5 DB2 V9.1自动维护 53
2.6 DB2 V9.5工作负载管理(WORKLOAD MANAGEMENT) 53
2.7 DB2 V9.5备份还原增强 57
2.8 DB2 V9.5角色和可信上下文 57
2.9 多线程体系结构扩展 58
2.10 数据压缩增强功能 58
第3章 DB2 V9基础架构 60
3.1 基本架构 60
3.2 管理服务器 61
3.3 配置参数 63
3.3.1 注册表变量和环境变量 63
3.3.2 管理服务器配置设置 66
3.3.3 数据库管理器配置参数 66
3.3.4 数据库配置参数 70
第4章 DB2 V9实例和数据库 75
4.1 实例 75
4.1.1 如何切换实例 76
4.1.2 如何获得帮助信息 76
4.1.3 如何设置自动启动实例 79
4.1.4 如何启动、停止实例 79
4.2 数据库 80
4.2.1 自动存储器 80
4.2.2 正确设置数据库代码页 82
4.2.3 查看存在的数据库 82
4.2.4 激活和取消激活(Activation/Deactivation)数据库 84
4.2.5 如何连接数据库 86
4.2.6 如何查看当前的连接 86
4.2.7 DB2系统目录(System Catalog) 88
第5章 DB2 V9表空间和缓冲池 89
5.1 缓冲池 89
5.2 表空间 91
第6章 DB2 V9数据库对象 94
6.1 数据类型(Data Types) 94
6.1.1 日期(datetime)型数据类型 94
6.1.2 字符串(string)型数据类型 95
6.1.3 数值(numeric)型数据类型 96
6.1.4 XML的数据类型 96
6.2 专用寄存器(Special Registers) 96
6.3 空值(NULL Values) 98
6.4 自增列(Identity Columns) 99
6.5 序列对象(SEQUENCE objects) 100
6.6 表(Table) 102
6.7 索引(Index) 103
6.8 视图(View) 104
6.8.1 使用检查选项的视图(WITH CHECK OPTION) 105
6.8.2 可删除视图 106
6.8.3 可插入视图 106
6.8.4 可更新视图 107
6.8.5 只读视图 107
6.9 用户临时表(Declared Global Temporary Table,DGTT) 107
6.10 约束 109
6.10.1 非空(NOT NULL)约束 109
6.10.2 唯一(UNIQUE)约束 110
6.10.3 主键(Primary Key)约束 110
6.10.4 外键(Foreign key)约束 110
6.10.5 表检查(Check)约束 111
第7章 DB2 V9安全性 112
7.1 概述 112
7.2 DB2 V9安全机制 112
7.3 身份验证(Authentication) 113
7.4 权限(Authority) 116
7.4.1 SYSADM权限 118
7.4.2 SYSCTRL权限 119
7.4.3 SYSMAINT权限 119
7.4.4 系统监视器权限(SYSMON) 120
7.4.5 DBADM权限 120
7.4.6 LOAD权限 121
7.5 特权(privilege) 122
7.5.1 数据库特权 122
7.5.2 模式特权 123
7.5.3 表空间特权 123
7.5.4 表和视图特权 123
7.5.5 程序包特权 124
7.5.6 索引特权 124
7.5.7 序列特权 124
7.5.8 过程、函数和方法特权 124
7.5.9 对象级别授予或收回特权 124
第8章 DB2 V9客户端注册(Client Configuration) 126
8.1 数据库被远程连接和管理的必要条件 126
8.2 DB2客户端(Clients) 127
8.2.1 数据库目录(Database Catalog) 127
8.2.2 基本客户端连接示例 127
8.2.3 高级客户端连接示例 128
8.3 编目数据库 128
8.4 Attach命令 129
第9章 数据库备份恢复 130
9.1 日志模式 130
9.1.1 循环日志模式 131
9.1.2 归档日志模式 131
9.1.3 与日志相关的参数 132
9.2 备份(Backup) 134
9.3 恢复(Recovery) 135
第10章 DB2 V9联机备份还原 138
10.1 概述 138
10.2 创建示例数据库DB2TEST1 139
10.3 联机全量备份数据库DB2TEST1 143
10.4 利用联机全量备份恢复示例数据库DB2TEST1 145
10.5 修改示例数据库DB2TEST1配置参数以允许增量备份 147
10.6 在增量模式下联机备份示例数据库DB2TEST1(联机备份、增量备份、差异备份) 149
10.7 手工增量复原示例数据库DB2TEST1 152
10.8 自动增量复原示例数据库DB2TEST1 155
第11章 非增量重定向还原、增量重定向还原 160
11.1 概述 160
11.1.1 自动存储管理 160
11.1.2 表空间所使用的存储器类型 162
11.1.3 如何使用自动存储器进行非增量重定向还原 163
11.1.4 如何使用自动存储器进行增量重定向还原 163
11.2 非增量重定向还原 163
11.2.1 创建测试数据库 163
11.2.2 创建示例表空间 169
11.2.3 备份测试数据库 172
11.2.4 创建示例表 172
11.2.5 再次备份测试数据库 173
11.2.6 利用全量备份还原测试数据库 173
11.2.7 非增量重定向还原测试数据库 174
11.3 增量重定向还原 178
11.3.1 创建测试数据库 178
11.3.2 创建示例表空间 182
11.3.3 备份测试数据库 186
11.3.4 创建示例表 186
11.3.5 增量备份测试数据库 186
11.3.6 利用全量备份还原测试数据库DB2TEST2 187
11.3.7 手工增量还原测试数据库 187
11.3.8 自动增量还原测试数据库 189
11.3.9 手工增量重定向还原测试数据库 191
11.3.10 自动增量重定向还原测试数据库 195
第12章 DB2 V9并发性管理 199
12.1 数据一致性 199
12.2 事务 199
12.3 隔离级别 200
12.3.1 由于并发性产生的问题 200
12.3.2 隔离级别 200
12.4 锁机制 202
第13章 DB2 V9数据移动 205
13.1 概述 205
13.1.1 支持的文件格式 205
13.1.2 IMPORT实用程序和LOAD实用程序的区别 206
13.1.3 EXPORT、IMPORT和LOAD实用程序对文件格式的支持 207
13.1.4 创建示例表TEST2并插入数据 207
13.2 EXPORT、IMPORT实用程序 208
13.2.1 使用DEL格式导入导出 209
13.2.2 使用IXF格式导入导出 215
13.2.3 使用ASC格式导入导出 224
13.2.4 使用IMPORT实用程序如何避免日志空间已满错误 226
13.3 LOAD实用程序 227
13.3.1 简介 227
13.3.2 使用INSERT方式装入数据 228
13.3.3 使用REPLACE方式装入数据 230
13.3.4 从游标类型文件中进行装入操作 230
13.3.5 如何使用异常表 231
13.3.6 如何使用DUMPFILE选项 234
13.3.7 如何使用ROWCOUNT选项控制装入数据的数量 236
13.3.8 如何使用WARNINGCOUNT选项 237
13.3.9 如何使用NOROWWARNINGS选项使其不产生警告信息 241
13.3.10 如何使用STATISTICS选项生成统计信息 242
13.3.11 如何解除表的检查挂起状态 244
13.4 DB2MOVE 247
13.4.1 简介 247
13.4.2 使用带EXPORT、IMPORT选项的DB2MOVE 248
13.4.3 使用带COPY选项的DB2MOVE 251
13.4.4 使用SYSPROC.ADMIN_COPY_SCHEMA在同一个数据库内进行模式复制 253
第14章 Visual Explain详解 257
14.1 Visual Explain介绍 257
14.2 创建说明快照 257
14.2.1 使用CLP创建说明快照 258
14.2.2 使用控制中心创建说明快照 258
14.2.3 使用命令编辑器创建说明快照 260
14.3 使用访问方案图 261
14.3.1 显示语句的历史访问方案图 261
14.3.2 查看访问方案图的各项要素 262
14.3.3 自定义访问方案图外观 265
第15章 DB2 V9配置顾问程序 267
15.1 概述 267
15.2 配置参数 268
15.3 创建数据库期间默认启用配置顾问程序和不启用配置顾问程序的区别 268
15.4 配置顾问(AUTOCONFIGURE)命令 276
15.5 利用配置顾问程序对现有缓冲池大小、数据库配置参数和数据库管理器配置参数进行更改 278
第16章 DB2 V9 SQL介绍 282
16.1 DDL(数据定义语言) 282
16.2 DML(数据操纵语言) 284
16.2.1 SELECT语句 284
16.2.2 DELETE语句 284
16.2.3 INSERT语句 284
16.2.4 UPDATE语句 284
16.2.5 WITH表达式(公共表表达式) 285
16.2.6 CASE表达式 285
16.2.7 CAST表达式 285
16.2.8 查看一个SQL语句执行需要的时间的命令 286
16.2.9 VALUE函数 286
16.2.10 取得一个表的行数 286
16.3 DCL(数据控制语言) 286
16.3.1 GRANT语句 286
16.3.2 REVOKE语句 286
16.3.3 COMMIT语句 287
16.3.4 ROLLBACK语句 287
16.4 高级SQL简单介绍 287
16.4.1 查询间使用运算词 287
16.4.2 外连接 287
16.4.3 超级分组和移动函数 287
16.4.4 常用函数介绍 288
第17章 pureXML实现 298
17.1 简介 298
17.1.1 多样化的世界——信息的复杂性 298
17.1.2 多种信息应用方式——信息的可理解性 299
17.1.3 需求及业务的变化——信息的灵活性 299
17.2 DB2 pureXML技术创新 301
17.2.1 合适的模型,合适的任务 302
17.2.2 与其他数据库的XML的技术对比 302
17.3 pureXML的技术应用及展望 307
17.4 pureXML在税务行业的应用分析 310
17.5 基于pureXML技术的数据库表结构的扩展技术 310
17.6 DB2 PureXML技术在刑侦破案的应用 310
17.7 XQuery 310
第18章 收集统计信息和重组管理 313
18.1 收集统计信息 313
18.1.1 目录统计信息 314
18.1.2 收集特定列的分布统计信息 318
18.1.3 收集索引统计信息 319
18.1.4 收集统计信息的原则 320
18.2 重组(REORG)管理 321
18.2.1 检查表和索引是否需要重组 322
18.2.2 对需要重组的表和索引进行重组 323
第19章 DB2 V9.5联邦(Federation)功能 327
19.1 概述 327
19.2 联邦(Federation)功能增强 329
19.2.1 WebSphere Federation Server V9.1增强 329
19.2.2 WebSphere Federation Server V9.5增强 329
19.3 WebSphere Federation Server V9.5安装 331
19.4 WebSphere Replication Server V9.5安装 337
19.5 更新服务器参数配置 341
19.5.1 更改服务器参数 341
19.5.2 更改数据库管理器配置参数 342
19.5.3 更改数据库参数 342
19.6 使用联邦功能连接Oracle 343
19.6.1 检查DB2配置 343
19.6.2 创建包装器 343
19.6.3 创建服务器 345
19.6.4 创建用户映射 347
19.6.5 创建昵称 349
19.6.6 创建联合存储过程 351
19.6.7 创建远程表 353
19.7 使用联邦功能连接XML 357
19.7.1 创建包装器 358
19.7.2 创建服务器 360
19.7.3 创建昵称 360
19.8 使用联邦功能连接Excel 369
19.8.1 创建包装器 369
19.8.2 创建服务器 370
19.8.3 创建昵称 371
19.9 使用联邦功能连接DB2 375
19.9.1 创建包装器 375
19.9.2 创建服务器 377
19.9.3 创建用户映射 379
19.9.4 创建昵称 380
19.9.5 创建联合存储过程 383
19.10 使用联邦功能连接Microsoft SQL Server 385
19.10.1 建立一个系统DSN的ODBC数据源 385
19.10.2 创建包装器 390
19.10.3 创建服务器 392
19.10.4 创建用户映射 395
19.10.5 创建昵称 396
19.11 使用联邦功能连接Sybase SQL Server 398
第20章 DB2 V9.5复制(Replication)功能 400
20.1 概述 400
20.1.1 SQL复制 402
20.1.2 Q复制 405
20.2 从Microsoft SQL Server数据源到DB2目标数据库复制数据(SQL复制) 407
20.2.1 Capture控制服务器 407
20.2.2 注册昵称 413
20.2.3 Apply控制服务器 418
20.2.4 创建预订集 425
20.2.5 启动Apply 438
20.2.6 Monitor控制服务器 451
20.2.7 创建联系人 457
20.2.8 创建Monitor 459
20.2.9 停止Apply 467
20.3 从DB2数据源到Microsoft SQL Server目标数据库复制数据(SQL复制) 468
20.3.1 Capture控制服务器 468
20.3.2 注册表 475
20.3.3 Apply控制服务器 480
20.3.4 创建预订集 480
20.3.5 启动Capture 495
20.3.6 启动Apply 499
20.3.7 Monitor控制服务器 500
20.3.8 创建联系人 500
20.3.9 创建Monitor 501
20.3.10 停止Capture 501
20.3.11 停止Apply 502
20.4 从Oracle数据源到DB2目标数据库复制数据(SQL复制) 503
20.4.1 Capture控制服务器 503
20.4.2 注册昵称 508
20.4.3 Apply控制服务器 515
20.4.4 创建预订集 515
20.4.5 启动Apply 528
20.4.6 Monitor控制服务器 531
20.4.7 创建联系人 531
20.4.8 创建Monitor 531
20.4.9 停止Apply 531
20.5 从DB2数据源到Oracle目标数据库复制数据(SQL复制) 532
20.5.1 Capture控制服务器 532
20.5.2 注册表 532
20.5.3 Apply控制服务器 537
20.5.4 创建预订集 537
20.5.5 启动Capture 550
20.5.6 启动Apply 551
20.5.7 Monitor控制服务器 553
20.5.8 创建联系人 553
20.5.9 创建Monitor 553
20.5.10 停止Capture 553
20.5.11 停止Apply 553
20.6 从DB2数据源到DB2目标数据库复制数据(SQL复制) 554
20.6.1 Capture控制服务器 554
20.6.2 注册表 554
20.6.3 Apply控制服务器 559
20.6.4 创建预订集 559
20.6.5 启动Capture 570
20.6.6 启动Apply 571
20.6.7 Monitor控制服务器 572
20.6.8 创建联系人 572
20.6.9 创建Monitor 573
20.6.10 停止Capture 573
20.6.11 停止Apply 574
第21章 DB2 V9 Q复制 575
21.1 概述 575
21.2 MQ V6.0安装 575
21.2.1 安装WebSphere Eclipse Platform V3.0.1 575
21.2.2 安装WebSphere MQ V6.0 578
21.2.3 配置WebSphere MQ环境 580
21.3 创建Q复制 586
21.3.1 创建Q Capture控制表 586
21.3.2 创建Q Apply控制表 593
21.3.3 启用源数据库进行Q复制 602
21.3.4 创建复制队列映射(Creating a replication queue map) 602
21.3.5 创建Q预订(Creating a Q subscription) 605
21.3.6 启动WebSphere MQ通道和监听器 615
21.3.7 启动Q Capture 617
21.3.8 启动Q Apply 619
21.3.9 检查源表到目标表的复制 621
第22章 快照监控器 623
22.1 概述 623
22.2 权限控制 623
22.3 快照监控方式 623
22.3.1 CLP命令方式 624
22.3.2 快照管理视图方式 625
22.3.3 存储过程方式 626
22.3.4 表函数方式 627
22.3.5 API方式 629
22.3.6 对比 629
22.4 快照监控元素分析 629
22.4.1 数据库管理器 629
22.4.2 数据库 631
22.4.3 应用程序 637
22.4.4 缓冲池 643
22.4.5 表空间 645
22.4.6 表 648
22.4.7 动态SQL 649
第23章 事件监控器 651
23.1 事件监控器概述 651
23.2 创建事件监控器 652
23.2.1 表事件监控器 652
23.2.2 文件事件监控器 656
23.2.3 管道事件监控器 657
23.3 管理事件监控器 658
23.3.1 管理状态 658
23.3.2 事件监控器结果格式化 658
23.4 删除事件监控器 659
23.5 注意事项 659
23.5.1 降低事件监控器的系统开销 659
23.5.2 db2evmon命令使用 660
23.5.3 删除事件监控器 660
23.5.4 清空事件缓冲区 660
23.6 应用示范 660
第24章 运行监控器 667
24.1 运行状况监控器简介 667
24.2 运行监控指示器 667
24.2.1 运行状况指示器类型 667
24.2.2 警报处理 668
24.3 运行监控设置 669
24.3.1 查看运行状况指示器配置 669
24.3.2 配置运行状态指示器 671
24.4 运行监控的使用 671
24.4.1 使用SQL表函数获取 671
24.4.2 使用CLP获取 672
24.5 运行状态指示器列表 673
24.5.1 db2.db2_op_status——实例工作状态运行状况指示器 673
24.5.2 db2.mon_heap_util——监视器堆利用率运行状况指示器 674
24.5.3 db2.sort_privmem_util——专用排序内存利用率运行状况指示器 674
24.5.4 实例最高严重性警报状态运行状况指示器 674
24.5.5 db.sort_shrmem_util——共享排序内存利用率运行状况指示器 674
24.5.6 db.spilled_sorts——溢出排序的百分比运行状况指示器 675
24.5.7 db.max_sort_shrmem_util——长期共享排序内存利用率运行状况指示器 675
24.5.8 db.auto_storage_util——数据库自动存储器利用率运行状况指示器 676
24.5.9 db.db_op_status——数据库操作状态运行状况指示器 676
24.5.10 db.tb_reorg_req——需要重组运行状况指示器 676
24.5.11 db.tb_runstats_req——需要收集统计信息运行状况指示器 677
24.5.12 db.db_backup_req——需要数据库备份运行状况指示器 677
24.5.13 db.hadr_op_status——HADR操作状态运行状况指示器 677
24.5.14 db.hadr_delay——HADR日志延迟运行状况指示器 678
24.5.15 db.log_util——日志利用率运行状况指示器 678
24.5.16 db.log_fs_util——日志文件系统利用率运行状况指示器 678
24.5.17 db.deadlock_rate——死锁率运行状况指示器 678
24.5.18 db.locklist_util——锁定列表利用率运行状况指示器 679
24.5.19 db.lock_escal_rate——锁定升级率运行状况指示器 679
24.5.20 db.apps_waiting_locks——等待锁定的应用程序所占的百分比运行状况指示器 680
24.5.21 db.catcache_hitratio——目录高速缓存命中率运行状况指示器 680
24.5.22 db.pkgcache_hitratio——程序包高速缓存命中率运行状况指示器 680
24.5.23 db.shrworkspace_hitratio——共享工作空间命中率运行状况指示器 681
24.5.24 db.db_heap_util——数据库堆利用率运行状况指示器 681
24.5.25 db.fed_nicknames_op_status——昵称状态运行状况指示器 681
24.5.26 db.fed_servers_op_status——数据源服务器状态运行状况指示器 681
24.5.27 数据库最高严重性警报状态运行状况指示器 682
24.5.28 ts.ts_auto_resize_status——表空间自动调整大小状态运行状况指示器 682
24.5.29 ts.ts_util_auto_resize——自动调整大小表空间利用率运行状况指示器 682
24.5.30 ts.ts_util——表空间利用率运行状况指示器 683
24.5.31 ts.ts_op_status——表空间操作状态运行状况指示器 683
24.5.32 tsc.tscont_util——表空间容器利用率运行状况指示器 683
24.5.33 tsc.tscont_op_status——表空间容器操作状态运行状况指示器 684
附录A 各章参考资料 685
附录B 参考资料 696