记录点点滴滴

2 Day DBA (阅读笔记)- Managing the Oracle Instance

上一篇 / 下一篇  2010-08-25 23:42:31 / 精华(1) / 置顶(1) / 个人分类:Oracle

    Overview of an Instance and Instance Management


    后台进程和Oracle分配的内存构成了一个Oracle实例。

     

    数据库vs.数据库实例

    数据库实例是由共享内存体和Oracle后台进程构成的。在没有Oracle数据库的情况下,可以存在一个数据库实例,只是无法对数据库操作。

     

  1. 实例是一组后台进程和共享内存
  2. 数据库是磁盘存储的数据集合
  3. 实例“一生”只能装载并打开一个数据库
  4. 数据库可以由一个或多个实例(使用RAC)装载和打开
  5.  

    Instance Memory Structure

     

    The System Global Area (SGA)

  6. SGA是一个存放数据及实例控制信息的共享内存区域,多用户之间可以共享使用,以减少重复的磁盘访问。
  7. 性能角度:SGA需要足够大,以避免频繁的磁盘读写。
  8.  

    SGA子组件:

  9. Buffer Cache:
    • 数据库中的任何数据在被查询或修改之前,数据必须被从磁盘读入内存中。(类似Linux??)
    • Buffer Cache就是存放这些数据的区域,并且被所有用户进程共享。
  10. Shared Pool:
    • 缓存SQL以便重用。
    • 缓存数据字典信息(如:用户帐号信息、表和索引描述、权限信息),保证快速访问及可重用性。
    • 缓存procedures的可执行码。
  11. Redo Log Buffer
    • 缓存Redo信息(用户实例恢复),以提升性能。
    • 如果Buffer写满了,就会写到磁盘的redo log files。
  12. Large Pool
    • 可选的区域
    • 用于Buffer大量的I/O读写
  13. Java Pool
    • 存放session-specific的java代码及数据
  14. Streams Pool
    • The Streams pool is used by the Oracle Streams product.

     

    Program Global Area (PGA)

    PGA属于单个Oracle Server进程,也就是客户端请求的服务进程。

    PGA用于解析SQL,保持登录等Session信息。

     

    Oracle Background Processes

  15. Database Writer (DBWn)
    • Buffer Cache中被修改的块(block)写入到磁盘文件中
    • DBWn上限为20
  16. Log Writer (LGWR)
    • redo log条目(entries)写入磁盘文件(redo log files)中
    • Redo log entries是由SGAredo log buffer产生的,LGWR将这些词条顺序的写入到一个online redo log file
  17. Checkpoint
    • 在某些特定时间,SGA中所有被修改的数据库buffer都被DBWn写入到数据文件中,这个事件就被称为Checkpoint
    • checkpoint process负责对处于checkpointDBWn发信号,更新所有的数据文件,并且控制数据库文件表示最近的checkpoint
  18. System Monitor (SMON)
    • 当一个失败的实例重启时,SMON执行Crashrecovery。
  19. Process Monitor (PMON)
    • 当一个用户进程失败时,PMON执行process recovery
    • 清空失败进程曾使用的cache,释放相关资源。
  20. Archiver (ARCn)--see Chapter 9, "Performing Backup and Recovery".
    • 当数据库运行在归档日志模式下,当发生日志文件被写满或日志交换(log switch)时,一个或多个Archiver进程就会将redo log files拷贝到archival storage。

     

    Accessing the Database

     

    启动数据库的权限:SYSDBA(完全授权)、SYSOPER(可以操作数据库,但没有访问用户对象权限)

    管理员用户帐号:SYS、SYSTEM,只有SYS可以用拥有SYSDBA权限进行初始化连接。

     

    The Startup Process

  21. 启动实例:
    • 使用OEM
    • Linux下,使用SQL*Plus->STARTUP
    • Windows
    • Oracle读取初始化参数文件->分配SGA内存->为实例启动后台进程
  22. 如果指定数据库已挂载,数据库实例就会打开数据库控制文件,数据库处于mount状态。管理员用户可以执行某些管理功能。
  23. 如果指定数据库未挂载,数据库实例就会打开redolog files and datafiles。此时,数据库打开并对所有用户开发。
  24.  

    The Shutdown Process

  25. SGAcache的被修改data block被写入磁盘,redo log bufferflush,数据文件被标识checkpoint,文件头被标记数据库关闭时间。数据文件和日志文件被关闭,用户无法访问数据库。
  26. 数据库实例dismount数据库,更新控制文件中的相关内容,记录一次干净的关闭。关闭控制文件。数据库被关闭,只有实例存在。
  27. 数据库实例停止后台进程,释放SGA内存。
  28.  

    Server and Client Processes

    用户连接=客户端程序+服务器端进程

     

    Server Process模式:

  29. Dedicated Mode:每一个客户端进程独占一个服务器端进程,适用于长时间运行的查询任务或管理员任务,过多的Dedicated Process带来资源浪费(PGA)。
  30. SharedMode:连接池,节省内存和进程管理消耗,支持更多用户,短查询。
  31.  

    Network Connections

    监听器->判断连接模式->建立连接

     

    About Initialization Parameters

     

  32. Server parameter file:二进制文件,不可被手工修改。参数配置取决于Oracle服务器。
  33. Text initialization parameter file:可以手工设定初始化参数。
  34.  

     

     

     


TAG:

 

评分:0

我来说两句

Open Toolbar