oracle体系结构

发布 2021-05-02 13:35:28 阅读 6228

窗体顶端。

dotnet j**a datamining

知识改变命运,datamining,j**a,c/c++

博客园: 首页: 新随笔: 联系: 订阅: 管理

posts - 29, comments - 22, trackbacks - 0

与我联系。发短消息

搜索。常用链接。

我的随笔。我的空间。

我的短信。我的评论。

更多链接。我的参与。

我的新闻。最新评论。

我的标签。留言簿(9)

给我留言。查看留言。

随笔档案(29)

2023年3月 (1)

2023年2月 (5)

2023年1月 (10)

2023年11月 (1)

2023年7月 (1)

2023年1月 (6)

2023年12月 (2)

2023年11月 (3)

文章档案(1)

2023年11月 (1)

相册。什刹海。

数据挖掘blog

数据挖掘邮件列表。

我的google主页。

我的google主页,english home page

数据挖掘经典资源。

rabbit blog

月亮的别称 [moon]。如:兔魄,兔轮,兔月(月亮的别名);兔钩(弯月);兔宫(月宫);兔起鸟沉(月出日落);兔辉(月光);兔阙(月宫);兔华(明月)

最新随笔。1.经过2个星期的日夜奋战,终于答辩完了。

2.已经信息化的我们能否想起使用或第一想起用信息化的手段办事。

3.对一个懒散的国家或个人,没有什么比成功更令人鼓舞。

4.8小时是能做很多事的。

5.这几天做**,作为消遣看了一本很棒的书《金钱魔杖——现代犹太商法》

6.新的年又完全开始了,回到了北京,一切又是那么忙碌。

7.生活工作无小事。

8.把有限的精力放在最有意义的事上。

9.保尔·柯察金的那句话太对了,原来人最不能忍受的是碌碌无为。

交叉查询。如何生成动态交叉表查询-zz

12.玖玖精品软件**基地,当前最棒的软件基地。

13.管理十大经典理论终生受用。

14.成长中应该知道的20个故事--不错的噢。

15.05年内最经典语言解析。

16.2023年,希望是我更有收获的一年,也是大家更有成就的一年。

体系结构(architecture of oracle)

18.中国软件业失望与希望--超有理的文章。

19.论程序员应具备的职业素质。

常用命令大汇总。

最新评论 internet与intranet中的人工智能技术

不错的内容,内容信息很多,了解不少相关信息。幸苦了楼主。

--孤剑。阅读排行榜。

1.05年内最经典语言解析(3915)

的作用及重要接口(2040)

3.世界500强名称中英对照 (1877)

4.数据挖掘术语简介(1703)

常用命令大汇总(1261)

评论排行榜。

1.数据挖掘术语简介(5)

2.欢迎大家访问我的blog(4)

与intranet中的人工智能技术(3)

4.已经信息化的我们能否想起使用或第一想起用信息化的手段办事(2)

体系结构(architecture of oracle)(1)

oracle 体系结构(architecture of oracle)

oracle 体系结构。

architecture of oracle)

第一部分:oracle8i体系结构。

第一章。 概要。

在本章里你可以了解以下内容。

1、 理解oracle 实例的组成。

2、 理解oracle 数据库的组成。

3、 理解oracle内存结构的组成。

4、 理解后台进程的作用与分工。

5、 理解数据库的物理文件与对应的逻辑结构。

6、 理解oracle的整体构架。

第二章。 理解oracle实例。

2.1 oracle server

oracle是一个可移植的数据库——它在相关的每一个平台上都可以使用,即所谓的跨平台特性。在不同的操作系统上也略有差别,如在unix/linux上,oracle是多个进程实现的,每一个主要函数都是一个进程;而在windows上,则是一个单一进程,但是在该进程中包含多个线程。但是从整体构架上来看,oracle在不同的平台上是一样的,如内存结构、后台进程、数据的存储。

一个运行着的oracle数据库就可以看成是一个oracle server,该server由数据库(database)和实例(instance)组成,在一般的情况下一个oracle server包含一个实例和一个与之对应的数据库,但是在特殊情况下,如8i的ops,9i的rac,一个server中一个数据库可以对应多个实例。

一系列物理文件(数据文件,控制文件,联机日志等)的集合或与之对应的逻辑结构(表空间,段等)被称为数据库,简单的说,就是一系列与磁盘有关系的物理文件的组成。oracle内存结构和后台进程被成为数据库的实例,一个实例最多只能安装(mount)和打开(open)在一个数据库上,负责数据库的相应操作并与用户交互。

实例与数据库的关系如下图所示:

图一 oracle server

2.2 oracle内存结构 (memory structure)

2.2.1 内存结构的组成。

oracle内存结构主要可以分共享内存区与非共享内存区,共享内存区主要包含sga(system global area),非共享内存区主要由pga(program global area)组成,可以用如下图形表示。

