Oracle中alter system命令参数之scope
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中alter system命令参数之scope相关的知识,希望对你有一定的参考价值。
SCOPE
The SCOPE clause lets you specify when the change takes effect. Scope depends on whether you started up the database using a client-side parameter file (pfile) or server parameter file (spfile).
scope可指定对system的修改何时生效,scope=memory|spfile|both ,值取决于数据库使用pfile还是spfile启动
MEMORY
MEMORY indicates that the change is made in memory, takes effect immediately, and persists until the database is shut down. If you started up the database using a parameter file (pfile), then this is the only scope you can specify.
scope=memory,表示修改立即生效,持续到数据库关闭为止,若数据库使用pfile启动,这是唯一可选值,也是默认值。
SPFILE
SPFILE indicates that the change is made in the server parameter file. The new setting takes effect when the database is next shut down and started up again. You must specify SPFILE when changing the value of a static parameter that is described as not modifiable in Oracle Database Reference.
scope=spfile ,会修改spfile参数,新设置只有在重新使用spfile启动数据库的时候生效。
另外,若是修改静态参数(不能直接生效的参数),必须指定scope=spfile,否则若指定memory或者both会报如下错误:
ORA-02095: specified initialization parameter cannot be modified
因为静态参数不能直接通过修改内存而生效,只能通过修改spfile然后重启数据库生效。
BOTH
BOTH indicates that the change is made in memory and in the server parameter file. The new setting takes effect immediately and persists after the database is shut down and started up again.
scope=both,表示修改会发生在内存上立即生效,并修改spfile保证数据库重启后也生效。
If a server parameter file was used to start up the database, then BOTH is the default. If a parameter file was used to start up the database, then MEMORY is the default, as well as the only scope you can specify.
若数据库使用spfile启动,则scope=both是默认值
若数据库使用pfile启动,则scope=memory是默认值,也是唯一值。
静态参数,不能通过修改内存(默认scope值或scope=memory或scope=both)来生效,要通过修改spfile(),重启数据库来生效。
以上是关于Oracle中alter system命令参数之scope的主要内容,如果未能解决你的问题,请参考以下文章
[译] ALTER SYSTEM CANCEL SQL : 在 Oracle Database 18c 的会话中取消 SQL 语句
将 C# 中的“alter system”用于 ORACLE 10g 数据库
Oracle 18C新特性:ALTER SYSTEM CANCEL SQL