日期:2014-05-16 浏览次数:20572 次
13.数据库物理结构
数据库文件
数据文件datafile
重做日志logfile
控制文件controlfile:数据文件的位置及大小,重做日志文件的位置及大小,数据库名称及创建时间,日志序列号
归档日志archive log file
参数文件pfile,spfile,init<SID>.ora,SPFILE<SID>.ora
口令文件pwd<SID>.ora:用于验证特权用户,具有SYSDBA和SYSOPER权限的特殊数据库用户。
预警文件alert file:
预警文件由连续的消息和错误组成,并且这些消息和错误是按时间排序存放的。使用预警文件,可以查看Oracle内部错误(错误号为ORA-600)、块损坏错误、非默认初始化参数,可以监视特权用户的操作(如启动实例、关闭例程、备份和恢复等),可以监视数据库物理结构的改变(如建立表空间、删除表空间等)。预警文件由初始化参数background_dump_dest指定,alert_<SID>.log,并且其信息由服务器进程和后台进程(DBWR、LGWR)写入。
后台进程跟踪文件用于记载后台进程的警告或错误消息,每个后台进程都有相应的跟踪文件。由初始化参数background_dump_dest指定,<SID>_<processname>_<SPID>.trc
服务器进程跟踪文件用于记载服务器进程的相关信息,主要用于跟踪SQL语句。通过使用服务器进程跟踪文件,可以诊断SQL语句性能,并作出相应的SQL调整规划。当跟踪SQL语句时,必须激活SQL跟踪。由初始化参数USER_DUMP_DEST确定,<SID>_ora_<SPID>.trc
14.数据库逻辑结构
表空间tablespace
SYSTEM表空间、SYSAUX表空间、临时表空间、UNDO表空间、数据表空间和索引表空间等。
SYSTEM表空间用于存放系统数据(数据字典信息)
SYSAUX表空间是Oracle 10g的新特征,用于存储数据库辅助系统信息(如OEM资料档案库)
段空间segement
段(Segment)用于存储特定逻辑对象(表、簇、索引等)的所有数据,有一个或多个区组成
表段,索引段,临时段,UNDO段
区extent
Oracle块
?
15.应用程序的所有SQL操作都是由服务器进程执行的,而用户进程只是发送SQL语句,并接收SQL语句的结果。
由于所有SQL操作都是由服务器进程执行的,所以服务器进程也被称为用户进程的影子进程(Shadow Process)
服务器进程处理select语句包括解析(Parse)、执行(Execute)和提取数据(Fetch)三个阶段。
1)解析(Parse)用于检查SQL语句的语法和语义,生成SQL语句的执行计划,并将SQL语句和执行计划存放到共享池中。服务器进程执行如下操作:
搜索库高速缓存,并检查是否存在相同的SQL语句。如存在,直接执行该SQL语句。
如不存在,服务器进程会检查该SQL语句的语法。
当语法正确时,会检查SQL语义,以确定表名、列名是否正确。
当语义正确,则获得对象解析锁,以防止在解析期间其他用户改变对象结构。
检查用户是否具有访问对象的权限。
有访问权限,则由优化器确定该SQL语句的最佳执行计划。
将SQL语句及其执行计划装载到库高速缓存。
2)执行(Execute)服务器进程将按照执行计划中所安排的步骤执行select语句:
确定被选择行所在数据块是否已经被读取到缓冲区。若已经存在,直接提取数据。
若不在,将数据从数据文件读取到数据高速缓存。
3)提取数据(Fetch)是将被选择行数据返回到客户端。
?
16.处理DML语句
解析(Parse)
执行(Execute)服务器进程按照执行计划执行该DML语句,过程如下:
检查被修改行数据是否在数据高速缓存中。
在被修改行上加行锁,防止其他用户修改相应行数据;在表上加表锁,防止其他用户删表或改表结构。
将数据变化(表块变化、UNDO块变化)写入到重做日志缓冲区。
修改缓冲区数据,将事务的新数据写入到表块对应的缓冲区中,将事务的旧数据写入到UNDO块对应的缓冲区中。
17.处理commit
将commit语句及SCN写入重做日志缓冲区。
后台进程LGWR将重做日志缓冲区的所有事务变化写入重做日志文件。采用快速提交机制,提交时刻只是将事务变化写入重做日志,而脏缓冲区的数据不会写入数据文件。
将提交完成信息返回到用户进程。
释放事务所占用的表锁和行锁。
?
18.当使用OEM控制工具管理Oracle数据库时,特权用户(SYS)和DBA用户(SYSTEM)可以直接登录,而普通数据库用户则必须具有SELECT_CATALOG_ROLE角色。
emctl start dbconsole
lsnrctl start
使用工具oradim建立例程服务和管理例程服务的方法,windows平台,Unix和Linux平台不需要
oradim -startup -sid orcl
net start OracleServiceORCL
net stop OracleServiceORCL
?
19.SYSDBA特权
默认情况下只有SYS用户具有SYSDBA特权。是Oracle数据库中具有最高级别权限的特殊权限。
该特权可以执行启动数据库、关闭数据库、建立数据库、备份和恢复数据库,以及任何其他的管理操作。
如果要以SYSDBA身份登录,要求OS用户必须具有OSDBA角色(Windows平台:ORA_DBA组,Unix平台:DBA用户组)。
?
20.SYSOPER特权
该特权可以启动数据库、关闭数据库。不能建立数据库,也不能执行不完全恢复。SYSOPER特权也不具备DBA角色的任何权限。
如果要以SYSOPER身份登录,要求OS用户必须具有OSOPER角色
?
21.DBA角色
当数据库处于OPEN状态时,DBA角色可以在数据库中执行各种管理操作(如管理表空间、管理用户等),但DBA角色不能执行SYSDBA和SYSOPER所具有的任何特权操作(如启动和关闭数据库、建立数据库等)。默认情况下只有SYSTEM用户具有DBA角色。
?