2 Day DBA (阅读笔记)- Managing the Oracle Instance
上一篇 / 下一篇 2010-08-25 23:42:31 / 精华(1) / 置顶(1) / 个人分类:Oracle
- 实例是一组后台进程和共享内存
- 数据库是磁盘存储的数据集合
- 实例“一生”只能装载并打开一个数据库
- 数据库可以由一个或多个实例(使用RAC)装载和打开
- SGA是一个存放数据及实例控制信息的共享内存区域,多用户之间可以共享使用,以减少重复的磁盘访问。
- 性能角度:SGA需要足够大,以避免频繁的磁盘读写。
- Buffer Cache:
- 数据库中的任何数据在被查询或修改之前,数据必须被从磁盘读入内存中。(类似Linux??)
- Buffer Cache就是存放这些数据的区域,并且被所有用户进程共享。
- Shared Pool:
- 缓存SQL以便重用。
- 缓存数据字典信息(如:用户帐号信息、表和索引描述、权限信息),保证快速访问及可重用性。
- 缓存procedures的可执行码。
- Redo Log Buffer
- 缓存Redo信息(用户实例恢复),以提升性能。
- 如果Buffer写满了,就会写到磁盘的redo log files。
- Large Pool
- 可选的区域
- 用于Buffer大量的I/O读写
- Java Pool
- 存放session-specific的java代码及数据
- Streams Pool
- The Streams pool is used by the Oracle Streams product.
- Database Writer (DBWn)
- 将Buffer Cache中被修改的块(block)写入到磁盘文件中
- DBWn上限为20
- Log Writer (LGWR)
- 将redo log条目(entries)写入磁盘文件(redo log files)中
- Redo log entries是由SGA的redo log buffer产生的,LGWR将这些词条顺序的写入到一个online redo log file。
- Checkpoint
- 在某些特定时间,SGA中所有被修改的数据库buffer都被DBWn写入到数据文件中,这个事件就被称为Checkpoint
- checkpoint process负责对处于checkpoint的DBWn发信号,更新所有的数据文件,并且控制数据库文件表示最近的checkpoint
- System Monitor (SMON)
- 当一个失败的实例重启时,SMON执行Crashrecovery。
- Process Monitor (PMON)
- 当一个用户进程失败时,PMON执行process recovery
- 清空失败进程曾使用的cache,释放相关资源。
- Archiver (ARCn)--see Chapter 9, "Performing Backup and Recovery".
- 当数据库运行在归档日志模式下,当发生日志文件被写满或日志交换(log switch)时,一个或多个Archiver进程就会将redo log files拷贝到archival storage。
- 启动实例:
- 使用OEM
- Linux下,使用SQL*Plus->STARTUP
- Windows下
- Oracle读取初始化参数文件->分配SGA内存->为实例启动后台进程
- 如果指定数据库已挂载,数据库实例就会打开数据库控制文件,数据库处于mount状态。管理员用户可以执行某些管理功能。
- 如果指定数据库未挂载,数据库实例就会打开redolog files and datafiles。此时,数据库打开并对所有用户开发。
- SGA中cache的被修改data block被写入磁盘,redo log buffer被flush,数据文件被标识checkpoint,文件头被标记数据库关闭时间。数据文件和日志文件被关闭,用户无法访问数据库。
- 数据库实例dismount数据库,更新控制文件中的相关内容,记录一次干净的关闭。关闭控制文件。数据库被关闭,只有实例存在。
- 数据库实例停止后台进程,释放SGA内存。
- Dedicated Mode:每一个客户端进程独占一个服务器端进程,适用于长时间运行的查询任务或管理员任务,过多的Dedicated Process会带来资源浪费(PGA)。
- SharedMode:连接池,节省内存和进程管理消耗,支持更多用户,短查询。
- Server parameter file:二进制文件,不可被手工修改。参数配置取决于Oracle服务器。
- Text initialization parameter file:可以手工设定初始化参数。
Overview of an Instance and Instance Management
后台进程和Oracle分配的内存构成了一个Oracle实例。
数据库vs.数据库实例
数据库实例是由共享内存体和Oracle后台进程构成的。在没有Oracle数据库的情况下,可以存在一个数据库实例,只是无法对数据库操作。
Instance Memory Structure
The System Global Area (SGA)
SGA子组件:
Program Global Area (PGA)
PGA属于单个Oracle Server进程,也就是客户端请求的服务进程。
PGA用于解析SQL,保持登录等Session信息。
Oracle Background Processes
Accessing the Database
启动数据库的权限:SYSDBA(完全授权)、SYSOPER(可以操作数据库,但没有访问用户对象权限)
管理员用户帐号:SYS、SYSTEM,只有SYS可以用拥有SYSDBA权限进行初始化连接。
The Startup Process
The Shutdown Process
Server and Client Processes
用户连接=客户端程序+服务器端进程
Server Process模式:
Network Connections
监听器->判断连接模式->建立连接
About Initialization Parameters
TAG: