分享
 
 
 

深入解析DB2:高级管理、内部体系结构与诊断案例

深入解析DB2:高级管理、内部体系结构与诊断案例  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机与互联网,数据库,数据库类型,
  品牌: 牛新庄

基本信息·出版社:清华大学出版社

·页码:471 页

·出版日期:2009年

·ISBN:7302201374/9787302201373

·条形码:9787302201373

·包装版本:1

·装帧:平装

·开本:16

·正文语种:中文

产品信息有问题吗?请帮我们更新产品信息。

内容简介《深入解析DB2:高级管理、内部体系结构与诊断案例》数据库内核是数据库系统稳定运行的心脏,DB2数据库内核庞大而复杂。本书从DB2内核组件入手,同时介绍了其与操作系统在进程、共享内存、信号量之间的关系。作者在本书中重点介绍了各个内部组件的层次与功能、内存体系结构、存储内部结构、高级锁等。优化器是任何数据库执行SQL的关键部分,本书对优化器产生的各种执行计划进行了详细解释,这对于理解DB2内部工作原理大有裨益。同时,本书还介绍了DB2各种诊断工具的使用,各种数据库配置参数含义及调整、数据库系统视图等。

本书封面贴有清华大学出版社防伪标签,无标签者不得销售。

编辑推荐《深入解析DB2:高级管理、内部体系结构与诊断案例》特色:

◆ 本书把DB2作为一个运行在操作系统上的普通程序,这样更容易理解DB2在系统资源方面如何与操作系统交互的。

◆ 贯穿全书的是丰富的实践案例和脚本,读者可以从这些案例和脚本中观察出作者诊断和解决问题的思路。

◆ 本书把对DB2数据库内核讲解提升到关系型数据库管理系统应具有的组件和功能高度,熟悉其他关系型数据库的读者可以触类旁通很容易理解DB2数据库。

目录

第1章 DB2底层组件 1

1.1 DB2底层组件概述 1

1.2 OSS组件 3

1.2.1 OSS组件功能 3

1.2.2 OSS组件诊断案例 5

1.3 Memory Optimizer组件 6

1.4 BSU组件 7

1.4.1 BSU组件功能 7

1.4.2 BSU组件诊断案例 8

1.5 CCI组件 9

1.5.1 CCI组件功能 9

1.5.2 CCI组件诊断案例 10

1.6 RDS组件 11

1.6.1 RDS组件功能 11

1.6.2 RDS诊断案例 12

1.7 DMS组件 13

1.7.1 DMS组件功能 13

1.7.2 DMS诊断案例 14

1.8 IXM组件 15

1.8.1 IXM组件功能 15

1.8.2 IXM诊断案例 15

1.9 BPS组件 16

1.9.1 BPS组件功能 16

1.9.2 BUFFERPOOL配置文件 17

1.9.3 缓冲描述符BPD 17

1.9.4 BUFFERPOOL管理算法 20

1.9.5 基于块的缓冲池 24

1.9.6 BPS组件诊断案例 26

1.10 DPS组件 26

1.10.1 DPS组件功能 26

1.10.2 DPS组件诊断案例 27

1.11 DB2底层组件总结 28

1.12 本章小结 29

第2章 DB2进程体系结构 31

2.1 DB2 进程技术模型 32

2.1.1 与操作系统相关的进程 34

2.1.2 与实例相关的进程 36

2.1.3 与数据库相关的进程 38

2.1.4 与应用程序相关的进程 41

2.1.5 Windows上相关的服务/线程 43

2.2 代理程序通信 44

2.2.1 代理程序概述 44

2.2.2 代理程序相关配置参数 44

2.2.3 连接集中器工作原理 47

2.2.4 应用程序、代理程序和交易 50

2.2.5 代理和连接常见问题与优化 51

2.2.6 DB2 V8、V9.1、V9.5 代理的差异性 56

2.3 实用程序相关进程 57

2.3.1 LOAD相关进程 57

