Oracle 进程 Oracle有两种类型的进程: 服务器进程和后台进程(server processes and background processes)。
服务器进程 Oracle 服务器进程是处理用户与实例连接的事务。任务是:
l 分析和执行应用所发出的SQL语句。 l 从数据文件读必要的数据到SGA区的共享数据区。 l 返回必要信息给应用。
后台进程 Oracle系统使用一些附加的进程来处理系统的必须的工作。这些进程叫后台进程:
l 数据库写 (DBW0 或DBWn) l 日志写 (LGWR) l 检测点 (CKPT) l 系统监视 (SMON) l 进程监视 (PMON) l 归档 (ARCn) l 恢复 (RECO) l 锁(LCK0) l 工作队列 (SNPn) l 队列监视 (QMNn) l 发布(Dispatcher) (Dnnn) l 服务器 (Snnn)
Oracle 的内存结构(SGA)
SGA 结构为:
l 数据高速缓冲区 l 重做日志缓冲区 l 共享池 l 大的共享池(可选) l 数据字典缓冲区 l 其它数据缓冲区
§2.5 数据块、区间和段 §2.5.1 数据块(data block) l Oracle的数据块也叫Oracle块; l Oracle系统在创建表空间时将数据文件格式化成若干个Oracle块; l 每个Oracle块是Oracle系统处理的最小单位; l 块的大小在安装系统时确定,可以选择“自定义安装”来设置大小; l 块的大小一旦确定下来就不能改动; l 块的大小可以从2k至64k不等; l 块的大小可以用下面命令查到:
select name,value from v$parameter where name like 'db_block_size';
§2.5.2 区间(extent) l 分配给对象(如表)的任何连续块叫区间; l 区间也叫扩展,因为当它用完已经分配的区间后,再有新的记录插入就必须在分配新的区间(即扩展一些块); l 区间的大小由 next 决定; l 一旦区间分配给某个对象(表、索引及簇),则该区间就不能再分配给其它的对象; l 一个对象所用去多少区间可用下命令查到:
select segment_name,tablespace_name,count(*) from dba_extents having count(*)>;1 group by segment_name,tablespace_name;
§2.5.3 段(segment) l 段是指占用数据文件空间的通称,或数据库对象使用的空间的集合; l 段可以有表段、索引段、回滚段、临时段和高速缓存段等; l 段使用同表空间中的若干Oracle块(可以位于不同数据文件中)。
SVRMGR>; Show SGA Total System Global Area 35544188 bytes Fixed Size 22208 bytes Variable Size 3376332 bytes Database Buffer 122880 bytes Redo Buffer 32768 bytes
1. 发出查询余款的SQL语句,如: Select account_balance From banktable Where account_number='111222333' And account_type='SAVINGS';
l SQL语句通过SGA得到服务器进程; l 服务器进程检查共享池中有无该条语句,无该条语句则将放置共享池中并准备运行; l 执行SQL语句,把存放有余款的数据块从数据文件中读到SGA的数据高速缓冲区; l 显示结果,比如余款为$325。
2. 取款$25:SQL语句为: Update Bank_table set account_balanct=300 Where account_number='111222333' And account_type='SAVINGS';
l 客户进程通过SGA把SQL语句传给服务器进程; l 服务器进程查找有无该条语句,有执行(; l 分析SQL语句并存入共享池; l 执行SQL语句;
l 要处理的数据在数据高速缓冲区吗?是转7; l 从数据文件中读数据块到数据高速缓冲区; l 在回滚段中记录原来的数值($325); l 在重做日志中生成该事务的一个拷贝; l 将数据高速缓冲区中的余额改为$300; l 银行柜员机通过SGA发出工作完成信号(提交): l 在重做日志中记录已完成事务; l 清除回滚段中的恢复信息(Undo Information); l 顾客取钱完成。
§2.11 ORACLE系统的SYS和SYSTEM模式 SYS和SYSTEM 是每个ORACLE 数据库系统缺省安装的两个帐户。SYS 是所有内部数据库表、结构、过程包、等拥有者,此外它还拥有 V$ 和数据字典视图,并创建所有封装的数据库角色(DBA,CONNECT,RESOURCE)。 Sys是一个唯一能访问特定内部数据字典的用户。 System 也是在安装ORACLE 时创建的用户,用于 DBA 任务的管理。 SYS 安装后的缺省口令为 change_on_install; SYSTEM 缺省口令为 manager。 为了安全,可在安装完成后。 用 ALTER USER sys IDENTIFIED BY password; 命令修改这两个特权帐户的口令。
# define directories to store trace and alert files background_dump_dest=d:\oracle\admin\ora8\bdump user_dump_dest=d:\oracle\admin\ora8\udump 后台跟踪文件被命名为 sidPROC.TRC