描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302481195
本书适合DB2初学者、DB2开发人员、准备参加DB2认证考试的读者以及DB2数据库管理人员学习和阅读。
第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变量介绍 43
2.1.6
删除实例 44
2.1.7
配置实例 45
第3章 创建数据库和表空间 47
3.1 创建数据库 47
3.1.1
DB2数据库存储模型 49
3.1.2
表空间管理类型 51
3.1.3
创建数据库 54
3.1.4
数据库目录 63
3.2 设计表空间 66
3.2.1
创建表空间 66
3.2.2
维护表空间 69
3.2.3
表空间设计注意事项 76
3.2.4
prefechsize大小选择 81
3.2.5
文件系统(CIO/DIO)和
裸设备 82
3.2.6
设置OVERHEAD和
TRANSFERRATE 85
3.2.7
优化RAID设备上表空间的
性能 86
3.2.8
合理设置系统临时表空间 88
3.3 缓冲池 89
3.3.1
缓冲池的使用方法 89
3.3.2
缓冲池和表空间之间的关系 90
3.3.3
维护缓冲池 91
3.3.4
缓冲池的设计原则 93
3.4 多温度存储器 96
3.4.1
存储器组 96
3.4.2
表空间与存储器组 100
3.5 本章小结 101
第4章 访问数据库 103
4.1 访问DB2 103
4.2
DB2 CLP处理程序 104
4.2.1
DB2 CLP简介 104
4.2.2
DB2 CLP设计 104
4.2.3
DB2 CLP命令选项 106
4.2.4
设置DB2_CLPPROMPT
以定制DB2 CLP 110
4.3 配置DB2服务器的TCP/IP
通信 114
4.3.1
在服务器上更新services
文件 115
4.3.2
在服务器上更新数据库
管理器配置文件 116
4.3.3
设置DB2服务器的通信
协议 117
4.3.4
查看服务器通信端口的
状态 117
4.4 配置客户机至服务器通信
117
4.4.1
客户机至服务器通信概述 117
4.4.2
深入了解DB2节点目录、
数据库目录 118
4.4.3
使用CLP配置客户机到
服务器通信的案例 124
4.5 实际生产中连接数据库的
各种方式 128
4.6 案例:数据库连接问题诊断
131
4.7 本章小结 134
第5章 创建数据库对象 135
5.1 模式 135
5.1.1
模式的概念 135
5.1.2
系统模式 137
5.1.3
设置和获得当前模式 137
5.1.4
模式和用户的区别 138
5.2 表设计 139
5.2.1
选择合适的数据类型 139
5.2.2
选择合适的约束类型 142
5.2.3
使用not null with default 145
5.2.4
生成列及应用案例 145
5.2.5
自动编号和标识列应用
案例 146
5.2.6
使用not logged initially
特性 147
5.2.7
使用append on特性 148
5.2.8
数据、索引和大对象分开
存放 149
5.2.9
设置pctfree 149
5.2.10
表的locksize 150
5.2.11
表的volatile特性 150
5.2.12
表维护相关命令 151
5.2.13
表设计高级选项 155
5.3 索引设计 160
5.3.1
索引的优点 160
5.3.2
索引类型 161
5.3.3
索引结构 164
5.3.4
理解索引的访问机制 167
5.3.5
创建集群索引 170
5.3.6
创建双向索引 171
5.3.7
完全索引访问
(index access only) 172
5.3.8
创建索引示例 173
5.3.9
索引总结 179
5.4 使用序列提高性能 181
5.4.1
应用程序性能和序列 181
5.4.2
序列的设计原则 182
5.4.3
维护序列 183
5.4.4
比较序列与标识列 187
5.5 视图 189
5.5.1
视图的类型 189
5.5.2
创建with check option
视图 193
5.5.3
维护视图 194
5.6 表表达式 195
5.6.1
嵌套的表表达式 195
5.6.2
公用表表达式 195
5.7 触发器设计 197
5.7.1
触发器的类型 197
5.7.2
触发器创建示例 199
5.7.3
触发器设计总结 201
5.8 例程 202
5.9 本章小结 203
第6章 数据移动 205
6.1 数据移动格式 205
6.1.1
定界ASCII文件格式 206
6.1.2
非定界ASCII文件格式 206
6.1.3
PC/IXF文件格式 207
6.1.4
工作表文件格式 207
6.1.5
游标 207
6.2
EXPORT 208
6.2.1
EXPORT概述 208
6.2.2
导出数据 208
6.2.3
导出数据示例 211
6.3
IMPORT 212
6.3.1
IMPORT概述 212
6.3.2
导入数据 212
6.3.3
导入示例 217
6.4
LOAD 219
6.4.1
LOAD概述 219
6.4.2
装入数据 220
6.4.3
装入示例 225
6.4.4
在线LOAD 229
6.4.5
监控LOAD进度 232
6.4.6
LOAD期间和之后的表空间
状态 233
6.4.7
使用CURSOR文件类型
移动数据 236
6.4.8
提高LOAD性能 238
6.4.9
LOAD失败恢复 242
6.4.10
LOAD和IMPORT的
比较 245
6.5 数据移动的性能问题 246
6.6
db2move和db2look 248
6.6.1
数据库移动工具——
db2move 248
6.6.2
DB2 DDL提取工具
——db2look 250
6.6.3
利用db2move和db2look
移动数据的案例 251
6.6.4
带COPY操作的db2move
实用程序 254
6.7 本章小结 259
第7章 数据库备份与恢复 261
7.1 恢复的概念 261
7.1.1
崩溃恢复(Crash Recovery) 265
7.1.2
灾难恢复(Disaster
Recovery) 266
7.1.3
版本恢复(Version Restore) 266
7.1.4
前滚恢复(RollForward
Recovery) 267
7.2
DB2日志 269
7.2.1
日志文件的使用 270
7.2.2
日志类型 272
7.2.3
日志相关配置参数 275
7.2.4
数据库日志总结 276
7.2.5
DB2日志的建议设置 278
7.3 数据库和表空间备份 280
7.3.1
数据库备份 280
7.3.2
表空间备份 282
7.3.3
增量备份 282
7.3.4
检查备份完整性——
db2ckbkp 283
7.4 数据库和表空间恢复 285
7.4.1
数据库恢复 285
7.4.2
表空间恢复 288
7.4.3
增量恢复 289
7.4.4
增量恢复检查—— db2ckrst 290
7.4.5
重定向恢复 291
7.4.6
恢复已删除的表 294
7.5 数据库和表空间前滚 298
7.5.1
数据库前滚 298
7.5.2
表空间前滚 299
7.6
RECOVER实用程序 302
7.7 恢复历史文件 306
7.8 数据库重建 309
7.8.1
数据库重建的概念 309
7.8.2
使用表空间备份重建可
恢复数据库 309
7.8.3
只使用部分表空间备份
重建可恢复数据库 312
7.8.4
使用包含日志文件的在线
备份重建数据库 314
7.8.5
使用增量备份映像重建
可恢复数据库 314
7.8.6
使用重定向选项重建
可恢复数据库 315
7.8.7
重建不可恢复数据库 315
7.8.8
数据库重建的限制 316
7.9 监控备份、复原和恢复进度
316
7.10
备份、恢复和复原期间的
表空间状态 318
7.11
优化备份、复原和恢复
性能 318
7.12
备份恢复实践 320
第8章 SQL基础知识 323
8.1 简单查询入门 323
8.1.1
SELECT和FROM 324
8.1.2
WHERE 324
8.1.3
ORDER BY 324
8.1.4
GROUP BY和HAVING 325
8.2 搜索条件 326
8.2.1
谓词种类 326
8.2.2
基本谓词 326
8.2.3
量化谓词 327
8.2.4
BETWEEN、EXISTS和IN
谓词 328
8.2.5
LIKE谓词 328
8.2.6
NULL谓词 329
8.3 数据操作语言 329
8.3.1
INSERT 329
8.3.2
DELETE 330
8.3.3
UPDATE 331
8.3.4
MERGE 332
8.4 多表查询 334
8.4.1
JOIN连接 334
8.4.2
集合运算 335
8.5 高性能的SQL语句 337
8.5.1
高效SQL的准则 337
8.5.2
提高插入性能的准则 339
8.5.3
复杂查询的准则 340
8.5.4
索引的注意事项 341
8.6 本章小结 342
第9章 DB2基本监控方法 343
9.1 监控工具概述 343
9.2 快照监视器 345
9.3 利用表函数监控 350
9.4 性能管理视图及案例 352
9.5 快照监视器案例 358
9.5.1
监控案例1——动态SQL
语句 358
9.5.2
监控案例2——通过表函数
监控 361
9.5.3
编写快照监控脚本 362
9.5.4
db2pd及监控案例 363
9.5.5
事件监视器及监控案例 370
9.5.6
db2mtrk及监控案例 375
9.6 本章小结 377
第10章 运行数据库必须考虑的数据库
设置 379
10.1
数据库配置参数概述 379
10.2
通信设置 381
10.3
内存有关的设置 383
10.4
锁有关的设置 389
10.5
日志相关的配置 394
10.6
自动维护相关的配置 399
10.7
监控相关的配置 400
10.8
安全相关的设置 402
10.9
供参考的DB2上线前设置 402
10.10
本章小结 405
第11章 DBA日常运行维护 407
11.1
统计信息更新 407
11.1.1
统计信息的重要性 408
11.1.2
减小RUNSTATS对系统
性能影响的策略 415
11.1.3
DB2自动统计信息收集 416
11.2
统计信息更新案例分析 418
11.2.1
RUNSTATS更新示例 418
11.2.2
收集分布式统计信息 419
11.2.3
包含频率和分位数统计
信息的 RUNSTATS 420
11.2.4
包含列组统计信息的
RUNSTATS 422
11.2.5
包含LIKE STATISTICS
的RUNSTATS 422
11.2.6
包含统计信息配置文件
的RUNSTATS 422
11.2.7
带有抽样的RUNSTATS 423
11.2.8
带有系统页级抽样
的RUNSTATS 424
11.2.9
收集统计信息的其他可供
选择的方法 424
11.2.10
RUNSTATS总结 426
11.3
碎片整理 426
11.3.1
表重组(REORG) 426
11.3.2
索引重组 434
11.3.3
重组表和索引的成本 440
11.3.4
合理设计以减少碎片
生成 441
11.3.5
启用表和索引的自动
重组 442
11.4
碎片整理案例分析 443
11.4.1
执行表、索引检查是否
需要做REORG 443
11.4.2
表和索引碎片整理 445
11.5
案例:生成碎片检查、统计
信息更新、碎片整理和
REBIND脚本 445
11.6
重新绑定程序包 446
11.7
DB2健康检查 447
11.7.1
查看是否有僵尸实例
进程 448
11.7.2
检查数据库是否一致 448
11.7.3
查找诊断日志以判断是否
有异常 449
11.7.4
检查数据库备份完整性、
日志归档是否正常 449
11.7.5
维护实例目录和数据库
目录的权限 451
11.7.6
查看磁盘空间 451
11.8
数据库监控 453
11.8.1
监控工具 453
11.8.2
计算数据库的大小 454
11.8.3
监控表的物理大小 455
11.8.4
监控单个索引的大小 455
11.8.5
监控数据库实用工具的
进度 455
11.8.6
监控数据库crash recovery
进度 455
11.8.7
监控catalog cache
命中率 455
11.8.8
监控package cache
命中率 455
11.8.9
监控排序溢出率 456
11.8.10
监控正在REORG的表 456
11.8.11
监控缓冲池命中率 456
11.8.12
监控高成本应用程序 456
11.8.13
监控正在执行的时间
长的SQL语句 456
11.8.14
监控SQL准备和预编译
时间长的SQL语句 457
11.8.15
监控执行次数多的
SQL语句 457
11.8.16
监控执行时间长的
SQL语句 457
11.8.17
监控排序次数多的
SQL语句 457
11.8.18
监控引起锁等待的SQL
语句 457
11.8.19
查找新创建的对象 458
11.8.20
查找无效对象 458
11.8.21
检查表空间状态 458
11.8.22
检查表状态 459
11.8.23
查找需要REORG的表和
索引 459
11.8.24
查找需要RUNSTATS的
表和索引 461
11.8.25
定期清理db2diag.log
文件 461
11.8.26
查找异常增长的表空间
和表 462
11.8.27
数据库维护总结 462
第12章 数据库常用工具 465
12.1
解释工具 465
12.1.1
Visual Explain
(可视化解释) 465
12.1.2
db2expln 473
12.1.3
db2exfmt 476
12.1.4
各种解释工具的比较 477
12.1.5
如何从解释信息中获取
有价值的建议 478
12.2
索引设计工具(db2advis) 479
12.2.1
DB2 Design
Advisor(db2advis) 479
12.2.2
DB2 Design Advisor
(db2advis)案例讲解 480
12.3
基准测试工具db2batch 483
12.3.1
db2batch 483
12.3.2
db2batch基准程序测试
分析示例 485
12.4
数据一致性检查工具 486
12.4.1
db2dart及案例 486
12.4.2
inspect及案例 487
12.5
db2look 488
12.5.1
db2look概述 488
12.5.2
利用db2look构建模拟
测试数据库 490
12.6
其他工具 492
12.6.1
db2bfd 492
12.6.2
db2_kill和db2nkill 493
12.6.3
db2tbst 493
12.7
本章小结 494
第13章 DB2 V11新特性 495
13.1
分区数据库(DPF)支持BLU 495
13.1.1
DB2 with BLU Acceleration
基本介绍 495
13.1.2
BLU的用法 497
13.1.3
DB2 V11支持在MPP中
使用BLU 498
13.2
BLU增强 499
13.2.1
性能增强 499
13.2.2
兼容性增强 499
13.3
安全性功能增强 500
13.3.1
行和列访问控制(RCAC)
支持按列组织的表 500
13.3.2
企业加密密钥管理 501
13.4
pureScale功能增强 503
13.5
可管理性和性能增强 504
13.5.1
可管理性增强功能 504
13.5.2
简易大版本升级 505
13.5.3
联合增强功能 506
13.5.4
高可用性、备份、日志记录、弹性和恢复增强功能 506
13.5.5
性能增强 507
13.6
备份增强 508
13.6.1
基本介绍 508
13.6.2
备份比较 508
13.6.3
恢复场景 509
自1999年左右我开始从事数据库有关的技术工作到现在已近20年时间,此期间信息科技飞速发展,从无纸化办公和数据大集中到移动互联和大数据、人工智能、云计算等信息技术改变了生活,并颠覆了传统商业模式。信息科技的发展离不开数据处理技术的进步,在这一轮信息化浪潮中,数据处理技术也发生了翻天覆地的变化,对企业经营发展和对外服务的意义越来越重要。一方面,传统企业级数据库的能力,在原有的道路和方向上不断地持续提升演进,以满足企业市场不断迸发的各类需求。另一方面,互联网场景孕育的各种新兴的数据处理技术亦不断涌现,例如NewSQL、NoSQL、Hadoop等大数据处理技术,这些技术成为传统数据库产品的必然补充,同时也对传统数据库产品产生了一定的冲击。但是以我长期从事企业数据处理相关工作的经验看,在企业级市场尤其是金融企业市场里面,传统数据库产品的能力依然是解决企业主要业务需求的不二选择。因此,传统数据库技术的研究和应用仍然是信息科技工作的重点。
近年来传统数据库产品在不断改进升级,以支持更快的处理能力和更高的可用性,满足不同场景下的用户需求。DB2作为一款主流数据库产品,在这些方面也都进步明显,例如Purescale集群技术、跨数据中心的GDPC技术、列存储的BLU技术等创新功能就表现不俗,满足了特定业务场景需求,给企业带来了很大的价值提升。特别是GDPC技术,帮助企业搭建关键业务系统同城对等全双活生产架构,为终用户提供高等级容灾的连续服务,对企业对外服务的提升意义非凡,也使数据库从业者们领略了DB2产品创新的精华。
基于DB2产品的演进以及近些年的思考和实践,我重新梳理了之前编写的第2版的3本DB2系列技术图书,对其进行了大篇幅的修改和重写,力图对近些年实践的精华和DB2产品的新趋势进行总结。在此奉献给各位数据库从业的同仁,在技术的路上共勉。
由于本人水平有限,时间有限,书中不免有这样或者那样的错误,希望广大读者朋友不吝赐教指正!
后,感谢我的家人和同事在本书重写过程中的帮助,谢谢你们!
牛新庄
评论
还没有评论。