2.3.2 备份/恢复相关进程 60

2.4 DB2 V9.5多线程体系结构概述 62

2.4.1 多线程简介 62

2.4.2 DB2 V9.5主要进程 64

2.4.3 监控多线程 65

2.4.4 监控EDU运行的SQL语句 67

2.5 本章小结 69

第3章 DB2内存体系结构 69

3.1 32位与64位内存寻址 69

3.1.1 32位与64位寻址空间 69

3.1.2 32位系统常见内存问题 71

3.1.3 32位系统内存寻址解决方案 71

3.2 DB2内存体系结构 72

3.2.1 实例共享内存 73

3.2.2 数据库全局内存 74

3.2.3 应用程序全局内存 79

3.2.4 代理私有内存 82

3.2.5 代理程序与应用程序通信内存 83

3.2.6 共享内存与私有内存 84

3.3 内存集、内存池和内存块 86

3.3.1 实例级别内存集 87

3.3.2 跟踪内存使用 90

3.3.3 定位内存泄漏 93

3.3.4 数据库内存集 93

3.4 内存自动调优 96

3.4.1 内存自动调优示例 98

3.4.2 启用内存自动调优及相关参数 99

3.5 本章小结 99

第4章 DB2存储内部结构 101

4.1 数据库物理存储模型 101

4.1.1 DB2存储层次结构 101

4.1.2 数据库物理目录 104

4.2 表空间存储结构 106

4.2.1 SMS表空间存储结构 107

4.2.2 DMS表空间头部信息 108

4.2.3 DMS表空间映射 109

4.2.4 STRIPE SET和RANGE 112

4.2.5 表空间重平衡 115

4.2.6 表空间高水位 118

4.3 数据库内部存储结构 124

4.3.1 数据页和RID格式 124

4.3.2 列在磁盘上的布局 128

4.3.3 数据页内部结构 130

4.3.4 索引叶内部结构 133

4.3.5 数据库物理存储限制 138

4.4 日志文件存储结构 139

4.4.1 日志存储内容 139

4.4.2 SQLOG.CTL 144

4.5 本章小结 148

第5章 DB2优化器 149

5.1 DB2优化器介绍 150

5.2 SQL语句执行过程 152

5.3 优化器组件和工作原理 154

5.3.1 查询重写示例:谓词移动、合并和转换 155

5.3.2 优化器成本评估 161

5.3.3 本地谓词基数(CARDINALITY)估计 162

5.3.4 连接基数(CARDINALITY)估计 164

5.3.5 分布统计信息 168

5.3.6 列组统计信息对基数的影响 172

5.4 扫描方式 183

5.4.1 全表扫描 183

5.4.2 索引扫描 184

5.4.3 RID SCAN 187

5.5 连接方法 188

5.5.1 嵌套循环连接 189

5.5.2 合并连接 190

5.5.3 哈希(hash)连接 191

5.5.4 选择最佳连接的策略 192

5.6 优化级别 193

5.6.1 优化级别概述 193

5.6.2 选择优化级别 197

5.6.3 设置优化级别 198

5.7 基于规则的优化 200

5.7.1 优化器概要文件概述 200

5.7.2 启用优化概要文件 202

5.7.3 优化概要文件使用示例 204

5.8 如何影响优化器来提高性能 210

5.8.1 使DB2统计信息保持最新 211

5.8.2 构建适当的索引 211

5.8.3 配置合理的数据库配置参数 212

5.8.4 选择合适的优化级别 213

5.8.5 合理的存储I/O设计 213

5.8.6 良好的应用程序设计和编码 214

5.9 优化器总结 217

第6章 高级锁 219

6.1 隔离级别和锁 219

6.1.1 可重复读 220

6.1.2 读稳定性 221

6.1.3 游标稳定性 224

6.1.4 未提交读 226

6.1.5 隔离级别加锁示例讲解 228

6.1.6 隔离级别摘要 232

6.2 加锁总结 234

