ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 小议RESET参数

小议RESET参数

原创 Linux操作系统 作者:yangtingkun 时间:2007-03-07 00:00:00 0 删除 编辑

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


无论是Oracle920RAC 管理文档还是Oracle1020RAC管理和部署文档,在设置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指定MEMORYBOTH的时候,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> ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE SID = 'YTK';
ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE SID = 'YTK'
*
1 行出现错误:
ORA-32010:
无法在 SPFILE 中找到要删除的条目


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

系统已更改。

SQL> ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE SID = 'YTK';
ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE SID = 'YTK'
*
1 行出现错误:
ORA-32010:
无法在 SPFILE 中找到要删除的条目


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

系统已更改。

SQL> ALTER SYSTEM SET OPEN_CURSORS = 500 SCOPE = SPFILE SID = 'YTK';

系统已更改。

SQL> ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE SID = '*';
ALTER SYSTEM RESET OPEN_CURSORS SCOPE = SPFILE SID = '*'
*
1 行出现错误:
ORA-32010:
无法在 SPFILE 中找到要删除的条目


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

系统已更改。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69195/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10486568