oracle-体系结构

Oracle采取的是Client / Server架构。

Oracle服务端分为两部分:

  1. Instance 实例
  2. Database 数据库

实例,又称为数据库引擎,由SGA(System Global Area, 系统全局区)一系列后台进程组成。它需要启动才会生成,用来加载并管理一个数据库。

数据库,是保存在硬盘上的文件集合,它是数据的主要载体。

$ OracleBase \ ORADATA \ [数据库名字] \

实例启动过程

服务启动的大致过程:

  1. [读取]读取系统的ORACLE_SID环境变量,确定要启动的实例名字,比如为xxoo
  2. [加载]从$ORABASE/admin/xxoo$ORA_HOME/database/SPFILEXXOO.ora等位置加载相关配置文件。配置文件的名字是根据sid来定义的。
  3. [启动]从配置文件中,读取相关信息,比如数据库名字,数据库控制文件位置,SGA等信息,并根据这些,初始化数据库加载需要的内存空间(SGA)相关进程
  4. [装载]根据配置文件中读取的数据库信息,找到各种数据文件位置,并装载数据库。
  5. 启动数据校验等,如果没有问题,启动数据库。

可以通过查看启动过程协助理解:

-首先,登录sys用户,只有管理员才有完全操纵数据库的权力
-关闭
用来关闭。如果不带参数,默认为正常- - 立即表示立即关闭,如果有未处理完操作,回滚并断开
- - 正常表示等待所有连接断开才关闭数据库
- - 其他参数,略
立即关机

-启动数据库,分解为三个动作:
- - 启动实例
- - 利用启动的实例去挂载数据库
- - 校验并打开数据库
-只有完全打开,才能进行完全的数据操作
-也可以指定参数,启动到某个阶段。这是在维护数据库中使用的命令。 
启动              -如果不加参数, 
启动nomount      -启动到nomount阶段 
startup mount        -启动到mount阶段

-当然,也可以这样分步启动:
启动nomount
alter  database mount
 alter  database打开

数据库的物理组件

数据库是保存在操作系统的一系列文件。

默认安装情况下,文件这些都在$ORACLE_BASE/oradata文件夹数下:

ORADATA /
└──orcl [数据库的名字]
    ├──CONTROL01.CTL
    ├──CONTROL02.CTL
    ├──EXAMPLE01.DBF
    ├──REDO01.LOG
    ├──REDO02.LOG
    ├──REDO03.LOG
    ├──SYSAUX01.DBF
    ├──SYSTEM01.DBF
    ├──TEMP01.DBF
    ├──UNDOTBS01.DBF
    └──USERS01.DBF

从文件角度分析,一个数据库包含下面几类(组件):

  1. 控制文件(控制文件)。记录数据库的物理结构和其他信息,如数据库名称,各种文件位置等。
    从v $ controlfile中选择*
        
  2. 数据文件(数据文件)。用于存储数据的文件,会自动扩张。数据以块为单位进行保存。
    从v $ datafile中选择名称,状态,启用;
        
  3. 重做日志文件(重做日志)。用来记录用户的所有操作,为了备份恢复。一个数据库至少有两个日志组,每个日志组至少有一个成员,成员之间是镜像关系。记录到重做日志中,当一个组记录满了,会自动切换到下一个组。
    -需要理解Oracle日志的思路:
    -它采取了【多个分组,轮流循环写入;每组多成员,互为镜像;保存更多信息,使用归档模式】的方式,保证了记录安全性。
    -在生产环境中,需要日志调整到不同的磁盘中,这样,即使某个文件损坏,或某块磁盘损坏,都可以通过镜像的日志文件对数据进行恢复
    
    -查看重做日志日志组
    select  *  from v $ log;
     v $ logfile中选择 * 
    
    -增加/删除日志组
    改变 数据库添加日志文件 ' D:/sss.rlog '大小百米;
    改变 数据库降日志文件 D:/sss.rlog  ;
    
    -清空日志组
    alter  database clear logfile group 1 ;
    alter  database clear unarchived logfile group 1 ;
    
    -为日志组增加/删除
    成员 alter  database将日志文件成员 ' d:/ssss.log '添加到组 1 ;
    改变 数据库降日志文件构件 D:/ssss.log  ;
       
    -重命名文件
    -首先,在文件夹管理器里,将文件改名,比如,改为ssss.redolog 
    -其次,重启数据库到安装状态,然后执行重命名命令
    改变 数据库重命名文件 ' D:/ ssss.log ' ' D:/ssss.redolog ' ;
    
    -日志组一般是在写满的时候自动切换
    -我们也可以手动切换
    更改系统切换日志文件;
        
  4. 归档日志文件。是重做日志的补充(重做日志记录的记录是有限的),可以把写满的重做日志进行备份。
    - Oracle的归档模式默认是关闭的
    -归档模式会占用大量空间
    -但他们用更多的空间,保存更多的历史记录,保障更大的安全性
    
    -查看状态
    存档日志列表;
    
    -切换数据库到归档模式
    alter  database archivelog;
    
    -启动
    存档日志开始;
    
    -查看状态
    存档日志列表;
        
  5. 其他文件

数据库的逻辑组件

https://docs.oracle.com/cd/B28359_01/server.111/b28318/physical.htm#CNCPT1082

从Oracle内部管理数据的角度,可以将Oracle分为4个组件:

  1. 表空间是Oracle中进行维护的最基本单位。数据库是由若干表空间组成的。一个表空间至少对应一个物理文件。
    -内置的各种表空间
    - -系统/ SYSAUX系统表空间/系统辅助表空间,用来保存系统字典表和其他信息,数据库创建完会自动生成
    - -用户用户表空间,创建新用户时,默认使用的表空间
    - - 临时表空间
    - - 撤回回滚表空间
    
    -查看表空间信息
    select  *  from v $ tablespace;
    
    -
     dba_data_files查看所有表空间跟文件对应关系SELECT   FILE_NAME,BLOCKS,TABLESPACE_NAME
    
    -创建表空间
    创建 表空间 XXX 
      数据文件    ' D:/sss.dbf '
      尺寸50m
      自动扩
      下一个50米
      maxsize 1024m;
    
    -创建临时表空间
    创建临时表空间yyy
      临时文件' D:/ANOTHER_TMP.dbf ' ;
    
    -删除表空间
    drop  table space xxx;
        
  2. 段(段)包括索引段,数据段等。表空间被划分为若干区域,每个区域负责存放不同类型数据,这些区域这就是段。
  3. 区(延伸)。为存储数据分配的连续空间。
  4. 块(块)数据块是Oracle数据库最小的逻辑单元。它代表在读写操作的时候,每次处理的数据大小是多少正常情况下,它是操作系统块的整数倍,默认是8 KB 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值