6.2.1 如何获取锁 234

6.2.2 意图锁和非意图锁 236

6.2.3 读锁和写锁 236

6.2.4 LRB(Lock Resource Block) 237

6.2.5 USE AND KEEP LOCKS 237

6.2.6 索引类型和下一键锁 239

6.2.7 扫描方式加锁情况 240

6.3 乐观锁 243

6.3.1 悲观锁定和乐观锁定 243

6.3.2 DB2 V9.5的乐观锁定 245

6.3.3 乐观锁应用案例 251

6.4 内部锁 259

6.4.1 内部方案锁(Internal Plan Lock) 259

6.4.2 内部V锁(Internal Variation Lock) 260

6.4.3 内部S锁 262

6.4.4 内部C锁 262

6.4.5 其他内部锁 264

6.5 设置锁相关的注册变量 268

6.5.1 DB2_EVALUNCOMMITTED 269

6.5.2 DB2_SKIPDELETED 273

6.5.3 DB2_SKIPINSERTED 274

6.6 本章小结 276

第7章 数据库配置参数 279

7.1 数据库配置参数概述 279

7.2 监控和调优实例(DBM)配置参数 280

7.2.1 并行相关的配置参数 281

7.2.2 安全相关的配置参数 283

7.2.3 环境相关的配置参数 284

7.2.4 监视相关的配置参数 284

7.2.5 通信相关的配置参数 284

7.2.6 诊断相关的配置参数 285

7.2.7 代理程序相关配置参数 285

7.2.8 SHEAPTHRES 288

7.2.9 MON_HEAP_SZ 288

7.2.10 QUERY_HEAP_SZ 288

7.3 监控和调优DB配置参数 288

7.3.1 内存相关配置参数调整 290

7.3.2 应用程序堆大小(APPHEAPSZ) 298

7.3.3 SORTHEAP和SHEAPTHRES 298

7.3.4 SHEAPTHRES_SHR 301

7.3.5 锁相关配置参数 301

7.3.6 活动应用程序的最大数目(MAXAPPLS) 304

7.3.7 PKGCACHESZ 305

7.3.8 CATALOGCACHE_SZ 305

7.3.9 异步页清除程序的数目(NUM_IOCLEANERS) 306

7.3.10 异步I/O 服务器的数目(NUM_IOSERVERS) 307

7.3.11 组提交数目(MINCOMMIT) 308

7.3.12 AVG_APPLS 310

7.3.13 CHNGPGS_THRESH (DB) 310

7.3.14 MAXFILOP 310

7.3.15 LOGPRIMARY、LOGSECOND 和 LOGFILSZ 310

7.3.16 日志缓冲区大小(LOGBUFSZ) 311

7.3.17 STMTHEAP 312

7.3.18 DFT_QUERYOPT 312

7.3.19 UTIL_HEAP_SZ (DB) 312

7.3.20 其他数据库配置参数 312

7.4 环境变量和DB2注册表变量 313

7.4.1 DB2INSTANCE变量 315

7.4.2 DB2_PARALLEL_IO 316

7.4.3 DB2_USE_PAGE_CONTAINER_TAG 318

7.4.4 DB2_SELECTIVITY 319

7.4.5 DB2_INLIST_TO_NLJN 320

7.4.6 DB2_MINIMIZE_LISTPREFETCH 321

7.4.7 DB2_USE_ALTERNATE_PAGE_CLEANING 321

7.4.8 DB2_REDUCED_OPTIMIZATION 321

7.4.9 DB2_LIKE_VARCHAR 322

7.4.10 DB2_NEW_CORR_SQ_FF 324

7.4.11 DB2_OPT_MAX_TEMP_SIZE 324

7.5 本章小结 325

第8章 DB2数据字典 327

8.1 系统目录视图概述 327

8.2 SYSCAT系统编目视图 328

8.2.1 数据库对象信息 328

8.2.2 权限相关的系统编目视图 330

