打印本文 打印本文 关闭窗口 关闭窗口
使用Oracle9i的新特征-停顿(QUIESCING)数据库
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1850  更新时间:2009/4/22 22:08:13  文章录入:mintao  责任编辑:mintao

(A)你可以检查V$INSTANCE视图中的ACTIVE_STATE这上字段。

SQL> SELECT ACTIVE_STATE FROM V$INSTANCE;

ACTIVE_ST

---------

NORMAL

ACTIVE_STATE有如下几个可能值:

Active_state

描述

Normal

数据库处于正常状态

QUIESCING

DATABASE wants to QUIESCED but waiting for active running transactions to finish.

数据库要想停顿,但要等待活动的运行事务完成。

 

 

Quiesced

数据库处于停顿的状态了.

 

(Q)怎样确定哪些连接着库的会话在等待停顿着的数据库呢?

(A)可以用如下的查询来确定:

SELECT SID,EVENT,TOTAL_WAITS,TIME_WAITED "TIME WAITED[100 OF SEC]",

AVERAGE_WAIT FROM V$SESSION_EVENT

WHERE EVENT=''''wait for possible QUIESCE finish''''

/

SQL>  
SID EVENT                              TOTAL_WAITS            Time Waited[100 of Sec] AVERAGE_WAIT
--- ---------------------------------- -----------            ----------------------- ------------
  6 wait for possible QUIESCE finish           412                             126532          307

"wait for possible QUIESCE finish"这个事件表明会话正等着“正停顿”的数据库以至于它不能进行它的事物。库停顿后这些会话将呈现hung的状态。

 (Q)在停顿数据库之前,对于资源管理器计划(resource manager plan) 需要做什么设定?

(A)  当你停顿了数据库,INTERNAL_QUIESCE资源计划被激活了。除SYS_GROUPS其它所有的资源组中的ACTIVE_SESS_POOL_P1应被设置为0。因SYS和SYSTEM用户都属于SYS_GROUPS组,所以只有它们可以连接到数据库。

要查看细节的信息可以查询DBA_RSRC_PLAN_DIRECTIVES这个视图。

记着如下几点:

  • 处于停顿状态的数据库只有SYS和SYSTEM是有效的用户来执行维护的工作;其它有DBA权限的用户也被视为一般的用户。
  • 在停顿的数据库中备份数据文件(泠备,拷贝数据文件)是无效的。
  • 如果库中有“活动”的事务,库是不能被停顿的。.
  • 需要启动数据库以设置资源计划

  • 停顿数据是9i的新特征,因此之前的版本中是不能用的。

结论:

停顿数据库是一个强大的特征使DBA不必重启数据库就可以执行一些特别的维护工作。

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口