编辑推荐
暂无
内容简介
本书是一本专门介绍ORACLE系统数据存储与访问技术的学术专著,内容涉及数据存储效率与访问优化的一系列核心问题,也是深入ORACLE系统数据管理、性能调优、应用开发的技术基石。理解和掌握本书中阐述的系列内容及其技术细节,是读者进入精彩的ORACLE世界的必由之路。
作者围绕ORACLE系统的内部数据存储及其访问机制展开介绍,叙述角度由宏观到微观、由整体到局部、由上层到底层,多层次向读者展示海量数据存储与访问背后的各种支持技术及其应用方法,内容包括逻辑与物理存储结构、事务处理与版本控制、大表分区与索引维护、多表联接与访问、性能度量、封锁与争用、等待事件、并行处理等影响数据存储与访问效率的多个方面。本书叙述简洁,内容精炼,具有很强的针对性,特别适合IT领域的系统管理人员、大数据系统的研究人员阅读,同时对从事数据管理与数据处理技术的相关教师、研究生也具有很高的参考价值。
作者简介
目录
第1章 ORACLE的物理存储及其管理 ;
1.1 tablespace与存储空间 ;
1.2 系统表空间与数据字典 ;
1.2.1 system和sysaux表空间 ;
1.2.2 数据字典(data dictionary) ;
1.3 临时信息与临时表空间 ;
1.4 回滚信息与回滚表空间 ;
1.4.1 回滚段的分类 ;
1.4.2 创建回滚段 ;
1.4.3 管理回滚段 ;
1.4.4 undo空间及其自动管理 ;
1.5 数据库表空间的存储结构 ;
1.5.1 表空间的存储关系 ;
1.5.2 表空间的存储参数设置 ;
1.5.3 表空间的维护 ;
1.6 数据库文件管理 ;
1.6.1 控制文件的管理 ;
1.6.2 数据文件的管理 ;
1.6.3 联机日志的配置与管理 ;
1.7 OMF方式管理文件 ;
1.8 闪回恢复区fra ;
1.8.1 闪回恢复区的作用 ;
1.8.2 配置闪回恢复区 ;
1.8.3 闪回恢复区的文件保留策略 ;
1.8.4 使用闪回恢复区 ;
1.9 RAID磁盘阵列存储 ;
1.9.1 RAID存储规范 ;
1.9.2 ORACLE的RAID存储方案建议 ;
第2章 自动存储管理与ASM数据库 ;
2.1 自动存储的主要概念 ;
2.2 ASM的系统结构 ;
2.3 准备ASM存储设备 ;
2.3.1 LVM与ASM ;
2.3.2 创建raw device ;
2.3.3 标识ASM磁盘 ;
2.4 ORACLE集群同步服务CSS ;
2.5 创建并启动ASM实例 ;
2.6 在ASM实例中创建磁盘组 ;
2.6.1 磁盘组的冗余级别 ;
2.6.2 创建ASM磁盘组 ;
2.6.3 在ASM实例中加载磁盘组 ;
2.7 ASM实例与RDBMS实例的关系 ;
2.8 直接创建ASM数据库 ;
2.9 将现有数据库迁移至ASM ;
2.9.1 启用基于磁盘组的OMF ;
2.9.2 迁移控制文件至ASM磁盘组 ;
2.9.3 迁移数据文件至ASM磁盘组 ;
2.9.4 切换数据库至ASM磁盘组上运行 ;
2.9.5 迁移临时表空间 ;
2.9.6 迁移联机日志文件 ;
2.9.7 关于闪回日志和块跟踪文件 ;
2.10 ASM信息与ASM文件管理 ;
2.10.1 动态性能视图 ;
2.10.2 ASM磁盘文件管理 ;
2.10.3 ASM命令行工具 ;
第3章 数据块结构 ;
3.1 data block描述 ;
3.2 data block结构 ;
3.3 行链接与行迁移 ;
第4章 ITL与事务处理 ;
4.1 ITL描述 ;
4.2 ITL等待 ;
4.3 ITL实验案例 ;
4.4 ITL进一步研究 ;
4.5 ITL与CR块 ;
第5章 数据块损坏的修复 ;
5.1 数据块损坏描述 ;
5.2 数据块损坏的检测 ;
5.2.1 初始化参数设置 ;
5.2.2 RMAN检查 ;
5.2.3 dbverify工具 ;
5.2.4 其他工具检查 ;
5.3 数据块损坏的模拟和修复 ;
5.3.1 段与存储数据块 ;
5.3.2 模拟数据块损坏 ;
5.3.3 基于块的数据恢复 ;
第6章 dump数据块 ;
6.1 block dump描述 ;
6.2 dump数据块 ;
6.3 dump索引块 ;
第7章 系统改变号SCN ;
7.1 SCN描述 ;
7.2 SCN与数据恢复 ;
7.3 SCN数据恢复案例 ;
第8章 伪列pseudo column ;
8.1 伪列描述 ;
8.2 常用伪列的研究 ;
8.2.1 伪列rowid ;
8.2.2 伪列rownum ;
8.3 伪列ora_rowscn研究 ;
8.4 伪列level与层次查询 ;
第9章 表存储结构与访问优化 ;
9.1 存储结构中的块 ;
9.1.1 块结构及其控制参数 ;
9.1.2 行迁移与行链接 ;
9.2 正确设置参数pctfree ;
9.3 避免行迁移与行链接 ;
9.3.1 行迁移与行链接的检测 ;
9.3.2 行迁移与行链接的消除方法 ;
9.4 消除迁移行和链接行实例 ;
9.5 高水位线HWM
9.6 表存储统计实验
9.6.1 验证表结构
9.6.2 发现行迁移
9.6.3 收集统计信息
9.6.4 表分析实验
第10章 分区Partition技术
10.1 分区Partition概述
10.2 表分区的基本类别
10.2.1 范围分区(by range)
10.2.2 列表分区(by list)
10.2.3 散列分区(by hash)
10.2.4 间隔分区(by interval)
10.3 基本分区的复合
10.4 分区索引技术
10.4.1 索引分区与表
10.4.2 本地分区索引
10.4.3 全局分区索引
10.5 分区表与索引的维护
10.6 分区交换及其应用
10.7 联机分区处理
第11章 数据访问之多表联接
11.1 多表联接概述
11.2 联接条件和类型
11.2.1 笛卡尔乘积
11.2.2 多表的条件联接
11.2.3 避免使用子查询
11.3 多表联接的方法
11.3.1 嵌套循环
11.3.2 融合联接
11.3.3 哈希联接
11.3.4 三种联接方式比较
第12章 数据访问之ORACLE索引
12.1 ORACLE索引概述
12.2 b树索引和bitmap索引
12.2.1 b树索引结构
12.2.2 bitmap索引结构
12.2.3 对null值的索引
12.3 聚簇因子
12.3.1 计算聚簇因子
12.3.2 对访问性能的影响
12.4 索引分析与重建
12.4.1 索引分析与统计
12.4.2 查询索引状态及使用信息
12.4.3 索引重建
12.5 与索引有关的参数
12.6 访问索引的方式
12.6.1 索引扫描方式
12.6.2 两类数据块扫描
12.7 b树索引的维护机制
12.7.1 insert操作的b树维护
12.7.2 delete操作的b树维护
12.7.3 update操作的b树维护
12.8 复合索引的使用
12.8.1 两个使用原则
12.8.2 复合索引和order by
12.9 关于索引使用的建议
第13章 数据库访问性能的几个基本问题
13.1 内存问题
13.2 CPU利用率
13.3 I/O问题
13.4 高资源消耗的SQL
13.5 引发性能瓶颈的应用问题
13.6 OLTP与OLAP
第14章 性能问题的度量手段
14.1 性能调优的度量概述
14.2 explain解释SQL
14.2.1 配置explain
14.2.2 获得执行计划
14.3 语句级跟踪autotrace
14.4 会话级跟踪sql_trace
14.4.1 设置SQL跟踪
14.4.2 tkprof格式化跟踪文件
14.5 扩展的SQL跟踪
第15章 ORACLE锁机制与锁争用问题
15.1 ORACLE数据库的锁类型
15.2 数据访问过程中的加锁
15.3 与锁有关的字典参数与指令
15.3.1 有关锁的数据字典视图
15.3.2 有关锁的初始化参数
15.3.3 事务的隔离级别
15.4 锁争用与死锁
15.4.1 量测锁争用
15.4.2 处理死锁
15.5 锁存器latch
15.5.1 锁存器机制
15.5.2 检查latch争用
第16章 wait与time响应问题
16.1 基于wait的性能问题描述
16.2 用户响应的时间模型
16.2.1 CPU服务时间
16.2.2 等待事件及等待时间
16.3 统计项与等待事件
16.4 db time和db CPU
16.5 top SQL说明
16.6 等待事件直方图
第17章 等待事件接口与性能调整
17.1 性能与等待事件
17.2 常见的等待事件及其描述
17.3 等待事件不能反映的信息
17.4 收集等待事件信息
17.5 利用等待事件发现性能瓶颈
17.5.1 一个慢速查询的处理
17.5.2 耗时的调度批处理
17.5.3 客户服务器应用中的等待事件
17.5.4 疲于应付的数据库服务器
17.6 等待事件接口小结
第18章 并行处理与访问技术
18.1 并行处理技术概述
18.2 SQL语句的并行处理
18.2.1 串行处理与并行处理
18.2.2 并行处理的主要概念
18.3 并行处理的性能提升
18.4 并行处理的适应性
18.4.1 多CPU主机系统
18.4.2 分布式存储
18.4.3 资源密集型SQL
18.4.4 批量数据扫描
18.5 控制并行处理
18.5.1 确定并行度
18.5.2 使用并行提示hint
18.5.3 调整与并行处理有关的参数
18.6 并行处理的执行计划
18.7 实时的并行处理信息
18.8 并行处理的跟踪
18.9 并行处理实例
18.9.1 并行数据更新
18.9.2 并行数据添加
18.9.3 DDL的并行处理
18.9.4 并行索引访问
18.10 并行处理的优化
18.10.1 并行处理的一般性原则
18.10.2 部分并行化与完全并行化
18.10.3 监控实际运行中的并行度
18.10.4 并行处理进程的负荷分配
18.10.5 RAC环境下的并行处理
参考文献
后记
免费在线读
计算机学科是一个应用性极强的领域,其计算理论只有与软件技术相结合才能在实践中提高软件的生产力和服务效率。目前无论在学术界还是产业界,关于大数据的研究与应用方兴未艾。这里的“大”不仅指数据量大、存储量大,同时也指计算量大、访问量大。面对这些“大”的问题,在工程应用中往往伴随着存储和访问的“效率”和“性能”问题。基于现有的技术背景和应用环境,如何有效地解决在海量数据条件下的数据存储和访问的效率、性能的瓶颈问题是一项值得研究的工程应用课题。
现代数据系统的两项核心功能就是为用户提供业务数据的存储和数据访问服务。作为数据存储与服务系统的开发商,他们总是倾向于为用户提供标准的访问接口,如ANSI/ISOSQL、RPC、OLEDB、JDBC等,借助于这些接口,用户可以方便地访问各类数据中心及其服务器。但随着数据量的增加及海量数据处理的需要,访问的效率成为越来越多的应用系统需要关注的问题。如何有效地提高用户的访问效率?仅靠通用的访问接口是不够的,我们需要对现代数据库系统的内部机制有深入的研究,只有这样,才能在系统服务的基础上更好地利用服务器本身的存储资源、计算资源等。
作者长期从事海量数据系统的开发、管理与维护研究,近年来重点关注海量数据系统的性能调整与优化。本书是作者在大量工程实践基础上将数据存储与访问效率方面的共性问题做出的阶段性总结。为了使本书的内容具有更好的针对性,我们选择在国内外得到广泛应用的ORACLE系统作为讨论对象,以提高应用系统的数据访问效率为主线,重点讨论影响用户业务数据存储和访问效率的各个主要方面,内容包括ORACLE数据库的物理和逻辑存储结构、事务处理过程与数据的多版本控制、大表分区与索引维护、多表联接与访问、性能问题的度量、封锁与争用、等待事件、并行处理等。通过对这些问题的讨论,目的是向读者展示提高ORACLE系统存储和访问效率的各种技术途径。
为了实现上述目标,我们对全书内容的组织做了精心的规划与设计。虽然目前业界实际部署的ORACLE系统存在多个不同版本,但面对海量数据存储和访问,这些不同版本、不同平台下的ORACLE系统在性能和效率方面遭遇的问题是大致相同的、相通的。本书将这些共性问题循序渐进地组织为十八章,内容从存储的逻辑架构到底层的物理结构,从访问的技术路径到访问的并发处理等。具体内容分述如下:
第一章和第二章从整体上阐述了ORACLE数据库系统的逻辑存储结构及其物理存储形态,包括表空间、闪回恢复区、RAID、ASM等重要内容。这两章是全书讨论的技术基础。
第三章探讨了ORACLE数据库系统的基本存储单元——数据块,这是ORACLE最重要的存储结构,对它的分解和认识构成了一切数据存储的微观世界。
第四章在第三章的基础上讨论了事务处理过程在数据块上的实现机制,包括对多版本数据读一致性的理解,几乎所有的数据访问都涉及到数据块级别的微观处理。
第五章和第六章的内容是第三章和第四章的延续,通过对数据块讹误的处理、数据块的导出(dump)内容的分析进一步认识ORACLE系统的微观存储单元。
第七章讨论了ORACLE数据库内部的一个重要物理量SCN,数据存储、数据访问、数据恢复、事务处理都要依赖于该物理量。
第八章专门讨论了ORACLE系统各种伪列的意义及其应用。善于利用伪列是认识数据存储和提高访问效率的必备技能。
第九章专门探讨与表有关的存储结构与访问机制,包括存储参数、高水位线、行链接和行迁移的检测与消除、表分析与统计等内容,这些都是影响表访问效率的因素。
第十章讨论ORACLE的分区技术,包括表分区和索引分区。针对应用需求灵活运用各种分区技术是实现高效海量数据处理的重要手段。
第十一章探讨各种多表联接方法及其应用场景。确定多表联接的方法和分析多表联接的有效性是提高SQL语句访问效率的手段之一。
第十二章集中讨论了关于索引的话题,包括索引类别、索引参数、索引的分析与重构、索引的访问方式、索引维护、索引的价值等多个方面。高效的数据访问离不开索引的支持。
第十三章和第十四章分别描述了在有限服务器资源的情况下,数据访问性能的一般性瓶颈,以及性能问题的主要度量手段。
第十五章专门讨论了关于锁的问题,包括锁的类别、锁的争用、死锁及其解决方法等与并发访问有关的共性问题。
第十六章和第十七章集中探讨了关于等待事件及其接口问题,这是从服务器内部资源冲突的角度讨论数据访问的性能问题,其中包括介绍用户响应的时间模型、利用等待事件发现性能瓶颈等内容。
第十八章专题讨论了数据库服务器内部的并行处理技术。在多处理器、分布数据存储的条件下,适当利用并行处理机制,是有效提高数据访问效率的重要手段。
技术的价值在于应用。本书着重从应用的角度去探讨数据存储与访问方面的问题,上述十八章的内容分别从不同的侧面探索了提高ORACLE系统数据存储和访问效率的可能途径。在此需要说明的是,在解决工程实践中的性能和效率问题时,往往需要结合具体的应用背景灵活运用、综合实施不同的技术手段辩证地分析问题和解决问题。希望本书的出版对此类技术的推广与应用有所裨益,在此感谢电子工业出版社的大力协助。另外,研读本书需要有较好的ORACLE技术基础。相信读者在阅读完本书的全部内容后,对ORACLE系统的认识一定会得到质的升华。
本书由贾代平同志主笔,吴丽娟同志编写了其中的第七章和第八章,最后由贾代平同志统稿。限于作者的水平和个人认识上的局限性,书中存在缺陷、不足也在所难免,欢迎读者对本书的疏漏之处给予批评指正,并提供任何意见和建议,作者在此表示衷心的感谢。同时作者愿意通过邮件与读者交流与本书相关的各类技术问题,并为读者提供必要的技术支持。联系邮箱:jiadp@163169.net。
贾代平
2013年5月
……
ORACLE数据存储与访问技术 pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版