Oracle数据库的体系结构(理论篇)

1、物理储存结构

1)数据文件(*.dbf):存储数据库数据的文件

2)控制文件(*.ctl):用户描述和维护数据库的物理结构,是一个很小的二进制文件

3)重做日志文件(*.log):记录数据库中所有修改信息的文件,简称日志文件

4)其他文件:包括参数文件,备份文件,归档重做日志文件,警告、跟踪日志文件

2、逻辑存储结构

1)表空间(Tablespace)--->段(Segment)--->区(Extent)--->数据块(Block)

2)表空间用于存储用户在数据库中创建的是所有内容,例如用户在创建表时,可以指定一个表空间存储该表,如果用户没有指定表空间,则Oracle系统回将用户穿件的内容存储到默认的表空间中。

3)通过数据字典dba_tablespaces可以查看当前数据库的所有表空间名称

Select tablespace_name from dba_tablespaces;

4)段是一组盘区,这组盘区组成了被Oracle视为一个单位的数据库对象,如表或索引。因此,段一般是数据终端用户将处理的最小存储单位。段的数据在磁盘上可以是不连续的。

段包含数据段、索引段、临时段、回退段。

数据段:用于存储表中的数据

索引段:用户存储表中的所有索引信息

临时段:用于存储临时数据

回退段:用户存储用户数据被修改之前的值

5)区是磁盘空间分配的最小单位,有一个或多个数据块组成。

6)数据块(块)是用来管理存储空间的最基本单位,也是最小的逻辑单位。

3、Oracle进程结构

Oracle数据库启动时,会启动多个Oracle后台进程,后台进程是用于执行特定人物的可执行代码块,在系统启动后异步地为所有数据库用户执行不同的任务。

⊙通过查询数据字典v$bgprocess可以了解数据库中启动的后台进程信息。

7个常用进程:

1)DBWn(Database Write,数据库写入)进程,是Oracle中采用LRU(最近最少使用)算法将数据缓冲区的数据写入数据文件的进程。(在一个数据库实例中,DBWn进程可以启动多个)

2)LGWR(Log Writer,日志写入)进程,是负责管理日志缓冲区的一个后台进程,用于将日志缓冲区中的日志数据写入磁盘的日志文件中。

3)CKPT(Check Point, 检查点或检验点)进程,一般在日志切换时自动产生,用户缩短实例回复所需的时间。

4)SMON(System Monitor,系统监控)进程,用于数据库实例出现故障或系统崩溃时,通过将联机重做日志文件的条目应用于数据文件,执行崩溃恢复。

5)PMON(Process Monitor,进程监控)进程,用于在用户进程出现故障时执行进程恢复操作,负责清理内存存储区和释放该进程所使用的资源。

6)ARCn(Archive Process,归档)进程,用于将写满的日志文件复制到归档日志文件中,防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。(只有当Oracle数据库运行在归档模式下时才会产生ARCn进程)

7)RECO(Recovery,恢复)进程存在于分布式数据库系统中,用于自动解决在分布式数据库中出现的事务故障。

4、Oracle内存结构

1)系统全局区(SGA)(共享全局区)是Oracle为系统分配的一组共享的内存结构,可以包含一个数据库实例的数据或控制信息。在一个数据库实例中,可以有多个用户进程,这些用汉语进程可以共享系统全局区中的数据,所以系统全局区又称为共享全局区。当数据库实例启动时,SGA的内存被自动分配,当数据库实例关闭时,SGA被回收。

SGA区域的总内存大小由sga_max_size决定,可以使用SHOW PARAMETER语句查看该参数的信息:show parameter sga_max_size;

2)SGA中的部分重要区域

⊙数据缓冲区:用于存储从磁盘数据文件中读取数据,供所有用户共享。Show parameter db_cache_size;

⊙日志缓冲区:存储数据库的修改操作信息。Show parameter log_buffer;

⊙共享池:用于保存最近执行的SQL语句、PL/SQL程序的数据数据字典信息,它是对SQL语句和PL/SQL程序进行语法分析、编译和执行的内存区域。Show parameter shared_pool_size;

⊙大型池:用于提供一个大的缓冲区供数据库的备份与恢复操作使用,它是SGA的可以区域。Show parameter large_pool_size;

⊙Java池:用于在数据库中支持Java的运行。Show parameter java_pool_size;

3)程序全局区(PGA)是Oracle系统分配给一个进程的私有内存区域。(PGA不是共享区,只有服务器进程本身才能访问自己的PGA,它主要用来保存用户在编程时使用的变量和数组等)

5、数据字典

数据字典是由Oracle自动创建并更新的一组表,它是Oracle数据库的重要组成部分,提供了数据库结构、数据库对象空间分配和数据库用户等有关的信息。数据字典的所有者为sys用户,而数据字典表和数据字典视图都被保存在system表空间中。(数据字典是只读的,用户不可以手动更改其数据信息和结构)

通过dba_tables视图了解scott的所有信息:

Select * from dba_tables where owner='SCOTT';

通过v$instance视图了解当前数据库实例的信息:

Select instance_name, host_name, status from v$instance;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若♡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值