Oracle的启动机制
2015-07-03 00:00
417 查看
摘要: 之前在百度知道上回答的一个网友的问题,没想到能收到将近200个赞,所以转过来记下来
问题1:搞不明白 表空间,数据表,数据库 这几个概念在oracle里面是什么关系啊
oracle 数据库就是指的oracle 整体,一般一个机器上只安装一个oracle数据库
oracle建立好以后,实际上oracle是一个一个的DBF文件,然后N个DBF文件组成一个表空间
你的表就建立在表空间下,比如我举个例子:
一个数据库叫jack,
jack下用户使用的表空间有3个: users , abc, jacc
其中
users由d:\1.dbf组成
abc由d:\11.dbf d:\22.dbf组成
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不一致时需要进行恢复,在前滚后还要回滚,以后再说)
问题1:搞不明白 表空间,数据表,数据库 这几个概念在oracle里面是什么关系啊
oracle 数据库就是指的oracle 整体,一般一个机器上只安装一个oracle数据库
oracle建立好以后,实际上oracle是一个一个的DBF文件,然后N个DBF文件组成一个表空间
你的表就建立在表空间下,比如我举个例子:
一个数据库叫jack,
jack下用户使用的表空间有3个: users , abc, jacc
其中
users由d:\1.dbf组成
abc由d:\11.dbf d:\22.dbf组成
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不一致时需要进行恢复,在前滚后还要回滚,以后再说)
相关文章推荐
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- 命令行小技巧:读取文件的不同方式
- IE:临时文件保存法
- 文件的读出 编辑 管理
- 文件遍历排序函数
- 在线用表单建立文件夹
- VB获取文件大小的方法
- 文件、目录,文本文件等多种操作类
- 处理驱动器和文件夹