Oracle10g结构

本文简单的介绍了oracle的结构,如果查看各个参数,及修改几个重要参数,例如讨论了优化常用的SGA_TARGET,DBWR,以及如何应用spfilepfile简单排错.

oracle server结构

作为oracelDBA下图必须熟记于心
oracle结构_第1张图片
可以看到总体来讲,oracle server由上部的instance和下部的database两部分组成

1.Database

oracle结构_第2张图片

 

database 主要由数据文件(data files),控制文件(control files),重做日志文件(redo log files)和参数文件(parameter files),密码文件(password file),归档日志文件(archived log files)等组成
oracle,这些都是实实在在的文件,在服务器上都可以找到
ls -l $ORACLE_BASE/oracle/SID
oracle结构_第3张图片
其中必须的三种文件在$ORACLE_BASE/SID/
*.ctl 为控制文件
*.dbf.为数据文件
*.log redolog文件
查找参数文件(parameter,),密码文件(password files)
ls -l $ORACLE_HOME/dbs/
oracle结构_第4张图片
其中*.ora 为参数文件,orapwdenver为密码文件
关于归档日志文件(archive log file)
Oracle 日志分为归档模式和非归档模式,只有在归档模式下才有归档日志文件.由于本文是讨论oracle结构,在些不做深入讨论.

2.instanc结构

Instance由内存SGA和进程PGA两部分组成

1. SGA

1.SGA结构

oracle结构_第5张图片

(SGA结构)
如上图SGA由必须的share pool,  database buffer cache,   redo log buffer和可选的jave pool large pool 组成
oracle10g上可以通过如下命今查看
SQL>select name bytes from v$sgainfo;
oracle结构_第6张图片
而在oracle 9i上通过如下命今查看
SQL>show sga;
oracle结构_第7张图片
可见
SGA总大小为236000356 byte
Database buffers 大小为 33554432 byte
Redo buffers 大小为 667648 byte
分配的最小单位是granules.,SGA<128M,granules4M,SGA>128M,16M
显示当前SGA组成部分,及最小单位
oracle结构_第8张图片
查当前各区块的大小.
oracle结构_第9张图片
1.shared pool
shared pool又分为library cache data dictionary cache 两部分
1>library cache
作用:主要保存解析后的SQL语名
2>data dictionary cache
2.database buffer cacheredo log buffer
可以通过show parameter XXX查看这些参数
oracle结构_第10张图片
oracle结构_第11张图片
3.SGA中优化参数sga_target的设置
显示SGA_SIZESGA_TARGET
oracle结构_第12张图片
修改SGA_TARGET
修改前SGA_MAX_SIZE=196M,SGA_TARGET=0如下图
oracle结构_第13张图片
使用alter system set sga_target=值修改sga_target
可见修改后值为200M
当以spfiel启动这个值就不能再修改小了,要修改小它,要以pfile启动数据库,pfile文件中可以编写.
oracle结构_第14张图片
Alter system set sga_target=200只是内存中修改,重启后就失效了
oracle结构_第15张图片
oracle结构_第16张图片
关于Pfile spfile
Pfilespfile互相生成(create spfile form pfile ,  create pfile from spfile)
Pfile生成spfile 重启oracle,先用spfile启动,
使用show parameter spfile查询,如果value为空则使用的是pfile非空为spfile
下图oracle用刚建的spfile启动
oracle结构_第17张图片
pfile文件中修改sga_target,
oracle结构_第18张图片
Spfile是二近制文件不能手动修改,一但修改文件就挂了.

oracle结构_第19张图片

灵活运用pfilespfile

当把processes改为0时,关闭oracle就不能再启动了。些时可以用pfile启动,因为pfile文件可以手动修改,然后再可以用pfile生成spfiel
oracle结构_第20张图片

此时把spfile文件名修改再以以前的pfile启动.

oracle结构_第21张图片

2.服务器端进程(只有当oracle启动后才生成)

在服务器上查看后台进程
ps -ef | grep oracle
oracle结构_第22张图片
简单应用
oracleDBWR进程是最忙的,可以启动多个DBWR,下图只启动了一个
oracle结构_第23张图片
增加DBWR的个数,
当以spfiel启动时,需要在alter最后加参数scope=spfile
oracle结构_第24张图片
修改后重启生效
oracle结构_第25张图片
可见DBWR=3.