Oracle10g结构
本文简单的介绍了oracle的结构,如果查看各个参数,及修改几个重要参数,例如讨论了优化常用的SGA_TARGET,DBWR,以及如何应用spfile和pfile简单排错.
oracle server结构
作为oracel的DBA下图必须熟记于心
可以看到总体来讲,oracle server由上部的instance和下部的database两部分组成
1.Database
而database 主要由数据文件(data files),控制文件(control files),重做日志文件(redo log files)和参数文件(parameter files),密码文件(password file),归档日志文件(archived log files)等组成
在oracle中,这些都是实实在在的文件,在服务器上都可以找到
ls -l $ORACLE_BASE/oracle/SID
其中必须的三种文件在$ORACLE_BASE/SID/下
*.ctl 为控制文件
*.dbf.为数据文件
*.log 为redolog文件
查找参数文件(parameter,),密码文件(password files)
ls -l $ORACLE_HOME/dbs/
其中*.ora 为参数文件,orapwdenver为密码文件
关于归档日志文件(archive log file)
Oracle 日志分为归档模式和非归档模式,只有在归档模式下才有归档日志文件.由于本文是讨论oracle结构,在些不做深入讨论.
2.instanc结构
Instance由内存SGA和进程PGA两部分组成
1. SGA
1.SGA结构
(SGA结构)
如上图SGA由必须的share pool, database buffer cache, redo log buffer和可选的jave pool 和 large pool 组成
在oracle10g上可以通过如下命今查看
SQL>select name bytes from v$sgainfo;
而在oracle 9i上通过如下命今查看
SQL>show sga;
可见
SGA总大小为236000356 byte
Database buffers 大小为 33554432 byte
Redo buffers 大小为 667648 byte
分配的最小单位是granules.,当SGA<128M时,granules为4M,当SGA>128M时,为16M
显示当前SGA组成部分,及最小单位
查当前各区块的大小.
1.shared pool
shared pool又分为library cache 和 data dictionary cache 两部分
1>library cache
作用:主要保存解析后的SQL语名
2>data dictionary cache
2.database buffer cache和redo log buffer
可以通过show parameter XXX查看这些参数
3.SGA中优化参数sga_target的设置
显示SGA_SIZE和SGA_TARGET
修改SGA_TARGET
修改前SGA_MAX_SIZE=196M,SGA_TARGET=0如下图
使用alter system set sga_target=值修改sga_target
可见修改后值为200M
当以spfiel启动这个值就不能再修改小了,要修改小它,要以pfile启动数据库,在pfile文件中可以编写.
Alter system set sga_target=200只是内存中修改,重启后就失效了
关于Pfile 和 spfile
Pfile和spfile互相生成(create spfile form pfile , create pfile from spfile)
Pfile生成spfile 重启oracle后,先用spfile启动,
使用show parameter spfile查询,如果value为空则使用的是pfile非空为spfile
下图oracle用刚建的spfile启动
在pfile文件中修改sga_target,
Spfile是二近制文件不能手动修改,一但修改文件就挂了.
灵活运用pfile与spfile
当把processes改为0时,关闭oracle就不能再启动了。些时可以用pfile启动,因为pfile文件可以手动修改,然后再可以用pfile生成spfiel
此时把spfile文件名修改再以以前的pfile启动.
2.服务器端进程(只有当oracle启动后才生成)
在服务器上查看后台进程
ps -ef | grep oracle
简单应用
在oracle中DBWR进程是最忙的,可以启动多个DBWR,下图只启动了一个
增加DBWR的个数,
当以spfiel启动时,需要在alter最后加参数scope=spfile
修改后重启生效
可见DBWR=3了.