我的目的是将系统中超过1分钟的inactive进程从oracle中剔除:
版本:oracle9206
我的实验环境是10g实验过程如下:
0.修改参数:
resource_limit=true
restartdatabase
1.创建profile文件:
create test_profile limit
idle_time=1
2.创建用户
CREATE USER TEST
IDENTIFIED BY test
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE TEST_PROFILE
ACCOUNT UNLOCK;
-- 3 Roles for TEST
GRANT RESOURCE TO TEST;
GRANT DBA TO TEST;
GRANT CONNECT TO TEST;
ALTER USER TEST DEFAULT ROLE ALL;
-- 3 System Privileges for TEST
GRANT CREATE ANY PROCEDURE TO TEST;
GRANT CREATE ANY TABLE TO TEST;
GRANT UNLIMITED TABLESPACE TO TEST;
3.连接到数据库中:
当前时间: 11:36:39.15
输入新时间:
C:\Documents and Settings\>sqlplus test/test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 3月 10 11:36:46 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from dual;
D
-
X
SQL>
4.查看session状态:
时间是11:38多点:
SQL> /
STATUS SID USERNAME
-------- ---------- ------------------------------
INACTIVE 159 TEST
时间是:11:40
SQL> /
STATUS SID USERNAME
-------- ---------- ------------------------------
SNIPED 159 TEST
上述的结果标明,现在这个inactive的进程并没有被oracle踢出数据库
我实验了9i和10g的环境,是我理解的问题还是这个参数不好用?还请大家指导;
[本帖最后由 smartbaohua 于 2008-3-10 13:36 编辑]