虽然初始化参数可以修改,但是不能使用指定的命令去修改
SQL> show parameter inmemory_size; NAME TYPE VALUE ------------------------ ----------- ------ inmemory_size big integer 0
SQL> alter system set inmemory_size=200m scope=spfile; alter system set inmemory_size=200m scope=spfile * ERROR at line 1: ORA-02096: specified initialization parameter is not modifiable with this option
检查 v$parameter 数据字典视图,以查看某个参数是否可以在会话中或者系统级别下更改
SQL> select isses_modifiable, issys_modifiable from v$parameter where name='inmemory_size'; ISSES_MODIFIABLE ISSYS_MODIFIABLE ---------------- ---------------- FALSE IMMEDIATE
综上,我重启了一下CDB后再次执行该命令成功执行。
issys_modifiable的枚举值
FALSE | 表示参数在实例的生命周期内不能改变其值;需要重新启动数据库才能使更改生效 |
IMMEDIATE | 值表示它是动态的,可以设置为更改当前活动实例以及未来数据库重新启动 |
DEFFERED | 也是动态的,但变化只会影响后续的会话,当前活跃的会话不会受到影响并保留旧的参数值 |