OracleArchitectureComponents(
Oracle结构组件)  
  1.由哪些组件组成  
  2.建立连接时需要哪些组件  
  ORACLE由两部分:实例和数据库  
  实例由以下组成:SGA,Sharedpool,Databasebuffercache,Redologbuffercache.  
  数据库由物理文件组成,其中必须有的文件是:数据文件,控制文件,重做日志  
  另外还有:参数文件,口令文件,归档日志文件(这三个不是必须的)  
  用户建立连接后,启动一个
服务器进程,用来将来代替用户进程完成
SQLCOMMAND,再通过ORACLE实例实现对数据库的相关文件进行改变(数据进行读取或修改).用户进程不可以直接操作数据库,而必须通过建立连接后,再通过
服务器进程来完成.  
  ORACLESERVER由两个部分组成,  
  1.INSTANCE:又由内存结构和后台进程  
  2.DATABASE:又由数据文件,日志文件和控制文件组成<这三个文件是必需的>.CONTROLFILE是用来连接实例和DATABASE的    
SQL>SHUTDOWNIMMEDIATE  
  SQL>STARTUPNOMOUNT  
  SQL>ALTERDATABASEMOUNT  
  以上三个过程就是通过CONTROLFILE来连接实例和数据库.  
  SQL>ALTERDATABASEOPEN  
  在OPEN的过程对DATABASE的数据文件和重做日志文件进行一次性的验证,验证它们的状态.ORACLEINSTANCE:存取数据库的一个手段  
  一个DATABASE与INSTANCE之间是1:N的关系,一个INSTANCE只能操作一个DATABASE,由内存结构(共享池,  
  BUFFERCACHE,REDOLOGBUFFERCACHE)及相应的进程结构组成(PMON<程序监控进程>,SMON<系统监控进程>,CKPT<检查点进程>)SQL>SHOWSGA---显示DATABASE内存结构信息  
  SQL>SETWRAPOFF  
  SQL>SETLINESIZE200  
  以上这两个是设置行宽  
  SQL>SELECT*FROMV$BGPROCESS;  
  将看到在这个系统中所有可能使用到的进程,其中PADDR并不每个进程都分配到有效的地址,即并不是每个进程都是必须的.  
  SQL>SELECT*FROMV$BGPROCESSWHEREPADDR<>'00'  
  将显示所有必需的进程.ESTABLISHINGACONNECTIONANDCREATINGASESSION  
  连接到ORACLE实例包括建立一个用户连接及创建会话.SQL>SELECT*FROMV$CONTROLFILES;--显示现系统下由几个控制文件组成  
  SQL>SELECT*FROMV$DATAFILE;--显示由几个数据文件组成  
  SQL>SELECT*FROMV$LOGFILE;--显示由几个日志文件组成ORACLEMEMORYSTRUCTURE(内存结构)  
  由两部分组成:  
  1.SGA  
  SGA是动态的,其最大值由SGA_MAX_SIZE指定,SGA的内存由SGACOMPONENTS来动态调整.  
  2.PGA是不共享的,即其包含的信息是不一样的,有两个可享的内存可以由SGA配置  
  <1>LARGEPOOL  
  <2>JAVAPOOLSQL>SHOWPARAMETERSHARED  
  SQL>SHOWPARAMETERDB_CACHE  
  SQL>SHOWPARAMETERLOG  
  以上三个命令是用于查看相关内存信息  
  SQL>ALTERSYSTEMSETDB_CACHE_SIZE=20M;  
  所有内存大小总和不能大于SGA_MAX_SIZE的值,当提示信息出现?号或乱码时,是由于系统的语言问题.  
  可以通过ALTERSESSIONSETNLS_LANGUAGE='AMERICAN'或ALTERSESSIONSETNLS_LANGUAGE="SIMPLECHINESE"SHAREDPOOL(共享池)  
  含:<1>LIBRARYCACHE库缓存  
  <2>DATADICTIONARYCACHE数据字典缓存,有的地方又称行CACHE,由SHARED_POOL_SIZE指定大小.  
  SQL>ALTERSYSTEMSETSHARED_POOL_SIZE=64M;LIBRARYCACHE主要为提高代码的共享,存储的是最近使用的SQL和PL/SQL代码.  
  <1>.用最近最少使用(LRU)算法  
  <2>.包括两个结构1:共享SQL代码2:共享PL/SQL代码  
  <3>.不可直接定义,而由SHAREDPOOLSIZE决定.DATADICTONARYCACHE.  
  如:SQL>SELECT*FROMAUTHORS;  
  执行此命令的过程是:首先确认是否存在AUTHORS,,然后确认字段存不存在,再检查语法,最后验证权限,而这些信息就属于DATADICTIONARYCACHE的内容.其包含的信息有:DATABASEFILES,表,索引,字段,用户,权限和其他数据库对象.  
  <1>.主要用来改变系统的感应时间和性能.  
  <2>.通过改变SHAREDPOOL大小来设置,DATADICTIONARYCACHE不能单独设置大小.