跟我学Oracle 10g系列之二(体系结构1)

来源:互联网 发布:怎么允许软件访问网络 编辑:程序博客网 时间:2024/05/16 14:00

先说一个非常重要的概念——系统改变号(System Change Number,简称SCN)

系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

SCN有如下特点:
a.  查询语句不会使 SCN 增加,就算是同时发生的更新,数据库内部对应的 SCN 也是不同的。这样一来就保证了数据恢复时候的顺序。
b.  维持数据的一致性,当一个查询执行的时候,他会先从系统中得到一个当前的 SCN号,在他查找数据的同时,他会检查每个数据行和他对应的SCN号,只有那些不比他的 SCN号大的行才能从对应用户数据文件的缓冲区内取出,而那些大于他 SCN 号的行,就应该从回滚段数据文件的缓冲中取出。

Oracle的物理结构

物理结构包括:控制文件、数据文件、重做日志、参数文件(PFILE或SPFILE)、归档日志、密码文件等。

   控制文件事数据库的关键性构件,因为它们存储了在其他任何地方均无法获得的重要信息,这些信息包括:1、数据库的名称;2、数据文件和重做日志文件的名称、位置和大小;3、万一发生磁盘故障或用户错误时用来恢复数据库的信息(控制文件通常是数据库中最小的文件,它们的大小一般在1MB与5MB之间。但是,当使用了RMAN特性时,控制文件会变得的较大)。

    数据文件时实际存储用户已插入倒每个数据库表中的实际数据的物理文件。数据文件时隐藏在另一个叫做表空间的数据库存储区背后的物理结构。

    重做日志

    用户对数据库进行的任何操作都会记录在重做日志文件。在了解重做日志之前必须了解重做日志的两个概念,重做日志组和重做日志组成员(Member),一个数据库中至少要有两个日志组文件,一组写完后再写另一组,即轮流写。每个日志组中至少有一个日志成员,一个日志组中的多个日志成员是镜相关系,有利于日志文件的保护,因为日志文件的损坏,特别是当前联机日志的损坏,对数据库的影响是巨大的。

    参数文件记载了许多数据库的启动参数,如内存,控制文件,进程数等,在数据库启动的时候加载(Nomount 时加载),初始化文件记录了很多重要参数,对数据库的性能影响很大,如果没有它,数据库将无法启动。

    归档日志

    Oracle 可以运行在两种模式之中,归档模式和不归档模式。如果不用归档模式,当然,你就不会有归档日志,但是,你的系统将不会是一个实用系统,特别是不能用于生产系统,因为你可能会丢失数据。但是在归档模式中,为了保存用户的所有修改,在重做日志文件切换后和被覆盖之间系统将他们另外保存成一组连续的文件系列,该文件系列就是归档日志文件。
有人或许会说,归档日志文件占领我大量的硬盘空间,其实,具体想一想,你是愿意浪费一点磁盘空间来保护你的数据,还是愿意丢失你的数据呢?显而义见,我们需要保证我们的数据的安全性。其实,归档并不是一直占领你的磁盘空间,你可以把她备份到磁带上,或则删除上一次完整备份前的所有日志文件。

    密码文件用于Oracle的具有sysdba权限用户的认证,在9i以前主要指Internal用户,从9i开始已经取消了这个用户。密码文件的密码可以通过 ORAPWD命令来修改。