Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

实例管理

$
0
0

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

 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;该命令不允许任何新的用户连接,但是允许继续当前的所有连接。只有所有用户(自愿地)退出登录时,数据库才能真正关闭。

友情提示:通常,正常的数据库关闭是没有意义的:即使只剩下Database Control在运行,也总是存在尚未退出登录的用户。

(5) startupforce;

  这个命令是由两条命令组成:先是shutdown abort;然后startup。有时在测试库了为节省时间偷一下懒,就用此命令。

(6) 有序的关闭数据库

 sys@OCM> alter database close;

 

Databasealtered.

 

sys@OCM>select status from v$instance;

 

STATUS

------------

MOUNTED

 

sys@OCM>alter database dismount;

 

Databasealtered.

 

sys@OCM>select status from v$instance;

 

STATUS

------------

STARTED

 

sys@OCM>shutdown abort;

ORACLEinstance shut down.

 

这些命令将完全颠倒启动顺序。在实际中,这样做没有价值,DBA直接使用shutdown命令。

 




三、告警日志文件和跟踪文件

 存储位置由background_dump_dest 这个参数决定

 告警日志包含了以下信息:

  1、数据库启动或关闭的时间。

 2、所有非缺省初始化参数的列表。

 3、后台进程的启动。

 4、例程使用的线程。

 5、正在向其中写入信息的日志序列号 LGWR。

 6、有关日志切换的信息。

 7、表空间的创建和回滚段的创建。

 8、已发出的警报声明。

 9、有关 ORA-600 等错误消息和区错误的信息。

友情提示:很多DBA在被要求第一次查看数据库时,首先会查找告警日志,并从头到尾浏览一遍,以了解目前发生的事情。

 

  user_dump_dest 这个参数决定位置(在11g中bdump与 udump都同一个位置了)

  跟踪文件包含以下内容:

  主要记录后台进程的一些信息,记录些用户运行相关的信息,如:用户所执行的SQL语句的相关信息

  有个参数是控制这个跟踪日志的大小

sys@OCM>show parameter max_dump_file_size

 

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

max_dump_file_size                   string      unlimited

 

可以修改此参数控制跟踪日志文件的大小

 

四、动态性能视图与数据库启动

  nomount:v$parameter,v$sparameter,v$sga,v$sgastat,v$bh,v$instance,v$option,v$version,v$procession,v$processes,v$session

   mount:v$thread,v$controlfile,v$database,v$datafile,v$logfile,v$datafile_header

 

 

五、考点:

1、因为在实例启动时只被读取一次,所以init文件被认为是“静态的”参数文件。因为Oracle在实例运行时会不断地读取和更新spfile文件,所以这种文件被认为是“动态的”参数文件。区分参数文件类型十分重要,因为有一个参数不具有默认值:DB_NAME参数。

 



作者:guoyJoe 发表于2013-3-2 0:21:55 原文链接
阅读:108 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>