ORACLE数据库结构的简介

ORACLE数据库结构的简介,第1张

关于ORACLE数据结构的简介

ORACLE的数据库结构大家都了解吗?如果不了解,下面我为大家整理了关于ORACLE数据库结构简介的文章,希望能为你提供帮助:

一、物理结构:

1、数据文件:ORACLE数据库包含若干数据文件,数据文件存储数据库数据,包括表、索引等等。数据文件的几个特点:

1)一个数据文件只允许分配给一个数据库

2)数据文件可设置为自动扩展

3)一个或多个数据文件构成表空间

在进行数据库 *** 作的时候,数据库先从内存寻找要 *** 作的数据,如果没有找到的话,再从数据文件取出数据放在内存中,然后才对内存中的数据进行相关的 *** 作。 *** 作完的数据并没有立即写到数据文件中(这样减少了磁盘的IO),而是放在内存中,然后由DBWn进程决定何时批量写入数据文件。

2、控制文件:每一个数据库都有一个或多个控制文件,控制文件包含了数据库的物理结构,包括:

1)数据库名

2)数据文件名及位置

3)重做日志文件名及位置

4)数据库的建立时间等等

一般一个数据库都有若干个控制文件镜像。数据库在打开的时候(ALTER

DATABASE OPEN),会读取控制文件中的信息来打开数据库。当数据库的物理结构发生变化的时候,比如增加一个数据文件、一组重做日志等等,控制文件都会自动地做相应的修改。在数据库物理结构发生变化后,最好重新备份一下控制文件,用于数据库恢复。

3、重做日志文件:重做日志中记录了数据的变化。一般一个数据库都会有两到三组重做日志文件。同一日志组的镜像最好分布于不同的磁盘上。

4、归档日志:当数据库启动归档的时候,重做日志会被自动归档到指定的位置。

5、初始化参数文件:包含了数据库启动时的配置信息

6、警告和跟踪日志文件

1)跟踪文件:每一个后台进程都有一个单独的'跟踪文件,比如当系统发现某一个进程有问题的时候,相关的信息就会写到相应的跟踪文件中。可以从数据库的跟踪文件来发现和调试数据库的错误。

2)警告文件,也叫警告日志。是一个特别的跟踪文件,它记录着数据库启动、运行中的相关信息,它是按时间顺序进行记录的。

7、备份文件

二、逻辑结构

1、表空间:相关逻辑对象的集合。在oracle10g中,在创建数据库的时候就自动创建了SYSTEM和SYSAUX表空间。

2、数据块:数据存储在数据块中,一个数据块的大小(DB_BLOCK_SIZE)由 *** 作系统块来决定。可以指定5种,分别为2K、4K、8K、16K、32K。

3、区:一系列连续的数据块组成区,区存储特定类型的数据,比如索引,表等等。

4、段:由一系列区组成段。

1)数据段:对于每一个非聚集表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。分区表中的每一个分区有一个数据段,分区中的数据存储在该段中。

2)索引段:每一个索引有一索引段,存储索引数据。分区索引中的每一分区有一个索引段。

3)回滚段:用于临时存储要撤消的信息,这些信息用于生成读一致性数据库信息,在数据库恢复时使用,回滚未提交的事务。系统回滚段用于处理系统事务,不建议用户使用系统回滚段来做其它 *** 作。

4)临时段:当一个SQL语句需要临时工作区时,由ORACLE建立临时段。当语句执行完毕,临时段的区退回给系统。

ORACLE由两部分:实例和数据库

实例由以下组成: SGA,Shared pool,Database buffer cache,Redo log buffer cache.

数据库由物理文件组成,其中必须有的文件是:数据文件,控制文件,重做日志

另外还有:参数文件,口令文件,归档日志文件(这三个不是必须的)

ORACLE SERVER 由两个部分组成,

1.INSTANCE:又由内存结构和后台进程组成

2.DATABASE:又由数据文件,日志文件和控制文件组成<这三个文件是必需的>.

CONTROL FILE是用来连接实例和DATABASE的

SQL>SHUTDOWN IMMEDIATE

SQL>STARTUP NOMOUNT

SQL>ALTER DATABASE MOUNT

以上三个过程就是通过CONTROL FILE来连接实例和数据库.

SQL>ALTER DATABASE OPEN

在OPEN的过程对DATABASE的数据文件和重做日志文件进行一次性的验证,验证它们的状态.

ORACLE INSTANCE:存取数据库的一个手段

一个DATABASE与INSTANCE之间是1:N的关系,一个INSTANCE只能 *** 作一个DATABASE,由内存结构(共享池,

BUFFER CACHE,REDO LOG BUFFER CACHE)及相应的进程结构组成(PMON<程序监控进程>,SMON<系统监控进

程>,CKPT<检查点进程>)

SQL>SHOW SGA ---显示DATABASE内存结构信息

SQL>SET WRAP OFF

SQL>SET LINESIZE 200

以上这两个是设置行宽

SQL>SELECT * FROM V$BGPROCESS

将看到在这个系统中所有可能使用到的进程,其中PADDR并不每个进程都分配到有效的地址,即并不是每个进程都是必须的.

SQL>SELECT * FROM V$BGPROCESS WHERE PADDR<>\'00\'

将显示所有必需的进程.

ESTABLISHING A CONNECTION AND CREATING A SESSION

连接到ORACLE实例包括建立一个用户连接及创建会话.

ORACLE MEMORY STRUCTURE (内存结构)

由两部分组成:

1.SGA

SGA是动态的,其最大值由SGA_MAX_SIZE指定,SGA的内存由SGA COMPONENTS来动态调整.

2.PGA 是不共享的,即其包含的信息是不一样的,有两个可享的内存可以由SGA配置

<1>LARGE POOL

<2>JAVA POOL

SQL>SHOW PARAMETER SHARED

SQL>SHOW PARAMETER DB_CACHE

SQL>SHOW PARAMETER LOG

以上三个命令是用于查看相关内存信息

SQL>ALTER SYSTEM SET DB_CACHE_SIZE=20M

所有内存大小总和不能大于SGA_MAX_SIZE的值,当提示信息出现?号或乱码时,是由于系统的语言问题.

可以通过ALTER SESSION SET NLS_LANGUAGE=\'AMERICAN\'或ALTER SESSION SET NLS_LANGUAGE=\"SIMPLE

[Page]

CHINESE\"

SHARED POOL (共享池)

含:<1>LIBRARY CACHE 库缓存

<2>DATA DICTIONARY CACHE 数据字典缓存,有的地方又称行CACHE,由SHARED_POOL_SIZE指定大小.

SQL>ALTER SYSTEM SET SHARED_POOL_SIZE=64M

LIBRARY CACHE 主要为提高代码的共享,存储的是最近使用的SQL和PL/SQL代码.

<1>.用最近最少使用(LRU)算法

<2>.包括两个结构 1:共享SQL代码 2:共享PL/SQL代码

<3>.不可直接定义,而由SHARED POOL SIZE决定.

DATA DICTONARY CACHE.

执行此命令的过程是:首先确认是否存在AUTHORS,,然后确认字段存不存在,再检查语法,最后验证权限,而

这些信息就属于DATA DICTIONARY CACHE的内容.其包含的信息有:DATABASE FILES,表,索引,字段,用户,

权限和其他数据库对象.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9816209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存