第八章数据库实例.ppt
文本预览下载声明
第8章 数据库实例;本章内容;本章要求;8.1实例概述;;ORACLE实例与数据库的区别;;;实例
;8.2 Oracle内存结构;;8.2.1 SGA;(1)数据高速缓冲区;;缓冲块的类型
脏缓存块(Dirty Buffers)
脏缓存块中保存的是已经被修改过的数据。当一条SQL语句对某个缓存块中的数据进行修改后,这个缓存块就被标记为脏缓存块。它们最终将由DBWR进程写入数据文件,以永久性地保存修改结
空闲缓存块(Free Buffers)
空闲缓存块中不包含任何数据,它们等待后台进程或服务器进程向其中写入数据。当Oracle从数据文件中读取数据时,将会寻找空闲缓存块,以便将数据写入其中
命中缓存块(Pinned Buffers)
正被使用,或者被显式地声明为保留的缓存块。这些缓存块始终保留在数据高速缓冲区中,不会被换出内存。 ;;;;数据高速缓冲区大小
数据高速缓冲区越大,用户需要的数据在内存中的可能性就越大,即缓存命中率越高,从而减少了Oracle访问硬盘数据的次数,提高了数据库系统执行的效率。然而,如果数据高速缓冲区的值太大,Oracle就不得不在内存中寻找更多的块来定位所需要的数据,反而降低了系统性能。显然需要确定一个合理的数据高速缓冲区大小。
DB_CACHE_SIZE(标准块);(2)重做日志缓冲区;;;(3)共享池;共享池大小
SHARED_POOL_SIZE
合适的共享池大小,可使编译过的程序代码长驻内存,大大降低重复执行相同的SQL语句、PL/SQL程序的系统开销,从而提高数据库的性能。 ;(4)大型池 ;(5)Java池 ;(6)流池 ;8.2.2 SGA的管理;;;;;;8.2.3 PGA;Userprocess;*;8.2.4在OEM中管理数据库实例的内存结构;;;8.3 Oracle后台进程;8.3.1 Oracle进程概述;用户进程
当用户连接数据库执行一个应用程序时,会创建一个用户进程,来完成用户所指定的任务。
服务器进程
服务器进程由Oracle自身创建,用于处理连接到数据库实例的用户进程所提出的请求。用户进程只有通过服务器进程才能实现对数据库的访问和操作。
服务器进程分为专用服务器进程和共享服务器进程两种。
服务器进程主要完成以下任务:
解析并执行用户提交的SQL语句和PL/SQL程序;
在SGA的数据高速缓冲区中搜索用户进程所要访问的数据,如果数据不在缓冲区中,则需要从硬盘数据文件中读取所需的数据,再将它们复制到缓冲区中;
将用户改变数据库的操作信息写入日志缓冲区中。
将查询或执行后的结果数据返回给用户进程。
;;;8.3.2Oracle后台进程;(1)DBWR(数据库写入进程);;LGWR(日志写入进程);启动LGWR进程
用户通过COMMIT语句提交当前事务
重做日志缓存被写满三分之一
DBWR进程开始将脏缓存块写入数据文件
每隔3秒,即发生一次超时,将启动LGWR
事务提交机制
快速提交
组提交 ;CKPT(检查点进程);;检查点事件的触发
每一个日志切换时
当实例以如下方式关闭时
NORMAL,TRANSACTION,IMMEDIATE
当使用 ALTER TABLESPACE [OFFLINE NORMAL|READ ONLY|BEGIN BACKUP] ,作用于某个数据文件上的检查点发生时.
设置以时间为基础的检查点事件
当数据库管理员需要手工操作时
ALTER SYSTEM CHECKPOINT;与检查点的相关初始化参数
LOG_CHECKPOINT_INTERVAL
用来指定重做日志文件每写多少操作系统块发生一次检查点事件
例如重做日志文件1M,系统操作块为1K:设置此参数为500,则重做日志文件写入500K时,检查点事件发生
LOG_CHECKPOINT_TIMEOUT
用来指定每隔多长时间发生一次检查点
如1800,表示每隔1800秒,如果为0,表示此参数无效
LOG_CHECKPOINT_TO_ALERT
用于设置是否将检查点信息记录到警告日志中;SMON(系统监控进程);PMON(进程监控进程);ARCH(归档进程);RECO(恢复进程);LCKn(锁进程);Dnnn(调度进程);;小节
显示全部