8.2.3 程序包相关的系统编目视图 332

8.3 SYSIBMADM管理视图 334

8.3.1 监控缓冲池命中率 336

8.3.2 监控PACKAGE CACHE大小 336

8.3.3 监控执行成本最高的SQL语句 337

8.3.4 监控运行最长的SQL语句 337

8.3.5 监控SQL准备和预编译时间最长的SQL语句 338

8.3.6 监控执行次数最多的SQL语句 338

8.3.7 监控排序次数最多的SQL语句 339

8.3.8 监控LOCK WAIT时间 339

8.3.9 监控LOCK CHAIN 340

8.3.10 监控锁内存使用 340

8.3.11 监控锁升级、死锁和锁超时 341

8.3.12 监控全表扫描的SQL 341

8.3.13 检查PAGE CLEANERS是否足够 342

8.3.14 监控PREFETCHER是否足够 343

8.3.15 监控数据库内存使用 343

8.3.16 监控日志使用情况 344

8.3.17 监控占用日志空间最旧的交易 345

8.3.18 监控存储路径 345

8.3.19 监控表空间使用情况 346

8.4 SYSSTAT系统编目视图 347

8.5 利用系统编目视图编写脚本案例 350

8.5.1 案例1 350

8.5.2 案例2 351

8.6 保护系统编目视图 352

8.7 本章小结 353

第9章 高级诊断 355

9.1 db2dart和inspect 355

9.1.1 db2dart和inspect概述 355

9.1.2 利用db2dart查找停顿(quiesce)表空间的用户 358

9.1.3 db2dart诊断高水位问题 360

9.1.4 db2dart诊断数据页损坏问题 362

9.1.5 inspect命令使用案例 365

9.2 db2pdcfg 366

9.2.1 db2pdcfg -cos选项 368

9.2.2 db2pdcfg-catch选项 371

9.2.3 db2pd -fodc选项 376

9.3 db2trc 376

9.3.1 db2trc 376

9.3.2 db2trc案例1 385

9.3.3 db2trc案例2 386

9.4 db2_call_stack和db2nstck 395

9.5 高级诊断案例 396

9.6 小结 400

第10章 深入讲解解释输出 401

10.1 执行计划基础 401

10.2 表访问信息 404

10.2.1 常规表访问 404

10.2.2 扫描方式 407

10.2.3 锁和隔离级别信息 411

10.2.4 谓词 412

10.2.5 临时表访问 416

10.3 排序 419

10.3.1 排序原理 419

10.3.2 共享排序与私有排序 421

10.3.3 监控排序 423

10.3.4 优化排序性能 426

10.4 预取方式 428

10.4.1 数据库预取概念 428

10.4.2 顺序预取 430

10.4.3 列表预取 432

10.4.4 提高预取性能 436

10.5 连接信息 437

10.5.1 嵌套循环连接(NLJOIN) 438

10.5.2 合并连接(MSJOIN) 439

10.5.3 哈希连接(HSJOIN) 440

10.5.4 外连接 442

10.6 IndexORing和IndexANDing 443

10.6.1 IndexORing案例 443

10.6.2 IndexANDing案例 445

10.7 其他输出信息 447

10.7.1 数据流信息 447

10.7.2 插入、更新和删除信息 449

10.7.3 并行处理信息 450

10.7.4 其他说明信息 451

10.8 基于执行计划的优化案例 453

10.9 本章小结 470

参考文献 471

……[看更多目录]

序言前 言

数据库内核是数据库系统稳定运行的心脏,DB2数据库内核庞大而复杂。本书从DB2内核组件入手,同时介绍了其与操作系统在进程、共享内存、信号量之间的关系。作者在本书中重点介绍了各个内部组件的层次与功能、内存内部结构、存储内部结构、高级锁等。优化器是任何数据库执行SQL的关键部分,本书对优化器产生的各种执行计划进行了详细解释,这对理解DB2内部工作原理大有裨益。同时,本书还介绍了DB2各种诊断工具的使用,各种数据库配置参数含义及调整、数据库系统视图等。

