日期:2014-05-16  浏览次数:20571 次

实例管理

一、设置数据库初始化参数

 1、Oracle服务器在启动例程时读取初始化参数文件。共有两种类型的初始化参数文件:

(1) 静态参数文件pfile,一般名为 initSID.ora。

  a) 文本文件

  b) 使用操作系统编辑器进行修改

  c) 手动进行修改

  d) 所作更改在下次启动时生效

  e) 仅在例程启动过程中打开

  f) 缺省位置为 $ORACLE_HOME/dbs

 

(2)  动态参数文件spfile,一般名为 spfileSID.ora。

  a) 二进制文件

  b) 由 Oracle 服务器进行维护

  c) 始终驻留在服务器端

  d) 所做更改永久有效,不受关闭和启动的影响

  e) 可以自行调节参数值

  f) 使恢复管理器能够备份初始化参数文件


(3)查参数

  v$parameter   --显示当前在运行的实例中生效的参数值。

  v$spparameter--显示磁盘上的spfile中存储的值。

    selectname,value,DESCRIPTION from v$parameter where name like '%proces%';

   show parameter processes

   v$pramater(X$KSPPI,X$KSPPCV)

    processes  --ORA-00020:maxnum number of processes(150) exceeded;

    session     1.5processes+22(11g)    1.1processes+5(10g)

    memory_max_target   --控制、预留

    memory_target

    sga_max_size

    sga_target_size

    db_cache_size

    shared_pool_size

   pga_aggregate_target

    log_archive_dest_1

    open_cursours

    session_cached_cursors

    undo_managemnet

    _allow_resetlogs_corruption

    _corrupted_rollback_segments

   --(select segment_name formdba_rollback_segs;undo_managemnet=MANUAL)

 

 (4)修改参数

  pfile  --纯文本

  spfile  --二进制

  alter system|session reset|set parameter_name=     scope=both,spfile,memory [sid=’sid’|’*’]

    #SID是指实例。在RAC中,一个数据库对应多个实例,可以使用此选项,只针对某个实例修改某个参数的值

 

二、数据库启动和关闭的多个阶段

1、数据库的四种状态

 SHUTDOWN

 NOMOUNT

 MOUNT

 OPEN


2、在启动时按顺序搜索实例参数文件


 

  这里SID指的是参数文件要启动的实例名称。

  参数默认存放在位置在:$ORACLE_HOME/dbs

  参数启动的优先级-->spfile<sid>.ora-->spfile.ora--init<sid>.ora这个搜索顺序非常重要!如果不存在这三个文件,就不能启动实例。

        NOMOUN模式只使用参数文件和警报日志。

 

3、实例启动的完整步骤




 上图对应的命令:

   第一步启动:   startup;

   第二步创建实例: startup nomount;

   第三步加载数据库:alter database mount;

   第四步打开数据: alter database open;

 

   数据库启动的验证:alter session set events 'immediate trace name file_hdrs level10';//控件文件与数据文件头

    (1)第一次检查数据文件头中的Checkpoint CNT是否对应控制文件中的Checkpoint CNT一致,如果相等,则进行第二次检查.

    (2)第二次检查数据文件头的开始SCN和对应控制文件中的结束SCN是否一致.如果结束SCN等于开始SCN,则不需要对那个文件进行恢复.对每个数据文件都完成检查后,打开数据库,同时将每个数据文件的结束SCN设置为无穷大FFFFFFFFFFF.

 

4、关闭数据库

 shutdown abort|immediate|transactional|normal

(1) shutdownabort;

   这个命令相当于断电。实例立即终止。此时,不会将任何数据写入磁盘,也不会关闭任何文件句柄,同时也不会采用任何有序的方式终止正在进行的事务。

 友情提示:执行shudownabort命令不会坏数据库,因此,我们建议在数据库异常退出之后不执行诸如备份之类的某些操作。

(2) shutdownimmediate;

  这个命令不允许任何新的用户连接,当前所有连接的会话都被终止。任何活动的事务都将回滚,随后数据库会关闭。这个命令是我们平时用的最多的关闭数据库的命令。

(3) shutdowntransactional;

  这个命令不允许任何新的用户连接,不存在于某个事务中的现有会话会被终止,允许当前位于某个事务中的会话完成该事务之后终止。一旦所有会话终止,就会关闭数据库。

(4) shutdownnormal;

   这个命令是默认的选项,即等于shutdown;该命令不允