标题：循序渐进DB2
内容简介
DB2数据库是IBM公司关系型数据库核心产品，在国内以及全球有着广泛的应用。针对DB2初学者，本书循序渐进地把DB2所涉及的众多概念介绍给大家。客户端连通性、实例、数据库、表空间和缓冲池、数据移动、备份恢复、故障诊断、锁与并发，以及数据库安全都是本书关注的重点。在介绍这些DB2对象和概念的同时，作者尽可能从DBA日常工作的角度探究DB2数据库常规维护工作。本书同时还就表、索引、序列、触发器等数据库对象从应用设计的角度进行了介绍。
本书适合DB2的初学者、DB2开发人员、准备参加DB2认证考试的读者以及DB2数据库管理人员学习和阅读。
编辑推荐
本书主要特色：◆ 本书有丰富的DB2运行维护实践案例，读者可以通过这些案例加深对DB2认识和理解。
◆ 面对众多DB2的特点、特性，作者精心选择了与DBA日常工作关系最密切的部分，由易入难逐步讲解。
◆ 本书中包含了大量的提示点等，这些都是作者对DB2维护工作总结后得到的经验。
◆ 本书总结了DB2常见问题总结和解决方法，对DBA的日常维护非常有参考价值。
读者对象：数据库管理人员、数据库开发人员、系统维护人员、数据库初学者及其他数据库从业人员，也可以作为各大中专院校相关专业师生的参考用书和相培训机构的培训教材。
作者简介
牛新庄博士（数据库维护、优化和架构专家）拥有DB2 V5、V6、V7、V8和V9全部认证，同时他还拥有OCP、AIX、HP-UX、MQ、TSM和WebSphere等20多项国际认证。 牛新庄博士是IBM官方资深培训讲师(培训DB2、AIX、MQ、WebSphere、TSM和CICS)，是中信银行、山东农信、青岛海尔等公司的资深技术顾问，曾经帮助工农商建招交六大行、联想集团、青岛海尔、云南红塔、江苏电力公司等国内很多企业做过问题诊断、性能调优和技术支持，具有丰富的理论和实践结合经验。2004年和2005年分别在上海北京成立咨询顾问公司，2008年以年薪217万被中国建设银行总行外聘为资深技术专家。 牛新庄博士拥有的奖项有：国内数据库领域最高荣誉的“2006年中国首届杰出数据库工程师”奖，首届IBM杰出软件专家奖，“2006年IT 168技术卓越”奖。
图书目录
第1章 DB2安装配置1.1 DB2数据库概述
1.1.1 DB2发展历史 
1.1.2 DB2版本和平台支持 
1.1.3 DB2产品组件和功能 
1.2 DB2数据库安装配置 
1.2.1 DB2在Windows上的安装 
1.2.2 DB2在Linux/UNIX上的安装
1.3 DB2数据库体系结构 
第2章 创建实例和管理服务器2.1 实例 
2.1.1 实例概念 
2.1.2 创建实例
2.1.3 实例目录 
2.1.4 实例相关命令 
2.1.5 DB2INSTANCE变量介绍 
2.1.6 删除实例 
2.1.7 配置实例
2.2 管理服务器
2.2.1 管理服务器概念
2.2.2 创建管理服务器 
2.2.3 管理服务器相关命令
2.2.4 删除DB2管理服务器 
2.2.5 配置管理服务器 
第3章 创建数据库和表空间3.1 创建数据库
3.1.1 DB2数据库存储模型 
3.1.2 表空间管理类型 
3.1.3 创建数据库 
3.1.4 数据库目录 
3.2 表空间设计
3.2.1 创建表空间
3.2.2 表空间维护 
3.2.3 表空间设计注意事项 
3.2.4 prefechsize大小选择 
3.2.5 文件系统（CIO/DIO）和裸设备 
3.2.6 OVERHEAD和TRANSFERRATE设置 
3.2.7 优化RAID设备上表空间性能
3.2.8 合理设置系统临时表空间 
3.3 缓冲池 
3.3.1 缓冲池的使用方法
3.3.2 缓冲池和表空间之间关系
3.3.3 缓冲池维护 
3.3.4 缓冲池设计原则 
3.4 本章小结
第4章 访问数据库4.1 访问DB2 
4.2 DB2图形化操作环境 
4.3 DB2 CLP处理程序 
4.3.1 DB2 CLP简介 
4.3.2 DB2 CLP设计 
4.3.3 DB2 CLP命令选项
4.3.4 设置DB2_CLPPROMPT定制DB2 CLP 
4.4 配置DB2服务器的TCP/IP通信 
4.4.1 在服务器上更新services文件 
4.4.2 在服务器上更新数据库管理器配置文件 
4.4.3 设置DB2服务器的通信协议
4.4.4 查看服务器通信端口状态 
4.4.5 使用控制中心配置DB2服务器通信 
4.5 配置客户机至服务器通信 
4.5.1 客户机至服务器通信概述 
4.5.2 使用控制中心配置客户端通信
4.5.3 使用CA配置客户机到服务器通信 
4.5.4 深入了解DB2节点目录、数据库目录
4.5.5 使用CLP配置客户机到服务器通信案例 
4.6 本章小结
第5章 创建数据库对象5.1 模式 
5.1.1 模式概念 
5.1.2 系统模式
5.1.3 设置和获得当前模式 
5.1.4 模式和用户的区别
5.2 表设计考虑 
5.2.1 选择合适的数据类型 
5.2.2 选择合适的约束类型 
5.2.3 使用not null with default 
5.2.4 生成列及应用案例
5.2.5 自动编号和标识列应用案例
5.2.6 使用not logged initially特性 
5.2.7 使用append on特性 
5.2.8 数据、索引和大对象分开存放 
5.2.9 设置pctfree 
5.2.10 表的locksize 
5.2.11 表的volatile特性
5.2.12 创建带XML列的表
5.2.13 表维护相关命令 
5.2.14 表设计高级选项
5.3 索引设计 
5.3.1 索引优点 
5.3.2 索引类型
5.3.3 索引结构
5.3.4 理解索引访问机制
5.3.5 创建集群索引 
5.3.6 创建双向索引 
5.3.7 完全索引访问（index access only） 
5.3.8 创建索引示例 
5.3.9 索引总结
5.4 使用序列提高性能 
5.4.1 应用程序性能和序列
5.4.2 设计序列原则 
5.4.3 序列维护 
5.4.4 比较序列与标识列
5.5 视图 
5.5.1 视图类型 
5.5.2 创建with check option视图 
5.5.3 视图维护 
5.6 表表达式
5.6.1 嵌套的表表达式
5.6.2 公用表表达式 
5.7 触发器设计
5.7.1 触发器的类型 
5.7.2 创建触发器示例 
5.7.3 触发器设计总结 
5.8 本章小结
第6章 数据移动6.1 数据移动格式 
6.1.1 定界ASCII文件格式
6.1.2 非定界ASCII文件格式 
6.1.3 PC/IXF文件格式 
6.1.4 工作表文件格式 
6.1.5 游标 
6.2 EXPORT 
6.2.1 EXPORT概述
6.2.2 导出数据
6.2.3 导出数据示例 
6.3 IMPORT 
6.3.1 IMPORT概述 
6.3.2 导入数据
6.3.3 导入数据示例 
6.4 LOAD 
6.4.1 LOAD概述
6.4.2 装入数据
6.4.3 装入示例
6.4.4 在线LOAD
6.4.5 监控LOAD进度
6.4.6 LOAD期间和之后的表空间状态
6.4.7 使用CURSOR文件类型来移动数据 
6.4.8 提高LOAD性能 
6.4.9 LOAD失败恢复 
6.4.10 LOAD和IMPORT比较
6.5 数据移动性能问题
6.6 DB2MOVE和DB2LOOK 
6.6.1 数据库移动工具——DB2MOVE 
6.6.2 DB2 DDL提取工具（DB2LOOK） 
6.6.3 利用DB2MOVE和DB2LOOK移动数据案例 
6.6.4 带COPY操作的DB2MOVE实用程序 
6.7 本章小结 
第7章 数据库备份与恢复7.1 恢复概念 
7.1.1 崩溃恢复 
7.1.2 灾难恢复
7.1.3 版本恢复
7.1.4 前滚恢复 
7.2 DB2日志 
7.2.1 日志文件的使用
7.2.2 日志类型
7.2.3 日志相关配置参数 
7.2.4 数据库日志总结 
7.3 数据库和表空间备份 
7.3.1 数据库备份 
7.3.2 表空间备份 
7.3.3 增量备份 
7.3.4 检查备份完整性——db2ckbkp 
7.4 数据库和表空间恢复 
7.4.1 数据库恢复 
7.4.2 表空间恢复 
7.4.3 增量恢复 
7.4.4 增量恢复检查-- db2ckrst
7.4.5 重定向恢复 
7.4.6 恢复已drop的表
7.5 数据库和表空间前滚
7.5.1 数据库前滚 
7.5.2 表空间前滚 
7.6 RECOVER实用程序
7.7 恢复历史文件 
7.8 数据库重建 
7.8.1 数据库重建概念 
7.8.2 使用表空间备份重建可恢复数据库 
7.8.3 只使用部分表空间备份重建可恢复数据库 
7.8.4 使用包含日志文件的在线备份重建数据库 
7.8.5 使用增量备份镜像重建可恢复数据库 
7.8.6 使用重定向选项重建可恢复数据库
7.8.7 重建不可恢复数据库 
7.8.8 数据库重建的限制
7.9 监控备份、复原和恢复进度
7.10 备份、恢复和复原期间表空间状态
7.11 优化备份、复原和恢复性能
7.12 备份恢复最佳实践
第8章 DB2故障诊断8.1 DB2故障诊断机制 
8.1.1 故障诊断相关文件
8.1.2 收集故障诊断信息
8.1.3 设置故障诊断级别
8.2 深入讲解故障诊断文件 
8.2.1 解释管理通知日志文件条目 
8.2.2 解释诊断日志文件条目 
8.3 故障诊断工具 
8.3.1 使用db2support收集环境信息
8.3.2 db2ls和db2level 
8.3.3 使用db2diag分析db2diag.log文件 
8.3.4 db2pd 
8.3.5 DB2内部返回码 
8.4 故障诊断分析流程
8.4.1 故障诊断流程 
8.4.2 结合系统事件判断
8.4.3 结合系统运行状况诊断
8.5 本章小结 
第9章 DB2性能监控9.1 监控工具概述 
9.2 快照监视器
9.2.1 快照监视器概述 
9.2.2 利用表函数监控
9.2.3 性能管理视图 
9.3 快照监视器案例 
9.3.1 监控案例1-动态SQL语句
9.3.2 监控案例2-通过表函数监控 
9.3.3 编写快照监控脚本
9.4 db2pd及监控案例 
9.5 事件监视器及监控案例 
9.6 db2mtrk及监控案例 
9.7 活动监视器 
9.8 DB2性能监控总结 
第10章 锁和并发10.1 锁的概念 
10.1.1 数据一致性 
10.1.2 事务和事务边界 
10.1.3 锁的概念 
10.2 锁的属性、策略及模式 
10.2.1 锁的属性 
10.2.2 加锁策略 
10.2.3 锁的模式 
10.2.4 如何获取锁 
10.2.5 锁的兼容性 
10.3 隔离级别（Isolation Levels） 
10.3.1 可重复读（RR-Repeatable Read） 
10.3.2 读稳定性（RS-Read Stability）
10.3.3 游标稳定性（CS-Cursor Stability） 
10.3.4 未提交读（UR-Uncommitted Read） 
10.3.5 隔离级别的摘要 
10.4 锁转换、锁等待、锁升级和死锁
10.4.1 锁转换及调整案例 
10.4.2 锁升级及调整案例 
10.4.3 锁等待及调整案例 
10.4.4 死锁及调整案例 
10.5 锁相关的性能问题总结
10.6 锁与应用程序设计
10.7 锁监控工具 
10.8 最大化并发性 
10.8.1 选择合适的隔离级别
10.8.2 尽量避免锁等待、锁升级和死锁 
10.8.3 设置合理的注册变量 
10.9 锁和并发总结 
第11章 数据库运行维护11.1 统计信息更新 
11.1.1 统计信息的重要性 
11.1.2 使用RUNSTATS 收集统计信息的原则
11.1.3 减小RUNSTATS对系统性能影响的策略 
11.1.4 DB2自动统计信息收集 
11.2 Runstats更新举例 
11.2.1 RUNSTATS更新示例 
11.2.2 收集分布式统计信息 
11.2.3 包含频率和分位数统计信息的RUNSTATS 
11.2.4 包含列组统计信息的RUNSTATS 
11.2.5 包含LIKE STATISTICS的RUNSTATS 
11.2.6 包含统计信息配置文件的RUNSTATS
11.2.7 带有抽样的RUNSTATS 
11.2.8 带有系统页级抽样的RUNSTATS 
11.2.9 收集统计信息的其他可供选择的方法 
11.2.10 RUNSTATS总结
11.3 表和索引碎片整理 
11.3.1 表重组（REORG） 
11.3.2 索引重组 
11.3.3 确定何时重组表和索引 
11.3.4 重组表和索引的成本 
11.3.5 合理设计以减少碎片生成 
11.3.6 启用表和索引的自动重组 
11.4 碎片整理案例 
11.4.1 执行表、索引检查是否需要做REORG
11.4.2 表和索引碎片整理 
11.5 案例：生成碎片检查、统计信息更新、碎片整理和REBIND脚本 
11.6 重新绑定程序包 
11.7 数据库运行维护总结 
第12章 数据库常用工具12.1 解释工具 
12.1.1 Visual Explain（可视化解释）
12.1.2 db2expln 
12.1.3 db2exfmt 
12.1.4 各种解释工具比较 
12.1.5 如何从解释信息中获取有价值的建议 
12.2 索引设计工具（db2advis） 
12.2.1 DB2 Design Advisor（db2advis） 
12.2.2 DB2 Design Advisor（db2advis）案例讲解 
12.3 基准测试工具db2batch 
12.3.1 db2batch 
12.3.2 db2batch基准程序测试分析示例 
12.4 数据一致性检查工具 
12.4.1 db2dart及案例 
12.4.2 inspect及案例 
12.5 db2look 
12.5.1 db2look概述 
12.5.2 利用db2look构建模拟测试数据库
12.6 其他工具 
12.6.1 db2bfd 
12.6.2 db2_kill和db2nkill 
12.6.3 db2tbst 
12.7 本章小结 
第13章 数据库安全13.1 DB2安全机制概述 
13.2 认证（authentication） 
13.2.1 什么时候进行DB2身份认证
13.2.2 DB2身份认证类型 
13.3 权限（authorization）
13.3.1 权限层次 
13.3.2 授予/撤销实例级权限 
13.3.3 授予/撤销数据库级权限
13.4 特权 
13.4.1 特权层次结构 
13.4.2 授予特权 
13.4.3 撤销特权 
13.4.4 显式特权/隐式特权/间接特权 
13.4.5 静态和动态SQL特权考虑因素 
13.4.6 维护特权/权限 
13.5 某银行安全规划案例 
13.6 执行安全审计（db2audit） 
13.7 基于标签的访问控制（LBAC）及案例
13.8 本章小结 
第14章 DBA日常维护14.1 DB2健康检查 
14.1.1 查看是否有僵尸实例进程 
14.1.2 inspect数据库是否一致 
14.1.3 查找诊断日志判断是否有异常 
14.1.4 检查数据库备份完整性、日志归档是否正常
14.1.5 维护实例目录和数据库目录权限 
14.1.6 查看磁盘空间 
14.2 数据库监控 
14.2.1 监控工具 
14.2.2 监控缓冲池命中率 
14.2.3 监控执行成本最高的SQL语句 
14.2.4 监控运行最长的SQL语句 
14.2.5 监控SQL准备和预编译时间最长的SQL语句
14.2.6 监控执行次数最多的SQL语句 
14.2.7 监控排序次数最多的SQL语句 
14.2.8 监控引起锁等待的SQL语句
14.3 日常维护 
14.3.1 查找创建的新对象
14.3.2 查找无效对象 
14.3.3 检查表空间状态 
14.3.4 检查表状态 
14.3.5 查找需要REORG的表和索引 
14.3.6 查找需要RUNSTATS的表和索引 
14.3.7 定期清理db2diag.log文件 
14.3.8 查找异常增长的表空间和表 
第15章 DB2常见问题总结15.1 实例常见问题和诊断案例 
15.1.1 实例无法启动问题总结 
15.1.2 实例无法正常终止 
15.1.3 实例启动报SQL1042C错误 
15.1.4 实例目录误删除 
15.1.5 实例崩溃问题 
15.2 数据库常见问题总结 
15.2.1 数据库日志空间满-- SQL0964C错误 
15.2.2 数据库时区和时间 
15.2.3 中文乱码和代码页转换 
15.2.4 通信错误-- SQL30081N 
15.2.5 数据库备份、前滚暂挂 
15.2.6 数据库活动日志删除 
15.2.7 数据库损坏（数据页、索引页）——SQL1043C 
15.2.8 索引重新构建问题 
15.2.9 DB2实用程序不可用 
15.2.10 快速清空表数据 
15.2.11 表和索引统计信息不一致 
15.3 表空间状态 
15.3.1 Backup Pending 
15.3.2 脱机 
15.3.3 Quiesced Exclusive|Share|Update 605
15.3.4 Restore Pending和Storage Must be Defined 
15.3.5 Roll Forward Pending 
15.3.6 表空间状态总结 
15.4 LOAD期间表状态总结 
15.4.1 Check Pending 
15.4.2 Load Pending 
15.4.3 Load in Progress 
15.4.4 Not Load Restartable 
15.4.5 Read Access Only 
15.4.6 Unavailable 
15.5 锁相关问题 
15.5.1 锁升级 
15.5.2 锁等待问题解决流程 
15.5.3 死锁 
15.6 内存常见问题 
15.6.1 bufferpool设置过大数据库无法启动 
15.6.2 排序溢出 
15.6.3 锁内存不足 
15.7 备份恢复常见问题 
15.8 数据移动常见问题总结 
15.8.1 标识列 
15.8.2 生成列 
15.8.3 大对象 
15.8.4 空值处理 
15.8.5 定界符注意问题
15.8.6 PC/IXF注意问题
15.8.7 代码页不同注意事项 
15.8.8 日期格式 
15.8.9 XML问题 
15.9 安全常见问题总结 
15.9.1 从PUBLIC撤销隐式的权限和特权 
15.9.2 保护系统编目视图 
15.9.3 创建实例用户显式指定组 
15.9.4 为SYSxxx_GROUP参数使用显式值 
15.9.5 跟踪隐式的特权 
15.9.6 不授予不必要的特权 
15.9.7 使用加密的AUTHENTICATION模式
15.9.8 使用独立ID创建和拥有对象 
15.9.9 使用视图控制数据访问 
15.9.10 使用存储过程控制数据访问
15.9.11 使用LBAC控制数据访问 
15.9.12 对重要敏感数据加密 
15.10 SQL0805和SQL0818错误