• Oracle传统基本体系结构初步介绍(4) 老猫


    j、用户进程User Process

    在客户端,将用户的SQL 语句传递给服务进程

    5、一个贯穿数据库全局的概念----系统改变号SCN(System Change Number)

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

    a.
    查询语句不会使SCN增加,就算是同时发生的更新,数据库内部对应的SCN也是不同的。这样一来就保证了数据恢复时候的顺序。

    b. 维持数据的一致性,当一

    二、ORACLE 数据库

    ORACLE数据库的组成——物理操作系统文件的集合。主要包括以下几种。

    1、控制文件(参数文件init.ora记录了控制文件的位置)

    控制文件包括如下主要信息

    数据库的名字,检查点信息,数据库创建的时间戳 所有的数据文件,联机日志文件,归档日志文件信息,备份信息等 

     

    有了这些信息,Oracle就知道那些文件是数据文件,现在的重做日志文件是哪些,这些都是系统启动和运行的基本条件,所以他是Oracle运行的根本。如果没有控制文件系统是不可能启动的。控制文件是非常重要的,一般采用多个镜相复制来保护控制文件,或采用RAID来保护控制文件。控制文件的丢失,将使数据库的恢复变的很复杂。

    控制文件信息可以从V$Controlfile中查询获得

    2、数据文件(数据文件的详细信息记载在控制文件中)

    可以通过如下方式查看数据文件

    SQL> select name from v$datafile;
    NAME
      ---------------------------------------------
      /u05/dbf/PROD/system_01.dbf
      /u06/dbf/PROD/temp_01.dbf
      /u04/dbf/PROD/users_01.dbf
      /u09/dbf/PROD/rbs_01.dbf
      /u06/dbf/PROD/applsys_indx_01.dbf
      /u05/dbf/PROD/applsys_data_01.dbf

    从以上可以看出,数据文件大致可以分为以下几类:

    i. 系统数据文件(system_01.dbf)

    存放系统表和数据字典,一般不放用户的数据,但是用户脚本,如过程,函数,包等却是保存在数据字典中的。

    名词解释:数据字典 数据字典是一些系统表或视图,他存放系统的信息,他包括数据库版本,数据文件信息,表与索引等段信息,系统的运行状态等各种和系统有关的信息和用户脚本信息。数据库管理员可以通过对数据字典的查询,就可以了解到Oracle的运行状态。

    ii. 回滚段文件(rbs_01.dbf)

    如果数据库进行对数据的修改,那么就必须使用回滚段,回滚段是用来临时存放修改前的数据(Before
    Image)。回滚段通常都放在一个单独的表空间上(回滚表空间),避免表空间碎片化,这个表空间包含的数据文件就是回滚数据文件。

    iii. 临时数据文件(temp_01.dbf)

    主要存放用户的排序等临时数据,与回滚段相似,临时段也容易引起表空间碎片化,而且没有办法在一个永久表空间上开辟临时段,所以就必须有一个临时表空间,它所包含的数据文件就是临时数据文件,主要用于不能在内存上进行的排序操作。我们必须为用户指定一个临时表空间。

    iv. 用户数据文件(/applsys_data_01.dbf ,applsys_indx_01.dbf)

    存放用户数据,这里列举了两类常见的用户型数据,一般数据和索引数据,一般来说,如果条件许可的话,可以考虑放在不同的磁盘上。

    3、重做日志文件(联机重做日志)

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

    联机日志组的交换过程叫做切换,需要特别注意的是,日志切换在一个优化效果不好的数据库中会引起临时的“挂起”。挂起大致有两种情况:

    在归档情况下,需要归档的日志来不及归档,而联机日志又需要被重新利用

    检查点事件还没有完成(日志切换引起检查点),而联机日志需要被重新利用

    解决这种问题的常用手段是:

    i.增加日志组

    ii.增大日志文件成员大小

    通过v$log可以查看日志组,v$logfile可以查看具体的成员文件。 

  • 相关阅读:
    go 学习笔记---chan
    golang学习笔记---Goroutine
    golang ---Learn Concurrency
    golang ----并发 && 并行
    golang 学习笔记 使用cmd
    并发程序与并行程序
    golang学习笔记 ---interface
    golang --- map如何判断key是否存在
    golang学习 ---defer语句
    golang --for语句
  • 原文地址:https://www.cnblogs.com/oldcat/p/2179939.html
Copyright © 2020-2023  润新知