本书结构

第1章 DB2底层组件。本章介绍了支撑DB2数据库管理系统运行的各个组成部分,使得用户可以了解到DB2的内部工作机制。通过了解这些组件,用户对实际中碰到的各种问题更加容易地找到具体故障点。本章在介绍CCI、RDS、DMS、IXM、BPS、DPS等组件的同时,还对各个组件给出了故障诊断案例。

第2章 DB2进程体系结构。本章介绍了DB2系统在不同平台上的进程模型。面对众多的进程/线程,作者将进程划分为与操作系统相关、与实例相关、与数据库相关和与应用程序相关的几类进程。本章还研究了DB2代理通信的工作原理,以及几个经常混淆的概念——交易、应用程序、代理之间的关系。本章最后介绍了与DB2备份、恢复、LOAD等实用程序有关的进程,并提及DB2 V9.5的多线程体系结构。

第3章 DB2内存体系结构。内存是DB2从操作系统获取的最重要资源,本章介绍了DB2中内存集、内存池、内存块这三种内存的分配、回收机制。DB2从操作中申请到的内存主要被实例、数据库、应用程序所消耗,本章讲述了各个消耗单位与配置参数之间的关系。

第4章 DB2存储内部结构。存储模型是数据库系统在磁盘上存放数据的组织形式,主要包括各种配置文件、数据文件、日志文件的存放位置、格式定义等。本章详细讲解了表空间的物理存储结构,包括SMS表空间、DMS表空间。更进一步,作者详细解释了一行数据在一个数据页面上的存放格式,同时介绍了索引页的组织形式。

第5章 DB2优化器。优化器是数据库管理系统中产生执行计划的组件,本章主要介绍了DB2优化器的工作原理。本章解读了执行计划中常见的操作以及它们的性能优劣,如索引扫描、表扫描、合并连接、嵌套循环连接、Hash连接等。本章还介绍了对于不同的优化级别DB2系统所采用的优化算法的差别,以及与Oracle类似的基于规则的优化。作者还就如何影响优化器以产生我们期望的执行计划给出了一些建议,如更新统计信息、构建索引、修改配置参数等。

第6章 高级锁。本章介绍了DB2在读取、写数据时的加锁工作过程,讲述锁在DB2中的内部结构以及在不同平台、位长上的区别。乐观锁是DB2 V9.5最新推出的功能,作者在本章中将其与传统的悲观锁进行对比,并详细解释了如何使用。本章同时还介绍了DB2内部使用的锁。

第7章 数据库配置参数。DB2各种配置参数对系统有着很大的影响,本章从数据库管理器参数、数据库参数、注册变量三个层面详细介绍了各种参数的调整方法,包括调整前观察的监控点、调整的范围、调整后产生的影响等。

第8章 DB2数据字典。本章介绍了SYSCAT模式、SYSIBMADM模式以及SYSSTAT模式下的数据字典包括的内容。这些数据字典能够帮助我们对DB2进行日常的管理、调优工作。本章详细讲解了利用SYSIBMADM模式下的数字字典进行数据调优的过程。

第9章 高级诊断。本章介绍了在数据库启动失败时如何利用脱机高级工具db2dart在物理层面上诊断坏页。同时,作者还介绍了新的联机高级工具inspect的使用方法。db2trc工具是一个函数级诊断工具,它能够跟踪出DB2执行了哪些函数以及消耗的时间。

第10章 深入讲解解释工具输出。本章通过各种解释工具讲解了如何解读工具产生的执行计划。对这些执行计划中经常碰到的表扫描、索引扫描、临时表等的性能差异进行了比较。本章还详细讲解了DB2排序工作原理,以及如何在执行计划中查看排序资源需求和如何优化排序性能。预取是提高数据库IO性能的一个好方法,作者讲解了预取的概念、预取分类,并给出提高预取性能的指导意见。

