11galtersystem set recyclebin = off 报错recyclebin 参数在11g10g中的区别


Oracle 11g,recyclebin参数发生了微小的变化.

This supported parameter was introduced inOracle 10.2.0

Version  ParameterName               Data Type             Session Modifiable             System Modifiable

10.2.0    recyclebin             String     TRUE      IMMEDIATE

11.1.0    recyclebin             String     TRUE      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用户分别发起2session连接到到我的ora11g数据库上

SESSION 1

Connected to Oracle Database 11g EnterpriseEdition Release 11.1.0.6.0

Connected as study

 

SQL> show parameter recyclebin

NAME           TYPE        VALUE

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

recyclebin     string     ON

 

SQL> alter system set recyclebin=off;

alter system set recyclebin=off

 

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

 

SQL>

SESSION 2

说明:session 1中发出alter system set recyclebin=off DEFERRED;命令的时候,我的session 2已经连接到了ora11g.在这个session中,我们用来体会

alter system set recyclebin=off DEFERRED;

命令对当前已经连接的session不影响

 

C:\Documents andSettings\zhangrp>sqlplus study/study

 

SQL*Plus: Release 11.1.0.6.0 - Productionon 星期五 2 20 16:20:50 2009

 

Copyright (c) 1982, 2007, Oracle. Allrights reserved.

 

连接到:

Oracle Database 11g Enterprise EditionRelease 11.1.0.6.0 - Production

With the Partitioning, OLAP, Data Miningand Real Application Testing options

 

SQL> show parameter recyclebin

NAME           TYPE        VALUE

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

recyclebin     string     ON

 

SQL> create table test_2(no int);

表已创建。

 

SQL> drop table test_2;

表已删除。

 

SQL> flashback table test_2 to beforedrop;

闪回完成。

 

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-2001Microsoft Corp.

 

C:\Documents andSettings\zhangrp>sqlplus study/study

 

SQL*Plus: Release 11.1.0.6.0 - Productionon 星期五 2 20 16:23:46 2009

 

Copyright (c) 1982, 2007, Oracle. Allrights reserved.

 

 

连接到:

Oracle Database 11g Enterprise EditionRelease 11.1.0.6.0 - Production

With the Partitioning, OLAP, Data Miningand Real Application Testing options

SQL> show parameter recyclebin

NAME           TYPE        VALUE

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

recyclebin     string     OFF