ITPub博客

首页 > 数据库 > Oracle > 数据库基础原理1:Oracle数据库体系结构(续1)

数据库基础原理1:Oracle数据库体系结构(续1)

原创 Oracle 作者:云小虫2019 时间:2019-04-19 16:16:14 0 删除 编辑

 

    数据库基础原理1:Oracle数据库体系结构(续1)

  

 接着上篇的【数据文件】


    物理存储结构和逻辑存储结构,是相关独立的,但也紧密联系中。

    因为独立,所以在管理物理存储结构的时候,不会影响对逻辑结构的访问。例如重命名了数据文件的名称,不会影响内部的逻辑存储结构,如表,索引等等。

    因为紧密联系,所以,在介绍逻辑存储结构前,还是有必要先提及其中的几个概念: 模式,表空间

    【模式-schema】,它与Oracle数据库的用户相匹配,基本上是一个用户对应一个模式。模式是Oracle数据库的基本逻辑隔离单元,它是一个用户下所有对象的集合。可以说,用户是模式中所有数据结构(对象)的所有者,其它用户要访问这些对象,必须经过专门的授权。

     也可以极端一点的说, 模式是对象的集合 ,而 用户是权限的集合

     更好一层的隔离就是数据库层面,彼此间的访问,就不必须同DBlink。

     【表空间】,它是一个逻辑概念。数据库的所有数据都存在于表空间中。而物理上又是落在数据库文件中。所有说,每个表空间都有由一个或多个数据文件组成。如图,

       必要的是区分: 表空间是逻辑概念 数据文件是物理实体

   

     所以在创建用户的时候,需要指定默认表空间。而创建表空间的时候,需要指定数据文件。这样,用户,模式,表空间,数据文件,就串联起来了。 当用户下建立对象后,模式就随之产生。模式里的对象(如表)的结构元数据和里面存放的业务数据就有了逻辑上的存放位置,即表空间,以及 物理存放位置,即数据文件。

       创建用户:

  create user user_name identified by password default tablespace tablespace_name;

      创建表空间:

   create tablespace tablespace_name 
  /u01/app/oracle/oradata/ecs/file01.dbf
  autoextend on next 200m maxsize unlimited,
  /u01/app/oracle/oradata/ecs/file01.dbf
  autoextend on next 200m maxsize unlimited;

 说明: 创建一个表空间,包含着两个数据文件,数据文件是按照每200M自动扩展,但由于操作系统中文件系统的限制,一个数据文件最大支持32G。如果建立是的大表空间,那就是另一回事了。


        【控制文件】 ,一个很小的二进制特殊数据文件。虽然短小,但却精悍,他是数据库的中枢机要所在。

查询控制文件:

或者:

每个数据库都有一个唯一的控制文件,但可以有多个副本,而且应该至少有一个副本。在参数文件中记录了控制文件和副本的位置,参数为:control_files . Oracle会保证对所有控制文件做同步更新。

       要有多个副本,因为它至关重要。

       同时,也因为它是一个二进制文件,不能像文本文件一样,轻易重建。

       所以,冗余与备份,势在必然。在备份数据库的时候,必须要备份控制文件。

       再看看它的大小:

     也就18M左右。因为短小,所以不需要担心多个同步更新多个控制文件会对性能造成多大影响,I/O微乎其微。

      为何是中枢机要所在,再看看它记录的内容:

  • 数据库名称和数据库唯一标识符(DBID)

  • 数据库创建的时间戳

  • 有关数据文件,联机重做日志文件和归档重做日志文件的信息

  • 表空间信息

  • RMAN备份

  • 检查点及SCN信息

控制文件,记录了数据库名称,能够定位数据文件和重做日志文件。 同时,数据文件和重做日志文件发生更改,也就是发生步调一致的checkpoint时候,都会记录到控制文件。也就是记录了数据库系统层面的SCN,数据文件的SCN,以及数据文件的终止SCN。另一个SCN,记录在数据文件头部。

--系统检查点:
select checkpoint_change# from v$database;
--数据文件检查点
select name,checkpoint_change# from v$datafile;
--启动检查点:
select name,checkpoint_change# from v$datafile_header;
--终止检查点:
select name,last_change# from v$datafile

 SCN:   System Change Number. 

            A database ordering primitive. The value of an SCN is the logical point in time at which changes are made to a database.

系统变更编号,对数据库进行的更改的逻辑时间戳。控制文件通过SCN,管理着数据库的状态。像一根根信道,接通各个数据文件,监控着数据库的改变。 在数据库恢复的时候,SCN是基础。

        另外,通过RMAN备份的备份集元数据一般也记录在控制文件中。当然也可以记录单独的目录数据库中。各有优劣,此不细说。


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

请登录后发表评论 登录
全部评论

注册时间:2019-04-02

  • 博文量
    18
  • 访问量
    14247