致谢

本书在出版的过程中得到了清华大学出版社王军编辑的大力支持!这套DB2书籍从选题、审稿到出版无不得到他的热心帮助,在此致以深深的谢意!

感谢我的好兄弟骆洪青和袁春光,他们审核了书中的大部分章节。同时也感谢中信银行的胡瑞娟、苏兰芳和我的师弟林春,他们审核了部分章节并从用户的角度给我提出了很多宝贵的建议!

最后,谨以此书献给我可爱的女儿,她是个小天使,是上天对我最好的恩赐!

序一

DB2 数据库进入中国其实已经很多年,还依稀记得本人安装的第一套基于DB2数据库的SAP系统还是在10多年前的事情了,随着DB2在技术上的逐步完善和发展越来越多的企业用户加入了DB2的行列。

令人感到遗憾的是,与越来越庞大的DB2用户群和逐渐深入的系统应用相比,与之配套的相关中文资料却相当匮乏。除了一些从原版翻译的入门资料外,几乎没有任何全面阐述系统性能调优之类的进阶书籍,面对出现的各种问题,很多用户都只能依靠在网上搜索一些零星的知识点或解决方案,虽然也能暂时地应付一些突发的问题,但很多时候还是处于头痛医头,脚痛医脚的阶段。对DB2数据库系统性能优化的整体解决方案缺乏了解。犹如置身于一个巨大迷宫一隅,仅仅靠着身边微弱的烛光艰难前行。

数据库性能调优的需求一直贯穿于整个数据库运行的始终,也是直接关系到以数据库为基础的各种应用软件运行效率。本人从事SAP系统性能优化10多年,其中很大一部分的工作也是在数据库层面上。深感数据库性能调优的重要性。过去一直苦于没有系统全面的DB2方面的资料,只好靠自己慢慢摸索,虽然花费了大量的实践和精力,但效果依然不尽如人意。

一直期盼能有一本理论联系实际,透彻分析数据库工作原理并结合实际案例的工具书来提高工作效率。

纵观当今业内, 我们并不缺少数据库方面的理论宗师, 更不缺乏技术娴熟的实践高手。 但同时身兼两大绝学并且将自己的多年积累的实践经验与广大DB2用户分享的,牛新庄博士当属国内第一人。

本书的出版,填补了国内在这方面的空白,书中将各种离散的知识点有机地的结合起来并以全新的视角来俯瞰整个数据库的性能问题,使广大DB2数据库用户有了一个事半功倍的利器。

本书完全应该成为DB2数据库从业者以及相关技术人员人手一本的工具书。

前SAP大中国区核心技术中心经理

在SAP技术领域有着极为丰富的实践经验和专业知识背景,尤其擅长大型系统架构设计和系统性能调优

国内顶尖SAP Basis 顾问

上海建功思域信息科技有限公司 董事总经理

张挺

2009年5月

序二

这些年我负责中国DB2的售前技术团队,认识牛新庄已经好多年了。其中印象很深的是2006年与他的几次交流,我们讨论了许多数据库的实用技术,用户在数据库管理和应用方面的主要挑战。他丰富的实战经验给我留下了极深的印象。那时他正在参加首届中国数据库工程师大赛,最终获得了最高的杰出数据库工程师大奖。

新庄是国内较早使用DB2的技术人员。他从1999年开始使用DB2 V5.2,后来在工作中又学习了AIX、WebSphere、CICS和MQ等IBM技术,对Informix和Oracle等数据库也有非常深的理解。这些年他作为IBM培训部的资深认证讲师在国内讲解数据库技术,推动DB2在国内的传播。从2001年至今,新庄作为独立咨询顾问往返于国内大中城市,在金融六大行(工农中建交招)、农信、证券(国泰君安、海通、大通等)、电力(江苏电力公司、云南电力公司、山东电力公司等)、保险(中国人寿、信诚、平安等)、电信、邮政、移动(北京移动、上海移动、江苏移动、广东移动、天津移动、湖南移动、西藏移动、新疆移动、山东移动、吉林移动等)、青岛海尔、云南红塔、中远集团、宝钢等行业和国内中小企业之间做数据库架构设计、维护、问题诊断和性能调优。

