oracle reset 防火墙,小议Oracle RESET参数

本来RESET语法比较简单,结果被Oracle的文档上的错误信息彻底搞晕了,测试了半天才明白。

无论是Oracle 920的RAC 管理文档还是Oracle 1020的RAC管理和部署文档,在设置SPFILE部分都有错误。而且不光是给出的SQL语句有问题,很多描述本身就是错误的。

由于错误实在太多,这里就不详细描述了。如果看到Oracle文档中的这部分内容,需要小心注意一下。

ALTER SYSTEM RESET语句用于撤销SPFILE中错误的参数设置。无论单实例系统还是RAC环境都是可以使用的。为了描述的简单,下面的例子使用了单实例环境,而单实例和RAC环境没有什么本质的区别。

RESET的使用需要注意以下几点:

使用RESET时,必须指定SID,否则会出现错误。

SQL> ALTER SYSTEM RESET OPEN_CURSORS; ALTER SYSTEM RESET OPEN_CURSORS *第 1 行出现错误: ORA-00905: 缺失关键字 SQL> ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE; ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE *第 1 行出现错误: ORA-00905: 缺失关键字

不管是SET语句还是RESET语句,必须先指定SCOPE,然后指定SID语句,二者顺序不可颠倒。

SQL> ALTER SYSTEM SET OPEN_CURSORS = 300; 系统已更改。 SQL> ALTER SYSTEM RESET OPEN_CURSORS SID = '*' SCOPE = SPFILE; ALTER SYSTEM RESET OPEN_CURSORS SID = '*' SCOPE = SPFILE *第 1 行出现错误: ORA-00933: SQL 命令未正确结束 SQL> ALTER SYSTEM SET OPEN_CURSORS = 500 SID = '*' SCOPE = SPFILE; ALTER SYSTEM SET OPEN_CURSORS = 500 SID = '*' SCOPE = SPFILE *第 1 行出现错误: ORA-02065: 非法的 ALTER SYSTEM 选项

RESET语句中,如果SCOPE指定MEMORY或BOTH的时候,SID不能为‘*’。

SQL> ALTER SYSTEM RESET OPEN_CURSORS SCOPE = MEMORY SID = '*'; ALTER SYSTEM RESET OPEN_CURSORS SCOPE = MEMORY SID = '*' *第 1 行出现错误: ORA-32009: 无法重置实例 * 的内存值 (从实例 ytk 中) SQL> ALTER SYSTEM RESET OPEN_CURSORS SID = '*'; ALTER SYSTEM RESET OPEN_CURSORS SID = '*' *第 1 行出现错误: ORA-32009: 无法重置实例 * 的内存值 (从实例 ytk 中)

RESET语句可以指定SCOPE=MEMORY,但是RESET参数并不会导致MEMORY中设置的变化。

SQL> CREATE PFILE = 'E:INITYTK.ORA' FROM SPFILE;

文件已创建。

E:>FIND /I "OPEN_CURSORS" INITYTK.ORA

---------- INITYTK.ORA

*.open_cursors=300

SQL> ALTER SYSTEM SET OPEN_CURSORS = 2500;

系统已更改。

SQL> CREATE PFILE = 'E:INITYTK.ORA' FROM SPFILE;

文件已创建。

E:>FIND /I "OPEN_CURSORS" INITYTK.ORA

---------- INITYTK.ORA

*.open_cursors=2500

SQL> SHOW PARAMETER OPEN_CURSORS

NAME TYPE VALUE

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

open_cursors integer 2500

SQL> ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE SID = '*';

系统已更改。

SQL> ALTER SYSTEM RESET OPEN_CURSORS SCOPE = MEMORY SID = 'YTK';

系统已更改。

SQL> SHOW PARAMETER OPEN_CURSORS;

NAME TYPE VALUE

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

open_cursors integer 2500

SQL> CREATE PFILE = 'E:INITYTK.ORA' FROM SPFILE;

文件已创建。

E:>FIND /I "OPEN_CURSORS" INITYTK.ORA

---------- INITYTK.ORA

最后,需要重置的参数的SID设置必须与SPFILE中的匹配,如果在现有的SPFILE中找不到,是会报错的。

SQL> ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE SID = '*';

ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE SID = '*'

*第 1 行出现错误:

ORA-32010: 无法在 SPFILE 中找到要删除的条目

SQL&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值