图二 oracle memoery structrue

2.2.2全局共享区system global area(sga)

system global area 是一块巨大的共享内存区域,他被看做是oracle 数据库的一个大缓冲池,这里的数据可以被oracle的各个进程共用。其大小可以通过如下语句查看:

sql> select * from v$sga;

name value

fixed size 39816

variable size 259812784

database buffers 1.049e+09

redo buffers 327680

更详细的信息可以参考v$sgastat、v$buffer_pool

主要包括以下几个部分:

2.2.2.1共享池(shared pool)

共享池是sga中最关键的内存片段,特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能,使系统停止,太大的共享池也会有同样的效果,将会消耗大量的cpu来管理这个共享池。不正确的使用共享池只会带来灾难。

共享池主要又可以分为以下两个部分:

1、sql语句缓冲(library cache)

当一个用户提交一个sql语句,oracle会将这句sql进行分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个sql,oracle会把他的分析结果给保存在shared pool的library cache中,当数据库第二次执行该sql时,oracle自动跳过这个分析过程,从而减少了系统运行的时间。这也是为什么第一次运行的sql 比第二次运行的sql要慢一点的原因。

下面举例说明parse的时间。

sql>startup

sql> select count(*)from usertable;

count(*)

elapsed: 00:00:00.08

这是在share_pool 和data buffer 都没有数据缓冲区的情况下所用的时间。

sql> alter system flush shared_pool;

system altered.

清空share_pool,保留data buffer

sql> select count(*)from usertable;

count(*)

elapsed: 00:00:00.02

sql> select count(*)from usertable;

count(*)

elapsed: 00:00:00.00

从两句sql 的时间差上可以看出该sql 的parse 时间约为00:00:00.02

对于保存在共享池中的sql语句,可以从v$sqltext、v$sqlarea中查询到,对于编程者来说,要尽量提高语句的重用率,减少语句的分析时间。一个设计的差的应用程序可以毁掉整个数据库的share pool,提高sql语句的重用率必须先养成良好的变成习惯,尽量使用bind变量。

2、数据字典缓冲区(data dictionary cache)

显而易见,数据字典缓冲区是oracle特地为数据字典准备的一块缓冲池,供oracle内部使用,没有什么可以说的。

2.2.2.2块缓冲区高速缓存(database buffer cache)

这些缓冲是对应所有数据文件中的一些被使用到的数据块。让他们能够在内存中进行操作。在这个级别里没有系统文件,,户数据文件,临时数据文件,回滚段文件之分。

也就是任何文件的数据块都有可能被缓冲。数据库的任何修改都在该缓冲里完成,并由dbwr进程将修改后的数据写入磁盘。

这个缓冲区的块基本上在两个不同的列表中管理。一个是块的“脏”表(dirty list),需要用数据库块的书写器(dbwr)来写入,另外一个是不脏的块的列表(lru list),一般的情况下,是使用最近最少使用(least recently used,lru)算法来管理。

块缓冲区高速缓存又可以细分为以下三个部分(default pool,keep pool,recycle pool)。如果不是人为设置初始化参数(将默认为default pool。

由于操作系统寻址能力的限制,不通过特殊设置,在32位的系统上,块缓冲区高速缓存最大可以达到1.7g,在64位系统上,块缓冲区高速缓存最大可以达到10g。

2.2.2.3重做日志缓冲区(redo log buffer)

重做日志文件的缓冲区,对数据库的任何修改都按顺序被记录在该缓冲,然后由lgwr进程将它写入磁盘。这些修改信息可能是dml语句,如(insert,update,delete),或ddl语句,如(create,alter,drop等)。

Oracle体系结构

课后测试。单选题。1.哪个不是数据库的物理组件 a表空间 b物理文件 c控制文件 d日志文件 正确答案 a 2.最小的数据库逻辑结构是什么?a操作系统块 b数据库块 c表空间 d表 e区 正确答案 b 3.在数据库启动的mount阶段,可以进行什么操作 a查询用户scott下的表 b建立表空间 c创...

Oracle体系结构

簇 cluster 经常被频繁引用的表可以在物理位置上被存储在一起,簇就是用来管理这种集中存储的。集中存储可以减少i o次数,以达到性能的改善和提高。散列簇 hash cluster 簇的另一种形式,这种簇中的数据要通过散列函数计算得出物理位置,它可以极大程度的提高等值查询的效率。视图 view 可...

oracle体系结构

meta data 描述 说明 数据的数据。ctl 文件描述了 记录了 dbf 文件和log文件的位置,大小,一致性,checkpoint等信息。参数文件 oracle instance启动时,实例的参数由参数文件决定。d oracle product 10.2.0 db 1 dbs 密码文件 d ...