oracel 理解物理结构之大脑--控制文件

事先声明:把控制文件比喻成oracle的大脑我深表赞同,但这个比喻并不是出自我,而是oracle大师eygle说滴~

每个oracle数据库都有相应的控制文件,用于打开、存取数据库。
一个数据库可以拥有多个控制文件(通常都是镜像关系),但是一个控制文件只能属于一个数据库。


每个数据库必须至少拥有一个控制文件,不管什么时候,如果由于某些原因无法访问,数据库就无法工作了。

为啥呢?
因为控制文件中保存着许多数据库启动时必须的重要信息。
粗略介绍这些经常登场的信息:
1、数据库的名称和创建时间等,在创建oracle时生成的。
2、重做日志文件和归档日志文件的名字、位置和状态等信息。这些信息是在增加重做日志文件、删除重做日志文件、修改重做日志文件以及重做日志被归档时,这些信息将被oralce记录
3、当前日志的序列号。它在日志切换时由oracle记录的
4、检查点(checkpoint)和SCN信息。这两个信息估计得在另一篇博客里详细介绍。
5、数据文件的名称和位置。当在增加数据文件、删除数据文件和修改数据文件的名称时,oracle会修改相关信息。
6、表空间信息。当在增加或删除表空间时,oracle会修改相关信息。
7、备份信息的位置和状态等信息。
... ...

接下来简单看看数据库启动的3个模式,Look一下控制文件所处的位置:
启动一个实例时,根据参数文件定位控制文件(即NOMOUNT模式),在启动实例后,数据库的后台进程已经运行,进一步的mount数据库之后通过加载控制文件,确定数据文件、重做日志文件的路径(即MOUNT模式),最后才能打开数据库(即OPEN模式)
为啥eygle大师把控制文件比喻成oracle的大脑呢,因为,控制文件除了启动数据库时是必须的,在数据库运行时也发挥着important的作用,比如,记录检查点的相关信息,归档文件路径、备份信息(如果是RMAN备份的话),数据库发生结构修改(类似表空间、数据文件、日志文件)等操作都必须同步到控制文件中。
这也是为什么一开始时就说不管什么时候,如果由于某些原因无法访问控制文件,数据库就无法工作了。

最后要说的是,控制文件是一个二进制文件,里面的信息是如此的地位非凡,所以直接打开是无法阅读的。除了转储出来看之外,那么我们是否有其他方法能获得里面的信息呢?
鉴于这些信息的地位,这是必须有滴——使用数据字典,由此又体现了认识数据字典这位仁兄的重要性了。
有请这位仁兄出来自我介绍一二:
v$archived、v$tempfile、v$datafile、v$archived_log、v$sgastat、v$backup、v$database、v$instance、v$session、v$log、v$logfile、v$tablespace
... ...


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26685854/viewspace-740703/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26685854/viewspace-740703/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值