博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DBA2 第一章:简介

Posted on 2011-09-14 21:50  little健健  阅读(552)  评论(0编辑  收藏  举报

Oracle Database 10g:为网格计算设计的数据库

  • 自动存储管理(ASM)
  • 可移植集群件
  • Real Application Clusters 和自动工作量管理
  • 资源管理器
  • Oracle Streams 
  • 使用 Oracle Enterprise Manager Grid Control 进行集中管理
  • Oracle Database 10g 新增的自我管理功能

数据库体系结构

  • 概述
    • 在数据库服务器上启动数据库后,Oracle 软件将对共享内存区(即系统全局区 (SGA))进行分配,并将启动多个Oracle 后台进程。这种 SGA 和 Oracle 进程的组合称为 Oracle 实例。
    • 启动实例后,Oracle 软件会将该实例与特定数据库相关联。该操作称为装载数据库。
  • Oracle 内存结构
    • 系统全局区 (SGA):由所有服务器进程和后台进程共享,包含实例的数据和控制信息的内存区
      • 数据库缓冲区高速缓存:用于缓存从数据库检索到的数据块
      • 重做日志缓冲区:用来缓存用于实例恢复的重做信息,直到可以将其写入磁盘中存储的物理重做日志文件
      • 共享池:用于缓存可在用户间共享的各种结构
      • 大型池:可选区域,能够为某些大型进程(例如Oracle 备份和恢复操作)和 I/O 服务器进程提供较大的内存分配
      • Java 池:用于 Java 虚拟机(JVM) 中特定于会话的所有Java 代码和数据
      • 流池:由 Oracle Streams 使用
    • 程序全局区 (PGA):由每个服务器和后台进程专用,每个进程都有一个PGA。包含每个服务器进程的数据及控制信息
  • Oracle 进程
    • 系统监视器 (SMON):启动的实例失败时,执行崩溃恢复
    • 进程监视器 (PMON):用户进程失败时,执行进程清理
    • 数据库写进程 (DBWn):将修改后的块从数据库缓冲区高速缓存写入磁盘中的数据文件
    • 检查点 (CKPT):更新数据库的所有数据文件和控制文件以指示最新的检查点
    • 日志写进程(LGWR):将重做日志条目写入磁盘
    • 归档程序 (ARCn):发生日志切换时,将重做日志文件复制到归档存储中
  • 物理数据库结构
    • 控制文件:包含与数据库本身相关的数据,即物理数据库结构信息。
    • 数据文件:包含数据库的用户或应用程序数据
    • 联机重做日志文件:用于进行数据库的实例恢复。
    • 参数文件:用于定义实例启动时的配置。
    • 口令文件:允许用户远程连接到数据库执行管理任务。
    • 备份文件:用于进行数据库恢复。
    • 归档日志文件:包含实例发生的数据更改(重做)的实时历史记录。使用这些文件和数据库备份,可以恢复丢失的数据文件。
    • 跟踪文件:每个服务器和后台进程都可以写入关联的跟踪文件。
    • 预警日志文件:按时间顺序列出的消息日志和错误日志
  • Oracle Managed Files (OMF) 
    • DB_CREATE_FILE_DEST   定义数据文件和临时文件默认文件系统目录的位置
    • DB_CREATE_ONLINE_LOG_DEST_n   定义重做日志文件和控制文件的创建位置
    • DB_RECOVERY_FILE_DEST  定义 RMAN 备份的位置
  • 逻辑和物理数据库结构
    • 表空间:数据库分为多个逻辑存储单元,这些单元称为表空间,用于将相关逻辑结构归到一组。
    • 数据库、表空间和数据文件:每个数据库在逻辑上都分为一个或多个表空间,系统为每个表空间均显式创建一个或多个数据文件。
    • 方案:方案是数据库用户所拥有的数据库对象的集合
    • 数据块:从最细的层面来讲,Oracle 数据库的数据存储在数据块中。每个表空间的数据块大小是在表空间创建时指定的
    • 区:区是特定数量的相邻数据块(通过一次分配获得),用于存储特定类型的信息
    • 段:段是为某个逻辑结构分配的一组区
      • 数据段:每个非集群、非索引组织的表都有一个数据段。
      • 索引段:每个索引都有一个索引段,存储其所有数据。
      • 还原段:用于临时存储还原信息
      • 临时段:临时段是SQL 语句需要临时工作区来完成执行时由 Oracle 数据库创建的

概述 Oracle 实例管理

  1. 在运行 Oracle 的计算机(通常称为主机或数据库服务器)上启动了一个实例。
  2. 运行应用程序的计算机(本地计算机或客户机工作站)在用户进程内运行应用程序。客户机应用程序尝试通过 Oracle Net Services 驱动程序与实例建立连接。
  3. 该实例检测到应用程序发出的连接请求,并连接到代表该用户进程的服务器进程。
  4. 用户更新了某一行数据。
  5. 服务器进程接收到语句,并检查 SGA 的共享池中是否已存在该语句。如果找到了共享SQL 区域,服务器进程将检查用户对请求数据的访问权限,并且使用以前现有的共享 SQL 区域处理该语句。如果共享池内没有该语句,则将为该语句分配新的共享SQL 区域,从而可对其进行分析和处理。
  6. 服务器进程从 SGA 中存储的实际数据文件(表)或数据块中检索任何必需的数据值。
  7. 服务器进程将对 SGA 中的表数据进行修改。
  8. 提交事务处理后,LGWR 进程会立即将该事务处理记录到重做日志文件中。
  9. 如果有必要,DBWn 进程会将修改的块写入磁盘。
  10. 服务器进程将通过网络向应用程序发送一条成功或错误消息。