Oracle的启动机制

问题1:搞不明白  表空间,数据表,数据库   这几个概念在oracle里面是什么关系啊sql

oracle 数据库就是指的oracle 总体,通常一个机器上只安装一个oracle数据库数据库

oracle创建好之后,实际上oracle是一个一个的DBF文件,而后N个DBF文件组成一个表空间oracle

你的表就创建在表空间下,好比我举个例子:spa

一个数据库叫jack,日志

jack下用户使用的表空间有3个: users , abc, jaccsql语句

其中数据

users由d:\1.dbf组成查询

abc由d:\11.dbf d:\22.dbf组成db

jacc 由 d:\jacc.dbf组成文件

你建的表能够选择放在这3个表空间的任意一个里(若是不写,就放在你这个用户的默认表空间里,通常都是users,这个表空间是系统本身创建的)

临时表空间你也能够用,可是只能将临时表放在里面,临时表空间主要放置一些临时数据,好比你查询一个复杂的sql语句,系统会将中间数据放在临时表空间里暂存

临时表空间会本身删除(能够选择会话结束就删除)


问题2:我在系统默认的数据库文件夹里面看到了几种文件(好比.ctl,.dbf等)

我听我朋友说oracle是先读取.ctl而后读dbf而后读日志(好像是这样,不知道记错没)

请问oracle这个控制文件.ctl究竟是作什么用的呢?

oracle启动的时候,读取ctl文件(叫控制文件),这个控制文件里记录的内容告诉oracle目前这个数据库都是由哪些dbf组成的。而后读取全部的dbf文件,看这些dbf文件的最后修改时间是否和控制文件中记录的同样(同事还要比对日志文件中记录的最后修改时间),若是这些文件的最后修改时间都一致,那么说明oracle上次关闭是正常的,假如不一致,则利用日志文件重现以前的操做(日志文件里记录oracle的全部操做),最终时全部类型的文件的最后修改时间一致,而后打开,相信你已经看出来了,若是ctl文件坏了的话,你的数据实际上全都没法读取,由于oracle已经不知道本身的结构了。所以oracle默认将控制文件复制3份保存,足见其重要性。

由于估计你没有看过书,因此我用了浅显易懂的词来描述,他们在oracle中应该叫:

最后修改时间: SCN(System Change Number)

日志文件:redo log(可能还涉及到Archive 归档文件)

重现操做:roll forward (前滚)(实际上发生SCN不一致时须要进行恢复,在前滚后还要回滚,之后再说)

相关文章
相关标签/搜索