其深厚的产品知识和丰富的阅历和经验使得他在对一些疑难问题的判断和处理上有独到的见解。他往往能够跳出固有的框架从一个广阔的视角来认识和分析,并通过多年积累的方法论逐步排查,最终找到解决的方法。这一点在许多大型用户的案例中都得到了有效的印证,这些年我听到了很多大型用户对新庄技术的高度认可。

DB2的学习资料在其信息文档和网络中有很多,然而由拥有丰富实践应用经验的专家来总结的DB2书籍相对较少。新庄写的这套书特点是注重实用,内容由浅及深,涵盖DB2的管理、运行维护、应用开发、内核及架构的剖析,以及性能调整和优化,我认为本套书将一系列相关的分散知识点真正形成了一个知识面。用好DB2数据库实际上涉及很多方面,不仅仅是数据库本身,而且需要考虑操作系统、存储规划、数据模型设计、应用开发设计、数据库的合理配置和运行监控等一系列相关的内容。

本套书不仅从产品的角度来介绍DB2,而且从实战的角度来剖析基于DB2的设计和应用。一个好的应用系统应该考虑哪些问题,如何有效管理维护好DB2系统,常见的故障如何排查及解决,在应用开发中如何有效使用DB2的特性。本书系统性地总结了DB2的发展历史,从一个系统构建生命周期的角度介绍了DB2数据库的安装、使用、开发、管理、 运行、调优的全过程。深入DB2内部剖析其核心架构,结合案例分享实战应用调优的经验。尤其是《DB2数据库性能调优和优化》这本书浓缩了新庄自己在应用DB2的心路历程,内容覆盖了系统的整体设计规划,DB2与性能相关的内部核心技术和架构,关键的相关应用设计要点,以及稳定运行监控所应考虑的内容。最难得的是作者分享了多年积累的DB2性能调优案例,使读者有可能在实际的环境中去了解解决复杂问题的思路,将基本的理论和技术与实战进行结合。

这套书不仅是新庄10年DB2应用经验的总结,更是他10年对DB2数据库的热爱的结晶。今天国内已有越来越多的技术人员在使用DB2,我相信这套书能对学习和使用DB2提供很大的帮助。希望它能成为您DB2旅程上的一个朋友,为您答疑解惑,点亮您前进的道路。

刘晶炜 IBM 软件部中国区 DB2技术经理

2008.11.2 于北京

序三

与牛新庄的接触源于10年前在大学里一起做项目,那时“恰同学少年”,虽无伟人们指点江山之意气风发,却也会因一个技术难题的攻克而一道去学校里排挡大快朵颐。牛新庄对技术追求之不懈在学校中就已经展现出那种“为依消得人憔悴,衣袋渐宽终不悔”的境界。在21世纪初的狂热的互联网大潮中,牛新庄从纷繁复杂的IT技术中选择了数据库作为自己的主攻方向并且一直持续至今,是为一纲举而百目张,终于成为国内数据库顶尖级高手。

牛新庄涉猎极广,他从数据库出发,向下延伸至操作系统,存储,向上延伸至中间件,几乎所有企业应用涉及的平台他都有广泛而深入的研究,如AIX,HP-UX,IBM存储、EMC存储、Oracle、DB2、Websphere、CICS、MQ等。这些知识的融会贯通使得牛新庄在解决客户碰到的各种实际问题时,如庖丁解牛般游刃有余。牛新庄在各种实践的基础上不断总结,能够从更高的视角反思DBA遇到的各种问题,并且上升到方法论,始有这套书的雏形。

