D1章 DB2体系结构 1
1.1 DB2 进程体系结构 1
1.1.1 DB2进程技术模型 2
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 DB2存储内部结构 55
1.8.1 DB2存储层次结构 55
1.8.2 表空间存储结构 57
1.8.3 SMS表空间的存储结构 57
1.8.4 DMS表空间的头部信息 57
1.8.5 DMS表空间映射 58
1.8.6 表空间的高水位标记 59
1.8.7 RID格式 59
1.8.8 索引叶的内部结构 60
1.9 数据库物理设计 61
1.9.1 表空间容器的放置原则 61
1.9.2 数据库物理设计原则 61
1.10 数据库逻辑设计 62
1.10.1 缓冲池设计原则 62
1.10.2 表空间设计原则 67
1.10.3 索引设计原则 77
1.11 本章小结 79
D2章 DB2表的GJ特性 81
2.1 表分区 81
2.1.1 定义 81
2.1.2 优点 82
2.1.3 分区表的基本用法 83
2.1.4 分区表的管理 96
2.1.5 分区重组 103
2.1.6 分区表detach的常见问题 104
2.2 多维群集(MDC)及应用
案例 107
2.2.1 创建MDC表 107
2.2.2 MDC测试案例 108
2.2.3 MDC考虑 110
2.3 表分区和多维集群表的使用 110
2.4 物化查询表及应用案例 114
2.4.1 物化查询表(MQT) 114
2.4.2 MQT总结 117
2.5 MDC、数据库分区、MQT和
表分区配合使用 118
2.6 行压缩 129
2.6.1 概念 129
2.6.2 启用或禁用表的压缩功能 131
2.6.3 创建数据字典 133
2.6.4 评估压缩空间 135
2.6.5 检查压缩状态 135
2.6.6 行压缩应用案例 136
2.6.7 索引压缩及应用案例 145
2.7 本章小结 148
D3章 数据库安全 149
3.1 DB2安全机制概述 150
3.2 认证(authentication) 152
3.2.1 什么时候进行DB2身份
认证 152
3.2.2 DB2身份认证类型 153
3.3 权限(authorization) 158
3.3.1 权限层次 158
3.3.2 实例级权限 159
3.3.3 数据库级权限 164
3.4 特权(privilege) 167
3.4.1 特权层次结构 167
3.4.2 授予特权 170
3.4.3 撤销特权 172
3.4.4 显式特权/隐式特权/间接
特权 174
3.4.5 静态和动态SQL特权考虑
因素 177
3.4.6 维护特权/权限 179
3.5 某银行安全规划案例 181
3.6 执行安全审计(db2audit) 183
3.6.1 实例级审计 183
3.6.2 数据库级审计 188
3.7 基于标签的访问控制(LBAC)
及案例 191
3.8 本章小结 198
D4章 OLTP系统设计与管理 199
4.1 基础环境设计 199
4.1.1 硬件环境设计 200
4.1.2 操作系统设计 200
4.1.3 实例和数据库参数设置 200
4.2 物理结构设计 202
4.2.1 DB2页大小的选择 202
4.2.2 表空间类型的选择 203
4.2.3 页大小、表大小和表空间
大小 203
4.2.4 表空间参数的设置 203
4.2.5 数据库BUFFERPOOL的创建
设置 205
4.3 数据库对象的设计原则 206
4.3.1 表相关的设计原则 206
4.3.2 性能相关的设计原则 213
4.4 代码开发的基本原则 215
4.4.1 命名规范 215
4.4.2 书写规范 216
4.4.3 开发规范 216
4.5 本章小结 221
D5章 OLAP系统设计与管理 223
5.1 DB2 DPF多分区基本架构和
相关概念 224
5.1.1 DB2 DPF基本架构 224
5.1.2 DB2 DPF数据的分布键
以及数据倾斜问题 224
5.1.3 DB2 DPF数据库的
并行I/O 226
5.1.4 DB2 DPF数据库的扩展性 227
5.2 DB2 DPF多分区应用 228
5.3 OLAP高性能设计:DPF TP
MDC 231
5.4 配置DB2 DPF多分区环境 233
5.4.1 DB2 DPF安装准备 233
5.4.2 DB2 DPF环境搭建 235
5.4.3 创建表空间和缓冲池 238
5.5 DB2 DPF运维操作实践 239
5.5.1 DB2 DPF分区节点的扩展
和删除实践 239
5.5.2 DB2 DPF数据均衡实践 240
5.5.3 load copy yes以及相应的
前滚方法 242
5.5.4 多分区load失败处理 245
5.6 OLAP系统设计与应用开发
ZJ实践 247
5.6.1 表的设计ZJ实践 247
5.6.2 数据访问方式ZJ实践 248
5.6.3 复制表的定义 249
5.7 DB2列组织表 250
5.7.1 DB2列组织表介绍 250
5.7.2 DB2列组织表应用场景和
环境配置 251
5.7.3 创建列组织表 253
5.7.4 向列组织表装入(LOAD)
数据 255
5.7.5 列组织表的访问计划 256
5.8 本章小结 257
D6章 高可用与灾备 259
6.1 HADR的设计理念 260
6.1.1 什么是高可用性 260
6.1.2 HADR的原理 261
6.1.3 HADR的日志处理模式 262
6.1.4 HADR的限制 264
6.2 HADR典型场景的搭建 265
6.2.1 对基础环境的要求 265
6.2.2 HADR的配置参数 265
6.2.3 复制PRIMARY数据库 267
6.2.4 启动STANDBY 267
6.2.5 启动PRIMARY 268
6.3 HADR的维护 268
6.3.1 监控HADR 268
6.3.2 HADR的切换方式 273
6.3.3 切换后对应用产生的影响 273
6.3.4 HADR状态 274
6.3.5 HADR异常状态的处理 275
6.4 HADR性能调优 275
6.4.1 接收缓冲 275
6.4.2 网络相关 276
6.4.3 内部参数 276
6.4.4 表和表空间的调整 276
6.5 HADR高可用案例分享 277
6.5.1 HADR结合PowerHA 277
6.5.2 HADR结合TSA 282
D7章 DB2集群与同城双活 287
7.1 DB2集群介绍 288
7.2 DB2集群的搭建 289
7.2.1 系统物理架构 289
7.2.2 系统环境准备 291
7.2.3 配置共享存储 291
7.2.4 配置IOCP 292
7.2.5 配置RoCE万兆网络环境 293
7.2.6 检查文件系统的空间 296
7.2.7 配置时钟同步服务 296
7.2.8 配置用户名和用户组 299
7.2.9 配置用户限制 299
7.2.10 配置集群互信 300
7.2.11 执行安装检查 301
7.2.12 安装DB2 pureScale软件 302
7.2.13 安装DB2许可 303
7.2.14 创建实例 304
7.2.15 配置实例 305
7.2.16 创建GPFS文件系统 307
7.2.17 创建数据库 307
7.3 DB2集群的维护 307
7.3.1 实例的启停 307
7.3.2 集群的管理 308
7.3.3 故障处理 313
7.4 DB2集群设计调优 315
7.4.1 使用小的pagesize 316
7.4.2 使用大的extentsize 316
7.4.3 使用lob inline方法 316
7.4.4 使用大的pctfree设置 316
7.4.5 巧用CURRENT MEMBER 316
7.4.6 巧用随机索引 317
7.5 同城双活集群介绍 318
7.6 DB2集群异地容灾 320
7.6.1 DB2集群异地容灾架构 320
7.6.2 Replay Member概念 320
7.6.3 DB2集群异地容灾同步
模式 321
7.6.4 DB2集群异地容灾切换
方式 322
7.6.5 DB2集群异地容灾客户端
连接方式 322
7.6.6 DB2集群异地容灾架构的
高可用性 323
7.6.7 DB2集群异地容灾特性 323
7.7 本章小结 323
D8章 DB2GJ监控 325
8.1 利用表函数监控 325
8.2 监控指标和案例 329
8.2.1 一些常用的监控指标和
语句 329
8.2.2 编写脚本以获取监控信息 335
8.3 db2pd及监控案例 337
8.3.1 db2pd概述 337
8.3.2 db2pd监控案例 337
8.4 事件监视器及监控案例 349
8.4.1 事件监视器的创建方法和
步骤 350
8.4.2 事件监控器案例 351
8.4.3 编写脚本从事件监控器中
获取监控信息 354
8.5 db2mtrk及监控案例 356
8.6 本章小结 358
D9章 DB2故障诊断 359
9.1 DB2故障诊断机制 359
9.1.1 故障诊断相关文件 359
9.1.2 设置故障诊断级别 368
9.2 深入讲解故障诊断文件 373
9.2.1 解释管理通知日志文件
条目 373
9.2.2 解释诊断日志文件条目 375
9.3 故障诊断工具 377
9.3.1 使用db2support收集环境
信息 377
9.3.2 db2ls和db2level 378
9.3.3 使用db2diag分析
db2diag.log文件 380
9.3.4 db2pd和db2trc 383
9.3.5 DB2内部返回码 385
9.4 故障诊断分析流程 387
9.4.1 故障诊断流程 387
9.4.2 结合系统事件判断 390
9.4.3 结合系统运行状况诊断 390
9.5 案例分析 391
9.6 本章小结 395
D10章 DB2案例精选 397
10.1 实例常见问题和诊断案例 397
10.1.1 实例无法启动问题总结 397
10.1.2 实例无法正常终止 398
10.1.3 实例目录误删除 398
10.1.4 实例崩溃问题 399
10.2 数据库常见问题总结 399
10.2.1 数据库日志空间满
SQL0964C错误 399
10.2.2 数据库时区和时间 400
10.2.3 中文乱码和代码页转换 401
10.2.4 通信错误SQL30081N 401
10.2.5 数据库备份、前滚暂挂 402
10.2.6 数据库活动日志删除 402
10.2.7 数据库损坏(数据页、
索引页)SQL1043C 403
10.2.8 索引重新构建问题 405
10.2.9 DB2实用程序不可用 405
10.2.10 快速清空表数据 406
10.2.11 表和索引统计信息
不一致 407
10.3 表空间状态 407
10.3.1 backup pending 408
10.3.2 脱机(offline and Dt
accessible) 409
10.3.3 quiesced exclusive | share |
update 409
10.3.4 restore pending和storage
must be defined 410
10.3.5 rollforward pending 410
10.3.6 表空间状态总结 411
10.4 LOAD期间表状态总结 411
10.4.1 check pending 411
10.4.2 load pending 412
10.4.3 load in progress 412
10.4.4 Dt load restartable 413
10.4.5 read access only 414
10.4.6 unavailable 414
10.5 锁相关问题 415
10.5.1 锁升级 415
10.5.2 锁等待问题解决流程 415
10.5.3 死锁 415
10.6 CPU常见问题 416
10.7 内存常见问题 416
10.7.1 bufferpool设置过大,
导致数据库无法启动 416
10.7.2 排序溢出 416
10.7.3 锁内存不足 417
10.8 latch问题导致系统性能
急剧下降 417
10.9 备份恢复常见问题 417
10.10 数据移动常见问题总结 418
10.10.1 标识列 419
10.10.2 生成列 422
10.10.3 大对象 426
10.10.4 空值处理 427
10.10.5 定界符注意问题 430
10.10.6 PC/IXF注意问题 433
10.10.7 代码页不同注意事项 435
10.10.8 日期格式 436
10.10.9 XML问题 438
10.11 安全常见问题总结 441
10.11.1 从PUBLIC撤销隐式的
权限和特权 441
10.11.2 保护系统编目视图 443
10.11.3 创建实例用户并显式
指定组 444
10.11.4 为SYSxxx_GROUP参数
使用显式值 444
10.11.5 跟踪隐式特权 445
10.11.6 不授予不必要的特权 446
10.11.7 使用加密的
AUTHENTICATION
模式 446
10.11.8 使用D立ID创建和
拥有对象 448
10.11.9 使用视图控制数据
访问 449
10.11.10 使用存储过程控制数据
访问 450
10.11.11 使用LBAC控制数据
访问 451
10.11.12 对重要敏感数据进行
加密 451
10.12 SQL0805和SQL0818
错误 454
显示全部信息这本书的名字是《DB2高级管理.系统设计与诊断案例(第3版)》,我拿到这本书大概有三个月了,一直以来,我都在尝试将里面的内容消化吸收,以便更好地应用到实际工作中。这本书给我最深刻的印象是,它并不是一本单纯的“教你如何做”的手册,而更像是一个经验丰富的导师,在循循善诱地引导读者去思考“为什么”。在学习的过程中,我尤其被书中关于DB2性能调优的章节所吸引。作者并没有仅仅列举出一堆调优参数和指令,而是深入浅出地剖析了每个参数背后的原理,以及它们在不同场景下可能产生的连锁反应。举个例子,在讲解表空间设计的时候,作者详细阐述了不同类型的表空间(如SMS、DMS)在I/O性能、数据管理和可扩展性方面的优劣,并且结合了实际案例,说明了如何根据业务需求和数据访问模式来选择最合适的表空间类型,甚至是如何在现有环境中进行迁移和优化。这让我意识到,很多时候我们遇到的性能瓶颈,并不是因为工具的不足,而是因为对基础原理理解不够深入,导致我们在做决策时缺乏依据。书中的诊断案例部分更是令人拍案叫绝。作者选取了几个非常典型但又极具挑战性的问题,比如CPU利用率居高不下、I/O繁忙但数据读取速度缓慢、事务响应时间突增等。他并没有直接给出解决方案,而是带领读者一步步地抽丝剥茧,从现象入手,逐步缩小排查范围,利用DB2的各种监控工具和诊断命令,层层深入地分析问题的根源。这种“跟着作者一起诊断”的过程,比单纯阅读技术文档更能锻炼分析问题的能力。我发现,很多时候问题的症结并不在我们一开始猜测的方向,需要具备全局的视野和灵活的思维来判断。
评分老实说,刚拿到《DB2高级管理.系统设计与诊断案例(第3版)》这本书时,我最大的顾虑是它会否过于理论化,不贴近实际。毕竟,市面上很多技术书籍要么是晦涩难懂的理论堆砌,要么就是简单罗列操作步骤,缺乏深入的思考。但阅读这本书的过程,却给了我很大的惊喜。它非常有条理地构建了一个DB2系统管理的知识体系,从基础的架构理解,到高级的性能优化,再到复杂的故障诊断,层层递进,逻辑清晰。我特别喜欢的是书中对于系统设计部分的阐述。作者不仅仅是告诉我们“应该怎么设计”,而是深入剖析了“为什么这么设计”以及“不同设计方案的权衡”。比如,在讲解高可用性方案时,作者详细对比了HADR(高可用性灾难恢复)和PureScale(可扩展集群)在部署复杂度、成本、性能表现以及容灾能力上的差异,并且给出了针对不同业务场景下的推荐方案。这对于我这种需要经常为新项目选择和设计数据库架构的技术人员来说,非常有指导意义。更难得的是,书中的诊断案例部分,不是那种“已知问题,已知答案”的套路,而是提供了非常真实的、在生产环境中可能遇到的棘手问题。作者在分析这些案例时,展示了一种严谨的、科学的排查思路。他会先从宏观层面观察系统状态,然后逐步细化到具体的组件和参数,并辅以大量的图表和SQL语句来佐证自己的分析过程。这种“授人以渔”的教学方式,让我受益匪浅,我感觉自己不仅仅是在学习DB2的知识,更是在学习一种解决复杂技术问题的思维方式。
评分这本书《DB2高级管理.系统设计与诊断案例(第3版)》给我带来的价值,远超乎我最初的预期。在此之前,我对DB2的认识更多是停留在“使用”的层面,对于其内在的运作机制以及如何进行深度优化,一直感到有些力不从心。这本书系统地梳理了DB2的高级管理知识,并且以大量的实际案例作为支撑,让我感觉非常实用。我特别欣赏书中对于系统设计部分的详尽阐述。作者并没有仅仅停留在理论层面,而是深入到实际部署过程中可能遇到的各种问题,并给出了切实可行的解决方案。比如,在讨论如何构建高可用性集群时,书中详细分析了不同方案(如HADR、PureScale)的适用场景、部署复杂度、管理成本以及容错能力,并且提供了详细的配置指南和故障排除建议。这对于我这种需要负责数据库架构选型和部署的工程师来说,是极其宝贵的参考资料。更重要的是,书中的诊断案例部分,让我对DB2的故障排除能力有了质的提升。作者选取了几个非常典型且棘手的案例,从现象入手,逐步引导读者一步步地进行深入分析。他会教你如何利用DB2提供的各种工具,如MON_GET_ACTIVITY_METRICS、db2pd等,来收集关键的性能指标和诊断信息,并通过对这些信息的解读,准确地定位问题的根源。这种“从现象到本质”的分析过程,让我受益匪浅,它不仅仅是教我如何解决一个具体问题,更是教会了我一种解决复杂技术问题的思维模式。
评分《DB2高级管理.系统设计与诊断案例(第3版)》这本书,对我而言,更像是一本“秘籍”。在阅读之前,我对DB2的一些高级特性和性能调优技巧,总是感觉摸不着头脑,很多时候只能通过“试错”的方式来解决问题。这本书的出版,极大地弥补了我在这方面的知识盲区。我特别喜欢书中关于系统设计的讨论,它并没有简单地罗列出各种设计模式,而是深入地剖析了每种设计选择背后的逻辑和权衡。例如,在讲解如何优化OLAP和OLTP混合负载的数据库设计时,作者详细对比了不同分区策略、索引类型以及缓存策略的应用,并且结合了实际的性能测试数据,来佐证其观点。这让我对如何在复杂业务场景下进行数据库设计有了更清晰的认识。而书中的诊断案例部分,更是让我眼前一亮。作者选取了几个在生产环境中非常具有代表性的、且难以排查的疑难杂症,比如由于复杂的锁等待导致的服务中断,或者是内存管理不当引起的性能骤降。他并没有直接给出标准答案,而是带领读者一步步地分析问题,从收集日志、监控指标到理解DB2的内部机制,层层深入,最终找到问题的根源。这种“跟着大神一起排查疑难杂症”的体验,让我感觉自己不仅是在学习技术,更是在学习一种解决问题的方法论。我发现,很多时候,看似复杂的问题,一旦找到了正确的分析思路,就会变得迎刃而解。
评分我对《DB2高级管理.系统设计与诊断案例(第3版)》这本书的评价,可以用“拨云见日”来形容。在此之前,我对DB2的认知大多停留在基础的管理和运维层面,对于一些更深层次的系统设计和性能调优,总感觉隔靴搔痒,不得要领。这本书的出现,仿佛给我打开了一扇新的大门。我尤其推崇书中在系统设计部分的讨论。作者并没有将设计过程描绘得过于简单化,而是直面了实际工作中会遇到的种种挑战和权衡。例如,在设计大规模数据集的存储方案时,书中详细分析了如何根据数据访问频率、数据生命周期以及合规性要求,来选择合适的表空间类型、存储介质,甚至是分区的策略。这让我意识到,一个优秀的设计,绝非简单的参数堆砌,而是对业务需求、技术限制以及未来发展趋势的综合考量。而诊断案例部分,更是让我学到了“如何思考”而不仅仅是“如何操作”。书中选取了一些看似简单,但实际排查起来却异常棘手的案例,比如由于锁竞争导致的缓慢事务,或者是意外的内存泄漏。作者在分析这些案例时,并没有直接给出“银弹”,而是引导读者一步步地去理解DB2内部的运行机制,如何通过监控视图、事件监视器以及诊断日志来收集线索,最终定位问题。这种“侦探式”的分析过程,非常有启发性,它教会我如何在信息爆炸的环境下,抓住关键信息,理清逻辑关系,从而有效地解决问题。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等,本站所有链接都为正版商品购买链接。
© 2025 windowsfront.com All Rights Reserved. 静流书站 版权所有