编辑推荐
国内巨擘的DB2图书,由业界领军人物牛新庄博士执笔
· 针对DB2技术的新发展和上一版的读者反馈,对全书内容和章节安排做了更新,更加贴近实用
· DB2从业人员的必备案头书 国内巨擘的DB2图书“三部曲”,DB2从业人员的案头书
点击查看:《DB2数据库性能调整和优化(第2版)》
点击查看:《循序渐进DB2:DBA系统管理、运维与应用案例(第2版)》
内容简介
数据库内核是数据库系统稳定运行的心脏,DB2数据库内核庞大而复杂。本书从DB2内核组件入手,同时介绍了其与操作系统在进程、共享内存、信号量之间的关系。作者在《高级进阶DB2:内部结构、高级管理与问题诊断》中重点介绍了各个内部组件的层次与功能、内存体系结构、存储内部结构、高级锁等。优化器是任何数据库执行SQL的关键部分,本书对优化器产生的各种执行计划进行了详细解释,这对于理解DB2内部工作原理大有裨益。同时,本书还介绍了DB2各种诊断工具的使用,各种数据库配置参数的含义及调整、数据库系统视图等。
国内巨擘的DB2图书“三部曲”,DB2从业人员的案头书。
作者简介
牛新庄,国内顶尖数据架构和信息治理专家,担任对外经济贸易大学客座教授、北京交通大学兼职教授、中国DB2用户协会(CDUG)理事长、亚洲金融合作联盟信息科技委员会主任。2008年曾以217万年薪受聘于中国建设银行总行特聘技术顾问,2009年受邀加入中国民生银行总行科技部,现任总行科技部总经理。
牛新庄博士拥有20多项国际厂商认证(包括DB2 V5~V9的全部认证),获得过国内数据库领域最高荣誉的“2006年中国首届杰出数据库工程师奖”、“首届IBM杰出软件专家奖”、“2006年IT168技术卓越奖”等奖项。
内页插图
目录
第1章 DB2进程和内存结构
1.1 DB2 进程体系结构
1.1.1 DB2进程技术模型
1.1.2 与操作系统相关的进程
1.1.3 与实例相关的进程和线程
1.1.4 与数据库相关的进程和线程
1.1.5 与应用程序相关的进程
1.1.6 监控EDU运行的SQL
语句
1.1.7 收集进程/线程堆栈信息
1.2 代理程序通信
1.2.1 代理程序概述
1.2.2 代理程序相关配置参数
1.2.3 应用程序、代理程序和
事务
1.2.4 代理和连接的常见问题与
优化
1.3 实用程序相关进程
1.3.1 LOAD相关进程
1.3.2 备份/恢复相关进程
1.4 DB2内存体系结构
1.4.1 实例共享内存
1.4.2 数据库共享内存
1.4.3 应用程序共享内存
1.4.4 代理私有内存
1.4.5 代理程序与应用程序之间
通信时的内存
1.4.6 共享内存与私有内存
1.5 内存集、内存池和内存块
1.5.1 实例级内存集
1.5.2 跟踪内存使用
1.5.3 定位内存泄漏
1.5.4 数据库级内存集
1.6 内存案例分析
1.7 内存自动调优
1.8 本章小结
第2章 DB2数据库设计
2.1 DB2存储内部结构
2.1.1 DB2存储层次结构
2.1.2 表空间存储结构
2.1.3 SMS表空间的存储结构
2.1.4 DMS表空间头部信息
2.1.5 DMS表空间映射
2.1.6 表空间的高水位标记
2.1.7 RID格式
2.1.8 索引叶的内部结构
2.2 数据库物理设计
2.2.1 表空间容器的放置原则
2.2.2 数据库物理设计原则
2.3 数据库逻辑设计
2.3.1 缓冲池设计原则
2.3.2 表空间设计原则
2.3.3 索引设计原则
2.4 其他高级设计技术
2.4.1 表分区及应用案例
2.4.2 索引分区及应用案例
2.4.3 数据库分区及应用案例
2.4.4 多维群集(MDC)及应用案例
2.4.5 表分区和多维集群表的
使用
2.4.6 物化查询表及应用案例
2.4.7 MDC、数据库分区、MQT和
表分区配合使用
2.4.8 表压缩和索引压缩
2.5 总结
第3章 表的高级特性
3.1 表分区的概念
3.1.1 定义
3.1.2 优点
3.2 分区表的基本用法
3.2.1 创建基本表分区
3.2.2 定义分区表空间和分区键
3.2.3 执行计划
3.2.4 将现有表和视图迁移到
分区表
3.3 分区表的管理
3.3.1 分区转出
3.3.2 分区转入
3.3.3 分区索引
3.3.4 分区重组
3.4 分区表detach的常见问题
3.4.1 分区主表关联有强制外键
约束
3.4.2 分区主表含有非自动刷新的
MQT
3.4.3 分区主表含有自动刷新的
MQT
3.4.4 主表或主表的分区正在被
其他事务以非UR的隔离
级别读取
3.5 行压缩
3.5.1 概念
3.5.2 启用或禁用行压缩
3.5.3 创建数据字典
3.5.4 评估压缩空间
3.5.5 检查压缩状态
3.6 表压缩应用案例
3.7 索引压缩及应用案例
3.8 本章小结
第4章 分区数据库
4.1 DB2 DPF多分区基本架构和
相关概念
4.1.1 DB2 DPF基本架构
4.1.2 DB2 DPF数据的分布键
以及数据倾斜问题
4.1.3 DB2 DPF数据库并行I/O
4.1.4 DB2 DPF数据库的扩展性
4.2 DB2 DPF多分区应用
4.3 配置DB2 DPF多分区环境
4.3.1 DB2 DPF安装准备
4.3.2 DB2 DPF环境搭建
4.3.3 创建表空间和缓冲池
4.3.4 DB2 DPF最佳实践
4.4 本章小结
第5章 DB2 HADR
5.1 HADR的设计理念
5.1.1 什么是高可用性
5.1.2 HADR的原理
5.1.3 HADR的日志处理模式
5.1.4 HADR的限制
5.2 HADR典型场景的搭建
5.2.1 对基础环境的要求
5.2.2 HADR的配置参数
5.2.3 复制PRIMARY数据库
5.2.4 启动STANDBY
5.2.5 启动PRIMARY
5.3 HADR的维护
5.3.1 监控HADR
5.3.2 HADR的切换方式
5.3.3 切换后对应用产生的影响
5.3.4 HADR状态
5.3.5 HADR异常状态的处理
5.4 HADR性能调优
5.4.1 接收缓冲
5.4.2 网络相关
5.4.3 内部参数
5.4.4 表和表空间的调整
5.5 HADR高可用案例分享
5.5.1 HADR结合PowerHA
5.5.2 HADR结合TSA
第6章 锁和并发
6.1 锁的概念
6.1.1 数据一致性
6.1.2 事务和事务边界
6.1.3 锁的概念
6.2 锁的属性、策略及模式
6.2.1 锁的属性
6.2.2 加锁策略
6.2.3 锁的模式
6.2.4 如何获取锁
6.2.5 锁的兼容性
6.3 隔离级别(Isolation Levels)
6.3.1 可重复读
(RR-Repeatable Read)
6.3.2 读稳定性
(RS-Read Stability)
6.3.3 游标稳定性
(CS-Cursor Stability)
6.3.4 当前提交
(Currently Committed)
6.3.5 未提交读
(UR-Uncommitted Read)
6.3.6 隔离级别的摘要
6.4 锁转换、锁等待、锁升级和死锁
6.4.1 锁转换及调整案例
6.4.2 锁升级及调整案例
6.4.3 锁等待及调整案例
6.4.4 死锁及调整案例
6.5 锁相关的性能问题总结
6.6 锁与应用程序设计
6.7 锁监控工具
6.8 最大化并发性
6.8.1 选择合适的隔离级别
6.8.2 尽量避免锁等待、锁升级和死锁
6.8.3 设置合理的注册表变量
6.9 锁和并发总结
第7章 DB2高级监控
7.1 从系统函数和视图获取监控信息
7.1.1 利用表函数监控
7.1.2 性能管理视图
7.2 监控指标和案例
7.2.1 一些常用的监控指标和
语句
7.2.2 编写脚本以获取监控信息
7.3 db2pd及监控案例
7.3.1 db2pd概述
7.3.2 db2pd监控案例
7.4 事件监视器及监控案例
7.4.1 事件监视器的创建方法和步骤
7.4.2 事件监控器案例
7.4.3 编写脚本从事件监控器中获取监控信息
7.5 db2mtrk及监控案例
7.6 DB2高级监控总结
第8章 DB2故障诊断
8.1 DB2故障诊断机制
8.1.1 故障诊断相关文件
8.1.2 设置故障诊断级别
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 DB2内部返回码
8.4 故障诊断分析流程
8.4.1 故障诊断流程
8.4.2 结合系统事件判断
8.4.3 结合系统运行状况诊断
8.5 案例分析
8.6 本章小结
第9章 数据库安全
9.1 DB2安全机制概述
9.2 认证(authentication)
9.2.1 什么时候进行DB2 身份认证
9.2.2 DB2身份认证类型
9.3 权限(authorization)
9.3.1 权限层次
9.3.2 实例级权限
9.3.3 数据库级权限
9.4 特权(privilege)
9.4.1 特权层次结构
9.4.2 授予特权
9.4.3 撤销特权
9.4.4 显式特权/隐式特权/ 间接特权
9.4.5 静态和动态SQL特权考虑因素
9.4.6 维护特权/权限
9.5 某银行安全规划案例
9.6 执行安全审计(db2audit)
9.6.1 实例级审计
9.6.2 数据库级审计
9.7 基于标签的访问控制(LBAC)及
案例
9.8 本章小结
第10章 DB2常见问题总结
10.1 实例常见问题和诊断案例
10.1.1 实例无法启动问题总结
10.1.2 实例无法正常终止
10.1.3 实例启动报SQL1042C错误
10.1.4 实例目录误删除
10.1.5 实例崩溃问题
10.2 数据库常见问题总结
10.2.1 数据库日志空间满SQL0964C错误
10.2.2 数据库时区和时间
10.2.3 中文乱码和代码页转换
10.2.4 通讯错误SQL30081N
10.2.5 数据库备份、前滚暂挂
10.2.6 数据库活动日志删除
10.2.7 数据库损坏(数据页、索引页)SQL1043C
10.2.8 索引重新构建问题
10.2.9 DB2实用程序不可用
10.2.10 快速清空表数据
10.2.11 表和索引统计信息不一致
10.2.12 表空间高水位问题
10.3 表空间状态
10.3.1 backup pending
10.3.2 脱机(offline and not accessible)
10.3.3 quiesced exclusive | share |update
10.3.4 restore pending和storage must be defined
10.3.5 rollforward pending
10.3.6 表空间状态总结
10.4 LOAD期间表状态总结
10.4.1 check pending
10.4.2 load pending
10.4.3 load in progress
10.4.4 not load restartable
10.4.5 read access only
10.4.6 unavailable
10.5 锁相关问题
10.5.1 锁升级
10.5.2 锁等待问题解决流程
10.5.3 死锁
10.6 内存常见问题
10.6.1 bufferpool设置过大,导致数据库无法启动
10.6.2 排序溢出
10.6.3 锁内存不足
10.7 备份恢复常见问题
10.8 数据移动常见问题总结
10.8.1 标识列
10.8.2 生成列
10.8.3 大对象
10.8.4 空值处理
10.8.5 定界符注意问题
10.8.6 PC/IXF注意问题
10.8.7 代码页不同注意事项
10.8.8 日期格式
10.8.9 XML问题
10.9 安全常见问题总结
10.9.1 从PUBLIC撤销隐式的权限和特权
10.9.2 保护系统编目视图
10.9.3 创建实例用户并显式指定组
10.9.4 为SYSxxx_GROUP参数使用显式值
10.9.5 跟踪隐式特权
10.9.6 不授予不必要的特权
10.9.7 使用加密的AUTHENTICATION模式
10.9.8 使用独立ID创建和拥有对象
10.9.9 使用视图控制数据访问
10.9.10 使用存储过程控制数据访问
10.9.11 使用LBAC控制数据访问
10.9.12 对重要敏感数据进行加密
10.10 SQL0805和SQL错误
前言/序言
序一
自1970年IBM公司研究员E.F.Codd博士,即“关系数据库之父”,发表业界第一篇关于关系数据库理论的论文A Relational Model of Data for Large Shared Data Banks以来,伴随着DB2的诞生,IBM公司涌现出了一批优秀的数据库技术领域先驱科学家,并获得了一系列数据库领域大奖,比如在1981年荣获了计算机科学界的最高荣誉——ACM图灵奖。在此之后,数据库管理软件在企业中得到广泛应用,业务流程自动化得以实现,对日常的工作和生活带来了深远的影响。
随着近年来云计算、大数据、移动以及社交信息技术的发展,数据技术也正在经历深刻的变革,处于一个全新计算时代的最前沿。我们能够观察到这样一个趋势:数据库的 24×7 高可用性、高可伸缩性,企业处理海量信息的方式将趋于实时,并从根本上转变业务运作的模式。客户在数据处理速度、简化程度和成本控制等方面需要更上一层楼。最新版的DB2 V10.1能带来更低的存储要求以及更高的响应速度,并添加了对大数据管理(如Hadoop)的支持。更具创新性的PureData也在这样的技术潮流中应运而生,它整合了基础架构、统一平台管理和专家知识体系,能够以不同的配置分别提供OLTP(联机事务处理)、OLAP(联机分析处理)和大数据分析操作的能力。
今天的企业用户希望他们的数据库能够可靠高效地运作,并推动业务发展。当我们把目光放到中国,就会看到,DB2已成为各行业大型应用系统的支柱产品。但是因DB2而闻名业界的本土技术专家,并不多见。
认识新庄是在今年8月北京举办的“IBM软件技术峰会”上。在中国的数据库技术领域,他是许多年轻人的楷模。新庄的成长令人欣喜,新庄对技术和实践的孜孜不倦令人印象深刻。这套DB2书籍得益于他历年的钻研及实践,对DB2初学者、DB2管理员以及资深从业者,都有非常好的指导及参考价值。祝愿每一位读者能有所得、有所悟,成长为新一代的数据技术专家,也祝愿新庄在数据技术领域这条康庄大道上走得更宽更远。
IBM全球副总裁兼IBM中国开发中心总经理 王阳
序二
新庄是IBM的老朋友,也是我的老朋友了。虽然我们的见面次数并不多,但我深感他是一位非常优秀的技术专家和管理者。尤其是在技术方面,他有自己的独特见地,在IT软件、硬件及解决方案方面都涉猎很广。另外,他本人也很亲和,具有技术专家的风范。
在最近一次交流中,他跟我提起他打算把之前出版的三本DB2系列书籍进行全面版本升级,我感到非常钦佩和欣喜。他在繁忙的日常工作之余,还能利用业余时间完成三本书籍的撰写和更新,足以证明新庄的勤奋和对技术的热爱。同时我也欣喜广大的技术爱好者能有机会一饱技术大家的分享和心得。
他把他的新书送给我,我先粗略读了一遍,更详细的内容留待以后的时间里细细品味。他的这三本书籍将帮助数据库爱好者和企业数据库实践者由浅入深地学习DB2。即使在网络日益普及的今天,对于一名DB2技术工作者来说,通过书籍来系统化地进行学习同样很关键。
在我看来,阅读他的书籍有三个最特别之处:
第一,他是第一位出版DB2系列中文书籍的作者,随着这么多年书籍的广泛传播,他在此基础上再次升级更新,结合了非常多的读者反馈,增加了很多近几年读者关注和遇到的问题,这个非常难得。
第二,他所在单位的核心数据库就是DB2,本次书籍的升级纂写,也更多结合了他的实战经验,这将极大帮助更多企业在应用D
高级进阶DB2:内部结构、高级管理与问题诊断(第2版) 电子书 下载 mobi epub pdf txt