DB2的学习资料在其信息文档和网络中有很多,但知识点分散,多不成体系,更是缺乏专家实践应用经验总结. 这个套书凝聚了牛新庄大量的心血,是其10年DB2应用经验的总结。这套书特点是注重实用,内容由浅及深,涵盖DB2的管理,运行维护,应用开发,内核及架构的剖析,以及性能调整和优化。书中还有大量的提示点,虽只有寥寥数语,确实作者多年或成功或失败的DB2实践体会,值得读者反复回味。

DB2数据库系统对外表现出优异性能和高可靠性,这来源于DB2良好的内核设计,本书是国内第一本全面介绍DB2内核的专业书籍。本书从操作系统角度解读DB2在进程、内存、存储方面的工作原理。从整体上来说,本书适合于接触过DB2希望更加深入学习的朋友。对于刚刚接触DB2的朋友本书则稍显艰涩,这需要您有一定的耐心和坚持——这两点恰恰是迈向成功的不二法门。看过第一遍后,不能理解书中讲所有内容的朋友也不必灰心,好的书总是要反复咀嚼的,到您把本书翻破的时候必有收获。本书的目标就是帮助读者在解决实践中碰到的各种DB2问题时可以做到知其然,同时还知其所以然。

北京银信长远软件技术有限公司 总经理

数据库高级专家

骆洪青

2009-4

文摘DB2进程体系结构

UNIX和Linux用户通常会检查运行在其服务器上的进程或线程,以分析可能的问题及检查服务器中消耗的资源。该信息不仅对执行问题和资源分析的系统管理员有用,而且对于那些开发确保应用高度可用性和处理故障转移脚本(这些脚本监控DB2进程,以确定何时需要进行诸如数据库重新启动或服务器故障转移之类的操作)的数据库管理员也很有用。

如果您正在使用AIX,则可以使用命令“ps-ef”检查进程。在Solaris和HP-UX上,“ps-ef”将只显示所有服务器端进程(例如代理程序、记录器、页面清除程序和预取程序)的db2sysc进程(主DB2引擎进程)。如果您正在使用Solaris和HP-UX,利用命令“/usr/ucb/ps -axw”您可以看到这些服务器端进程。这两种版本的“ps”命令都可以在Linux上使用。

当在运行DB2数据库客户机或服务器的计算机上执行该命令时,您可能会看到列出了多个DB2进程。本章的目的是详细讲解这些进程的工作原理,并解释它们的作用以及它们何时可能会运行。通过本章内容,您将会理解每个DB2进程,当您看到这些进程时,您会明白DB2正在执行什么操作。

本章主要讲解如下内容:

● DB2进程技术模型

● 代理进程通信

● 实用程序相关进程

● DB2 V9.5多线程体系结构

2.1 DB2 进程技术模型

DB2进程技术模型的知识可以帮助您确定问题的性质,因为它会帮助您理解数据库管理器和与其相关联的组件如何交互作用。所有DB2服务器使用的进程技术模型使数据库服务器与客户机以及本地应用程序之间的通信更加容易。它还确保数据库应用程序独立于数据库控制块和关键数据库文件之类的资源。

对于正在访问的每个数据库,启动各种引擎调度单元(Engine Dispatchable Unit,EDU)以处理各种数据库任务,例如预取、通信和日志记录。数据库代理程序是一类特殊的EDU,创建它们是为了处理数据库的应用程序请求。

数据库会为每个客户机应用程序连接分配一个协调代理程序。协调代理程序代表应用程序工作,并根据需要使用专用内存、进程间通信(IPC)或远程通信协议与其他代理程序通信。

DB2进程体系结构提供一个防火墙,以便应用程序在不同于DB2的地址空间中运行。防火墙将数据库和数据库管理器与应用程序、存储过程和用户定义的函数(UDF)隔开。防火墙维护数据库中数据的完整性,原因是它禁用应用程序编程错误覆盖数据库管理器的内部缓冲区或文件。防火墙还提高了可靠性,原因是应用程序错误不能使数据库管理器崩溃。

……[看更多书摘]

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有