1、oracle启动3个步骤: 一、nomount(只须要参数文件) a、依次寻找$ORACLE_HOME/database/中的如下文件: spfile$ORACLE_SID.ora,spfile.ora,init$ORACLE_SID.ora 注:在$ORACLE_HOME/admin/pfile/中有第一次启动数据库是用的pfile=init.ora.<时间>?? unix:$ORACLE_HOME/dbs/ b、其余日志文件在$ORACLE_HOME/admin/中。 c、控制文件,重作日志,表空间文件在如下目录中: $ORACLE_HOME/oradata/$ORACLE_SID/ [使用rman target /能够在没有参数文件nomount,db_name=DUMMY] 二、mount a、寻找控制文件 b、寻找口令文件pwd<sid>.ora或orapw c、unix中在mount后会有lk<sid>文件 三、open a、根据控制文件寻找日志文件和数据文件 b、检查控制文件和数据文件的checkpoint cnt是否一致 c、检查控制文件和数据文件的scn是否一致 d、启动在线日志,提供对外服务等 2、检查点相关: 一、检查点设置 8i:FAST_START_IO_TARGET,LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL 9i:FAST_START_MTTR_TARGET 10g:自动检查点调整 二、转储控制文件 alter session set events 'immediate trace name CONTROLF level 10'; 三、转储数据文件头 alter session set events 'immediate trace name file_hdrs level 10'; 3、关闭数据库 一、shutdown immediate;正常结束,彻底检查点 二、shutdown abort;非正常结束,下次启动时,系统会自动根据重作日志重作事务 4、数据字典 一、内部RDBMS(X$)表,能够从v$fixed_table查到,能够经过查看一些系统视图的执行计划找到。 二、数据字典表,一般以“$”结尾,rdbms/admin/sql.bsq中建立 三、动态性能视图,一般以“V$”开头(含GV$开头),v$synonym->sys.v_$view->sys.v$view->X$table,v$fixed_view_definition记录其余视图的建立过程。rdbms/admin/catalog.sql中建立 四、数据字典视图,user_*,all_*,dba_*,是x$table,table$的视图 5、内存管理 a、sga v$sgastat,v$sgainfo 一、fixed size(实例的通用信息,后台进程须要访问的信息,不含用户信息) 二、variable size shared pool(sql区,执行计划,数据字典,内库等) large pool(相关服务器模式,并行计算和RMAN) java pool streams pool(若是没有定义,则包含在shared pool中) 三、database buffers buffer cache(default pool,keep pool,recycle pool) 9i以前由db_block_buffers(块数量)和db_block_size(块大小)决定; 9i以后新参数db_cache_size,定义主块(db_block_size定义的块)组成的default缓冲池大小,最小单位为granule,9i新概念,if(sga<128MB) granule=4MB else granule=16MB. 四、redo buffers(没有定义时,在fixed size中) redo log buffer(由log_buffer决定) b、系统参数shmmax unix下一般为32MB,此为每一个共享内存块的大小,若是sga大于这个参数值,就会分配多个共享内存块。建议调整shmmax参数,使一个sga在一个块中。 c、sga的管理 一、8i中,由pfile静止定义参数大小 二、9i中,能够动态调整spfile参数 各个内存必须是granule的整数倍,自动向上取整, sga各个内存相加不能超过SGA_MAX_SIZE, SGA最低位3个granule,分别是fixed sga(redo),buffer cache,shared pool. 有V_$DB_CACHE_ADVICE,V_$SHARED_POOL_ADVICE对缓冲池和共享池的建议值, 三、10g中,ASMM 新参数SGA_TARGET,系统动态自动调整,可是必须小于SGA_MAX_SIZE,能够自动调整的参数:buffer cache,shared pool,java pool,large pool.记录到spfile中的参数以'__'开头。 须要手动调整的参数:非标准block_size的cache,keep/recycle buffer cache,redo log buffer,stream pool. sga_target=0,表示手动调整。 d、pga(在服务器进程启动或建立是分配,运行时再分配排序、链接等,一般包含私有sql区,存放绑定信息、运行是内存结构等,和session信息等) 一、8i中,有如下主要参数:sort_area_size,hash_area_size,bitmap_merge_size,create_bitmap_area_size.(show parameter area_size) 二、9i,自动化sql执行内存管理,新参数: pga_aggregate_target--全部session最大pga内存(10M……4096G-1)bytes.只对专用服务器模式有效,10g才对共享有效。 workarea_size_policy--开关pga内存自动管理。 e、pga_aggregate_target(同时限制全局pga分配和私有工做区内存分配) 一、串行,单个sql操做能用的pga=min(5%pga_aggregate_target,100mb);并行,单个sql操做能用的pga=30%pga_aggregate_target/dop(并行度) 二、pga分可调整内存和不可调整内存,可调整内存是由sql工做区使用的,启动自动pga调整后,可调整内存+不可调整内存<=pga_aggregate_target. 三、参数设置,oracle的建议方案: 对于OLTP系统,pga_aggregate_target=(<total physical memory>*80%)*20%;对于DSS(决策支持系统)系统,pga_aggregate_target=(<total physical memory>*80%)*50%. 四、能够经过v$process.pga_used_mem看每一个进程使用pga的状况,可是在aix系统中实际使用内存可能比这个大。 五、sql工做区的3种方式: optimal,内存完成;onepass,少许磁盘io;multipass,大量磁盘io。select name,value from v$sysstat where name like 'workarea executions%' f、pga的调整建议 v$pga_target_advece,v$pga_target_advice_histogram提供优化建议值。