sql> show parameter recyclebin
name type
value
------------------------------------ ----------- ------------------------------
recyclebin string
on
sql> alter system set recyclebin=off;
alter system set recyclebin=off
*
error at line 1:
ora-02096: specified initialization parameter is not modifiable with this
option
使用回话级别能修改
查看: 1612|回复: 2
<a target="_blank" href="http://www.itpub.net/space-uid-21217.html">toms_zhang</a>
<a target="_blank" href="http://www.itpub.net/home.php?mod=spacecp&ac=usergroup&gid=34">版主</a>
会员
<dl></dl>
<dt></dt>
精华贴数
<dd></dd>
<a target="_blank" href="http://www.itpub.net/home.php?mod=space&uid=21217&do=thread&type=digest&view=me&from=space">4</a>
专家积分
58
技术积分
22250
社区积分
2162
注册时间
2002-8-31
论坛徽章:
98
<a target="_blank" href="http://www.itpub.net/home.php?mod=spacecp&ac=friend&op=add&uid=21217&handlekey=addfriendhk_21217">加好友</a>
<a target="_blank" href="http://www.itpub.net/home.php?mod=spacecp&ac=pm&op=showmsg&handlekey=showmsg_21217&touid=21217&pmid=0&daterange=2&pid=12915152&tid=1127486">发消息</a>
<a target="_blank" href="http://www.itpub.net/thread-1127486-1-1.html">1#</a>
this supported parameter was introduced in oracle 10.2.0
version
parameter name
data type
session modifiable
system modifiable
10.2.0
recyclebin
string
true
immediate
11.1.0
deferred
从文档上我们可以看到这个变化说明,到了11g中,这个参数在session依然可以理解修改并影响当前的session,但如果是在系统一级修改的话,那么就要加deferred参数,对当前已经连接的sesion没有影响,但新连接的session将受到影响
sql> select name,isses_modifiable,issys_modifiable from v$parameter where name='recyclebin';
name isses_modifiable issys_modifiable
----------- ---------------- ----------------
recyclebin true deferred
sql>
下面做一个测试看看:
一开始,我用study用户分别发起2个session连接到到我的ora11g数据库上
session 1
connected to oracle database 11g enterprise edition release 11.1.0.6.0
connected as study
name type value
-------------- ----------- --------------
recyclebin string on
ora-02096:
此选项的指定初始化参数不可修改
sql> alter session set recyclebin=off;
session altered
sql> create table zrp(no int);
table created
sql> drop table zrp;
table dropped
sql> flashback table zrp to before drop;
flashback table zrp to before drop
ora-38305: 对象不在回收站中
可以看到,在system一级,不加deferred参数是不允许修改的,但在session一级可以修改.
sql> alter system set recyclebin=off deferred;
system altered
session 2
说明:在session 1中发出alter system set recyclebin=off deferred;命令的时候,我的session 2已经连接到了ora11g上.在这个session中,我们用来体会
alter system set recyclebin=off deferred;
命令对当前已经连接的session不影响
c:\documents and settings\zhangrp>sqlplus study/study
sql*plus: release 11.1.0.6.0 - production on 星期五 2月 20 16:20:50 2009
copyright (c) 1982, 2007, oracle. all rights reserved.
连接到:
oracle database 11g enterprise edition release 11.1.0.6.0 - production
with the partitioning, olap, data mining and real application testing options
sql> create table test_2(no int);
表已创建。
sql> drop table test_2;
表已删除。
sql> flashback table test_2 to before drop;
闪回完成。
sql> desc test_2
名称 是否为空? 类型
------------ --------- -----------
no number(38)
session 3
在session 1中完成alter system set recyclebin=off deferred;命令以后,我们再发起一个新的连接,看看是不是对新的连接生效:
microsoft windows xp [版本 5.1.2600]
(c) 版权所有 1985-2001 microsoft corp.
sql*plus: release 11.1.0.6.0 - production on 星期五 2月 20 16:23:46 2009
recyclebin string off
通过测试,可以看出,一切都是按照预期的行为发生的.
<a target="_blank" href="http://tomszrp.itpub.net/post/11835/478940">http://tomszrp.itpub.net/post/11835/478940</a>