高级进阶DB2(第2版)——内部结构、高级管理与问题诊断

《高级进阶DB2(第2版)——内部结构、高级管理与问题诊断》

基本信息
作者: 牛新庄   
出版社:清华大学出版社
ISBN:9787302323839
上架时间:2013-7-3
出版日期:2013 年7月
开本:16开
页码:484
版次:2-1
所属分类:计算机 > 数据库 > DB2

内容简介
    计算机书籍
数据库内核是数据库系统稳定运行的心脏,DB2数据库内核庞大而复杂。《高级进阶DB2(第2版)——内部结构、高级管理与问题诊断》从DB2内核组件入手,同时介绍了其与操作系统在进程、共享内存、信号量之间的关系。作者在本书中重点介绍了各个内部组件的层次与功能、内存体系结构、存储内部结构、高级锁等。优化器是任何数据库执行SQL的关键部分,本书对优化器产生的各种执行计划进行了详细解释,这对于理解DB2内部工作原理大有裨益。同时,本书还介绍了DB2各种诊断工具的使用,各种数据库配置参数的含义及调整、数据库系统视图等。
目录
《高级进阶db2(第2版)——内部结构、高级管理与问题诊断》 
第1章 db2进程和内存结构 1 
1.1 db2 进程体系结构 1 
1.1.1 db2进程技术模型 1 
1.1.2 与操作系统相关的进程 3 
1.1.3 与实例相关的进程和线程 5 
1.1.4 与数据库相关的进程和线程 6 
1.1.5 与应用程序相关的进程 9 
1.1.6 监控edu运行的sql语句 10 
1.1.7 收集进程/线程堆栈信息 12 
1.2 代理程序通信 13 
1.2.1 代理程序概述 13 
1.2.2 代理程序相关配置参数 13 
1.2.3 应用程序、代理程序和事务 16 
1.2.4 代理和连接的常见问题与优化 17 
1.3 实用程序相关进程 21 
1.3.1 load相关进程 21 
1.3.2 备份/恢复相关进程 26 
1.4 db2内存体系结构 29 
1.4.1 实例共享内存 30 
.1.4.2 数据库共享内存 31 
1.4.3 应用程序共享内存 36 
1.4.4 代理私有内存 38 
1.4.5 代理程序与应用程序之间通信时的内存 40 
1.4.6 共享内存与私有内存 40 
1.5 内存集、内存池和内存块 42 
1.5.1 实例级内存集 43 
1.5.2 跟踪内存使用 46 
1.5.3 定位内存泄漏 48 
1.5.4 数据库级内存集 49 
1.6 内存案例分析 51 
1.7 内存自动调优 53 
1.8 本章小结 55 
第2章 db2数据库设计 57 
2.1 db2存储内部结构 57 
2.1.1 db2存储层次结构 57 
2.1.2 表空间存储结构 59 
2.1.3 sms表空间的存储结构 59 
2.1.4 dms表空间头部信息 59 
2.1.5 dms表空间映射 60 
2.1.6 表空间的高水位标记 61 
2.1.7 rid格式 61 
2.1.8 索引叶的内部结构 62 
2.2 数据库物理设计 63 
2.2.1 表空间容器的放置原则 63 
2.2.2 数据库物理设计原则 63 
2.3 数据库逻辑设计 64 
2.3.1 缓冲池设计原则 64 
2.3.2 表空间设计原则 69 
2.3.3 索引设计原则 79 
2.4 其他高级设计技术 81 
2.4.1 表分区及应用案例 81 
2.4.2 索引分区及应用案例 83 
2.4.3 数据库分区及应用案例 86 
2.4.4 多维群集(mdc)及应用案例 88 
2.4.5 表分区和多维集群表的使用 92 
2.4.6 物化查询表及应用案例 96 
2.4.7 mdc、数据库分区、mqt和表分区配合使用 100 
2.4.8 表压缩和索引压缩 111 
2.5 总结 111 
第3章 表的高级特性 113 
3.1 表分区的概念 113 
3.1.1 定义 113 
3.1.2 优点 114 
3.2 分区表的基本用法 115 
3.2.1 创建基本表分区 115 
3.2.2 定义分区表空间和分区键 118 
3.2.3 执行计划 123 
3.2.4 将现有表和视图迁移到分区表 126 
3.3 分区表的管理 128 
3.3.1 分区转出 128 
3.3.2 分区转入 130 
3.3.3 分区索引 132 
3.3.4 分区重组 135 
3.4 分区表detach的常见问题 140 
3.4.1 分区主表关联有强制外键约束 140 
3.4.2 分区主表含有非自动刷新的mqt 141 
3.4.3 分区主表含有自动刷新的mqt 141 
3.4.4 主表或主表的分区正在被其他事务以非ur的隔离级别读取 142 
3.5 行压缩 142 
3.5.1 概念 143 
3.5.2 启用或禁用行压缩 144 
3.5.3 创建数据字典 146 
3.5.4 评估压缩空间 148 
3.5.5 检查压缩状态 150 
3.6 表压缩应用案例 151 
3.7 索引压缩及应用案例 160 
3.8 本章小结 163 
第4章 分区数据库 165 
4.1 db2 dpf多分区基本架构和相关概念 165 
4.1.1 db2 dpf基本架构 165 
4.1.2 db2 dpf数据的分布键以及数据倾斜问题 166 
4.1.3 db2 dpf数据库并行i/o 168 
4.1.4 db2 dpf数据库的扩展性 169 
4.2 db2 dpf多分区应用 170 
4.3 配置db2 dpf多分区环境 172 
4.3.1 db2 dpf安装准备 172 
4.3.2 db2 dpf环境搭建 174 
4.3.3 创建表空间和缓冲池 177 
4.3.4 db2 dpf最佳实践 178 
4.4 本章小结 193 
第5章 db2 hadr 195 
5.1 hadr的设计理念 195 
5.1.1 什么是高可用性 195 
5.1.2 hadr的原理 197 
5.1.3 hadr的日志处理模式 198 
5.1.4 hadr的限制 200 
5.2 hadr典型场景的搭建 200 
5.2.1 对基础环境的要求 201 
5.2.2 hadr的配置参数 201 
5.2.3 复制primary数据库 202 
5.2.4 启动standby 203 
5.2.5 启动primary 204 
5.3 hadr的维护 204 
5.3.1 监控hadr 204 
5.3.2 hadr的切换方式 209 
5.3.3 切换后对应用产生的影响 210 
5.3.4 hadr状态 211 
5.3.5 hadr异常状态的处理 211 
5.4 hadr性能调优 212 
5.4.1 接收缓冲 212 
5.4.2 网络相关 212 
5.4.3 内部参数 212 
5.4.4 表和表空间的调整 213 
5.5 hadr高可用案例分享 213 
5.5.1 hadr结合powerha 214 
5.5.2 hadr结合tsa 218 
第6章 锁和并发 223 
6.1 锁的概念 223 
6.1.1 数据一致性 223 
6.1.2 事务和事务边界 224 
6.1.3 锁的概念 226 
6.2 锁的属性、策略及模式 231 
6.2.1 锁的属性 231 
6.2.2 加锁策略 231 
6.2.3 锁的模式 231 
6.2.4 如何获取锁 234 
6.2.5 锁的兼容性 236 
6.3 隔离级别(isolation levels) 237 
6.3.1 可重复读(rr—repeatable read) 237 
6.3.2 读稳定性(rs—read stability) 238 
6.3.3 游标稳定性(cs—cursor stability) 240 
6.3.4 当前提交(currently committed) 241 
6.3.5 未提交读(ur—uncommitted read) 242 
6.3.6 隔离级别的摘要 244 
6.4 锁转换、锁等待、锁升级和死锁 246 
6.4.1 锁转换及调整案例 246 
6.4.2 锁升级及调整案例 248 
6.4.3 锁等待及调整案例 251 
6.4.4 死锁及调整案例 253 
6.5 锁相关的性能问题总结 257 
6.6 锁与应用程序设计 259 
6.7 锁监控工具 262 
6.8 最大化并发性 266 
6.8.1 选择合适的隔离级别 266 
6.8.2 尽量避免锁等待、锁升级和死锁 266 
6.8.3 设置合理的注册表变量 267 
6.9 锁和并发总结 275 
第7章 db2高级监控 277 
7.1 从系统函数和视图获取监控信息 277 
7.1.1 利用表函数监控 277 
7.1.2 性能管理视图 280 
7.2 监控指标和案例 281 
7.2.1 一些常用的监控指标和语句 281 
7.2.2 编写脚本以获取监控信息 287 
7.3 db2pd及监控案例 289 
7.3.1 db2pd概述 289 
7.3.2 db2pd监控案例 290 
7.4 事件监视器及监控案例 301 
7.4.1 事件监视器的创建方法和步骤 302 
7.4.2 事件监控器案例 303 
7.4.3 编写脚本从事件监控器中获取监控信息 306 
7.5 db2mtrk及监控案例 308 
7.6 db2高级监控总结 310 
第8章 db2故障诊断 311 
8.1 db2故障诊断机制 311 
8.1.1 故障诊断相关文件 311 
8.1.2 设置故障诊断级别 320 
8.2 深入讲解故障诊断文件 325 
8.2.1 解释管理通知日志文件条目 325 
8.2.2 解释诊断日志文件条目 326 
8.3 故障诊断工具 329 
8.3.1 使用db2support收集环境信息 329 
8.3.2 db2ls和db2level 330 
8.3.3 使用db2diag分析db2diag.log文件 331 
8.3.4 db2内部返回码 337 
8.4 故障诊断分析流程 339 
8.4.1 故障诊断流程 339 
8.4.2 结合系统事件判断 342 
8.4.3 结合系统运行状况诊断 342 
8.5 案例分析 343 
8.6 本章小结 347 
第9章 数据库安全 349 
9.1 db2安全机制概述 350 
9.2 认证(authentication) 352 
9.2.1 什么时候进行db2 身份认证 352 
9.2.2 db2身份认证类型 353 
9.3 权限(authorization) 358 
9.3.1 权限层次 358 
9.3.2 实例级权限 359 
9.3.3 数据库级权限 365 
9.4 特权(privilege) 368 
9.4.1 特权层次结构 368 
9.4.2 授予特权 370 
9.4.3 撤销特权 374 
9.4.4 显式特权/隐式特权/ 间接特权 376 
9.4.5 静态和动态sql特权考虑因素 379 
9.4.6 维护特权/权限 381 
9.5 某银行安全规划案例 385 
9.6 执行安全审计(db2audit) 387 
9.6.1 实例级审计 387 
9.6.2 数据库级审计 392 
9.7 基于标签的访问控制(lbac)及案例 395 
9.8 本章小结 401 
第10章 db2常见问题总结 403 
10.1 实例常见问题和诊断案例 403 
10.1.1 实例无法启动问题总结 403 
10.1.2 实例无法正常终止 404 
10.1.3 实例启动报sql1042c错误 404 
10.1.4 实例目录误删除 405 
10.1.5 实例崩溃问题 405 
10.2 数据库常见问题总结 406 
10.2.1 数据库日志空间满sql0964c错误 406 
10.2.2 数据库时区和时间 407 
10.2.3 中文乱码和代码页转换 408 
10.2.4 通讯错误sql30081n 411 
10.2.5 数据库备份、前滚暂挂 412 
10.2.6 数据库活动日志删除 412 
10.2.7 数据库损坏(数据页、索引页)sql1043c 412 
10.2.8 索引重新构建问题 414 
10.2.9 db2实用程序不可用 415 
10.2.10 快速清空表数据 415 
10.2.11 表和索引统计信息不一致 416 
10.2.12 表空间高水位问题 417 
10.3 表空间状态 421 
10.3.1 backup pending 422 
10.3.2 脱机(offline and not accessible) 422 
10.3.3 quiesced exclusive / share /update 423 
10.3.4 restore pending和storagemust be defined 423 
10.3.5 rollforward pending 424 
10.3.6 表空间状态总结 424 
10.4 load期间表状态总结 424 
10.4.1 check pending 425 
10.4.2 load pending 425 
10.4.3 load in progress 426 
10.4.4 not load restartable 426 
10.4.5 read access only 427 
10.4.6 unavailable 428 
10.5 锁相关问题 428 
10.5.1 锁升级 428 
10.5.2 锁等待问题解决流程 428 
10.5.3 死锁 429 
10.6 内存常见问题 429 
10.6.1 bufferpool设置过大,导致数据库无法启动 429 
10.6.2 排序溢出 429 
10.6.3 锁内存不足 430 
10.7 备份恢复常见问题 430 
10.8 数据移动常见问题总结 431 
10.8.1 标识列 431 
10.8.2 生成列 435 
10.8.3 大对象 438 
10.8.4 空值处理 440 
10.8.5 定界符注意问题 443 
10.8.6 pc/ixf注意问题 446 
10.8.7 代码页不同注意事项 448 
10.8.8 日期格式 449 
10.8.9 xml问题 451 
10.9 安全常见问题总结 453 
10.9.1 从public撤销隐式的权限和特权 454 
10.9.2 保护系统编目视图 456 
10.9.3 创建实例用户并显式指定组 457 
10.9.4 为sysxxx_group参数使用显式值 457 
10.9.5 跟踪隐式特权 458 
10.9.6 不授予不必要的特权 459 
10.9.7 使用加密的authentication模式 460 
10.9.8 使用独立id创建和拥有对象 461 
10.9.9 使用视图控制数据访问 462 
10.9.10 使用存储过程控制数据访问 463 
10.9.11 使用lbac控制数据访问 464 
10.9.12 对重要敏感数据进行加密 465 
10.10 sql0805和sql0818错误 467

图书信息来源: 互动出版网
原文地址:https://www.cnblogs.com/snake-hand/p/3174556.html