• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > 初学oracle体系结构

初学oracle体系结构

作者:Wang_xinwei的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-17

Wang_xinwei的博客通过本文主要向大家介绍了oracle等相关知识,希望本文的分享对您有所帮助

 体系结构

3.1 Client/Server

Oracle 采取的是 Client/Server 架构。

Oracle 服务端分为两部分:

  1. Instance 实例
  2. Database 数据库

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

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

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

3.2 实例启动过程

服务启动的大致过程:

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

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

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

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

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

3.3 数据库的物理组件

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

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

3.4 数据库的逻辑组件

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

  1. 表空间(tablespace)。表空间是 Oracle 中进行维护的最基本单位。 数据库是由若干表空间组成的。一个表空间至少对应一个物理文件。
    -- 查看表空间信息
    select * from v$tablespace;
    
    -- 查看所有表空间跟文件对应关系
    SELECT  FILE_NAME, BLOCKS, TABLESPACE_NAME from dba_data_files;
    
    -- 创建表空间
    create tablespace xxx
      datafile   'D:/sss.dbf'
      size       50m
      autoextend on
      next       50m
      maxsize    1024m;
    
    -- 创建临时表空间
    create temporary tablespace yyy
      tempfile 'D:/ANOTHER_TMP.dbf';
    
    -- 删除表空间
    drop tablespace xxx;
    
  2. 段(Segment)。包括索引段、数据段等。 表空间被划分为若干区域,每个区域负责存放不同类型数据,这些区域这就是段。
  3. 区(Extend)。为存储数据分配的连续空间。
  4. 块(Block)。数据块是 Oracle 数据库最小的逻辑单元。 它代表在读写操作的时候,每次处理的数据大小是多少。 正常情况下,它是操作系统块的整数倍,默认是 8 KB。
    show parameters block;
    

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11常见数据库系统比较 Oracle数据库
  • 2017-05-11oracle用什么SQL语句判断表存不存在
  • 2017-05-11oracle数据库下统计专营店的男女数量的语句
  • 2017-05-11Oracle数据库升级或数据迁移方法研究
  • 2017-11-28Oracle数据库的自动锁介绍
  • 2017-05-11Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
  • 2017-05-11oracle 中 sqlplus命令大全
  • 2017-05-11Oracle ORA 07445 evaopn2()+128错误问题的解决方案
  • 2017-05-11ORACLE常见错误代码的分析与解决(三)
  • 2017-05-11Oracle中 lsnrctl命令使用总结(推荐)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle数据库中外键的相关操作整理
    • oracle中文乱码的解决方法
    • ORACLE学习笔记-添加更新数据函数篇
    • oracle 优化的一点体会
    • oracle创建删除用户示例分享(oracle删除用户命令及授权)
    • 如何查看数据库alert日志文件
    • 理解和使用Oracle 8i分析工具LogMiner
    • Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
    • 如何在Oracle中导入dmp文件
    • Oracle 多表查询

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有