暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

alter system set | reset及参数解释

原创 .ing 2022-08-29
3421
oralce 11.2.0.4 测试

1. alter system set processes=200 scope=(both spfile memory)  sid=(sid *)

默认语法顺序,不能改变,sid必须在scope后面

1.1 scope参数

  三个选项
【both】default:在内存和spfile中同时进行修改。新的设置立即生效并且在数据库重启后仍然有效
【spfile】:在spfile中进行修改,必须重启数据库才会使修改生效
【memory】:在内存中进行修改,立即生效,一直持续到数据库关闭

1.2 sid参数

影响的实例范围,主要用在 rac 下,根据需要设置不同的实例,有两个取值
【sid】:可以指定rac中任意instance设置参数,
【*】default:所有instance

1.3 模拟

初始值

SQL> show parameter processes


NAME            TYPE        VALUE
-----------      --------    --------------
processes       integer    200

【FALSE】静态参数修改

SQL> alter system set processes=150 scope=memory;
alter system set processes=150 scope=memory
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified

SQL> alter system set processes=150 scope=both;
alter system set processes=150 scope=both
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified

SQL> alter system set processes=150 scope=spfile;

System altered.

重启数据库生效

SQL> show parameter processes;

NAME                TYPE              VALUE
-----------          -------------    ------------
processes          integer            150

由于此参数为静态参数,所以内存修改报错

在oracle中通过视图v$parameter的issys_modifiable 列的值可以判断

SQL> select name,issys_modifiable from v$parameter;


NAME                                  ISSYS_MOD
-------------------                ------------------------------------------------------------- ---------

processes                            FALSE
open_cursors                      IMMEDIATE
backup_tape_io_slaves       DEFERRED

关于scope范围和issys_modifiable参数类型比较

issys_modifiable\scope

spfile

memory

both

静态参数(FALSE)

可以,重启服务器生效

不可以

不可以

动态参数(IMMEDIATE)

可以,重启服务器生效

可以,立即生效,重启服务失效

可以,立即生效,重启服务器仍然有效果

【IMMEDIATE】动态参数修改

SQL> show parameter open_cursors

NAME                    TYPE           VALUE
-----------------     --------       ----------- 
open_cursors         integer       300

SQL> alter system set open_cursors=200 scope=memory;

System altered.

SQL> show parameter open_cursors

NAME                    TYPE           VALUE
-----------------     --------       ----------- 
open_cursors         integer       200

【DEFERRED】延迟参数修改

重新连接生效

SQL> show parameter backup_tape_io_slaves

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
backup_tape_io_slaves boolean TRUE
SQL> alter system set backup_tape_io_slaves=false DEFERRED;

System altered.

SQL> show parameter backup_tape_io_slaves

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
backup_tape_io_slaves boolean TRUE


SQL> alter system set backup_tape_io_slaves=true DEFERRED sid='*';

System altered.

SQL> alter system set backup_tape_io_slaves=true DEFERRED sid='pri';

System altered.

SQL> alter system set backup_tape_io_slaves=true scope=memory DEFERRED sid='pri';
alter system set backup_tape_io_slaves=true scope=memory DEFERRED sid='pri'
*
ERROR at line 1:
ORA-02096: specified initialization parameter is not modifiable with this
option

2. alter system reset 

重启生效
单实例:alter system reset parameter scope=memory | spfile | both;

集群:alter system reset parameter scope=memory | spfile | both sid='sid|*';

SQL> alter system reset open_cursors scope=spfile sid='pri';
alter system reset open_cursors scope=spfile sid='pri'
*
ERROR at line 1:
ORA-32010: cannot find entry to delete in SPFILE

SQL> alter system reset open_cursors scope=spfile sid='*';

System altered.

SQL> alter system reset open_cursors scope=memory sid='pri';
alter system reset open_cursors scope=memory sid='pri'
*
ERROR at line 1:
ORA-32029: resetting with SCOPE=MEMORY or SCOPE=BOTH is currently not supported


SQL> alter system reset open_cursors scope=memory sid='*';
alter system reset open_cursors scope=memory sid='*'
*
ERROR at line 1:
ORA-32029: resetting with SCOPE=MEMORY or SCOPE=BOTH is currently not supported


SQL> alter system reset open_cursors scope=both sid='pri';
alter system reset open_cursors scope=both sid='pri'
*
ERROR at line 1:
ORA-32029: resetting with SCOPE=MEMORY or SCOPE=BOTH is currently not supported


SQL> alter system reset open_cursors scope=both sid='*';
alter system reset open_cursors scope=both sid='*'
*
ERROR at line 1:
ORA-32029: resetting with SCOPE=MEMORY or SCOPE=BOTH is currently not supported

最后修改时间:2022-08-29 22:24:29
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论