如何禁用Oracle的回收站?

pvabu6sv  于 2023-08-03  发布在  Oracle
关注(0)|答案(2)|浏览(120)

在工作中,我们的DBA禁用了回收站。在家里,在回答stackoverflow问题时,我创建了很多表,这些表很快就被删除了。
我想关闭回收站。在研究过程中,我发现了两种方法:

ALTER SESSION SET RECYCLEBIN = OFF;

字符串
甚至

ALTER SYSTEM SET RECYCLEBIN = OFF DEFERRED;


但是,我使用的是Oracle的vagrant box,那么如何在安装数据库时禁用recyclebin,或者换句话说,如何使用init参数禁用recyclebin?

1yjd4xko

1yjd4xko1#

与其他初始化参数一样,您可以在文本初始化文件initSID.ora中设置recyclebin参数的初始值:

recyclebin=off

字符串
也如@Kumar所建议的那样,你可以在之后将其设置为:
alter system set recyclebin = OFF SCOPE = SPFILE SID='*'

h79rfbju

h79rfbju2#

关于documentation
禁用回收站不会清除或以其他方式影响已在回收站中的对象。默认情况下启用回收站。
可以通过更改recyclebin初始化参数来启用和禁用回收站。此参数不是动态的,因此在使用ALTER SYSTEM语句更改它时需要重新启动数据库。
要检查参数值:

SQL> show parameter recyclebin;

NAME         TYPE        VALUE
------------ ----------- ----------
recyclebin   string      ON

字符串

关闭回收站:

会话级别:

ALTER SESSION SET recyclebin = OFF;


数据库级别:

ALTER SYSTEM SET recyclebin = OFF SCOPE = SPFILE; -- Requires database restart


要从回收站中删除所有拖放的对象(当前用户),请执行以下操作:

PURGE RECYCLEBIN;


要从回收站中删除所有丢弃的对象(系统范围内,仅适用于SYSDBA,或者从12c版本开始,适用于具有PURGE DBA_RECYCLEBIN系统权限的用户):

PURGE DBA_RECYCLEBIN;

相关问题