Oracle显示和设置初始化参数文件
为了在SQL*Plus中显示初始化参数,可以使用SHOW PARAMETER命令。该命令会显示初始化参数的名称、类型和参数值。
为了显示所有初始化参数的位置,可以直接执行SHOW PARAMETER命令。例如: SQL>show parameter NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_writer_processes integer 1 dbwr_io_slaves integer 0 ddl_lock_timeout integer 0 dg_broker_config_file1 string D:\\APP\\MANAGER\\PRODUCT\\11.1.0\\ DB_1\\DATABASE\\DR1ORCL.DAT dg_broker_config_file2 string D:\\APP\\MANAGER\\PRODUCT\\11.1.0\\ DB_1\\DATABASE\\DR2ORCL.DAT dg_broker_start boolean FALSE …. SHOW PARAMETER命令也可以显示特定初始化参数。为了显示特定初始化参数的名称、类型和参数值,可以在SHOW PARAMETER命令后指定参数名。示例如下: SQL> show parameter db_block_size NAME TYPE VALUE ------------------------------------ ----------- ----------- db_block_size integer 8192 当使用SHOW PARAMETER命令显示初始化参数信息时,只能显示参数名、类型和参数值,为了取得初始化参数的详细信息,应该查询动态性能视图V$PARAMETER。例如:
SQL> select isses_modifiable,issys_modifiable,ismodified 2 from v$parameter where name='sort_area_size'; ISSES ISSYS_MOD ISMODIFIED ----- --------- ---------- TRUE DEFERRED FALSE ISSES_MODIFIABLE用于标识初始化参数是否可以使用ALTER SESSION命令进行修改,当取值为TRUE时表示可以修改;取值为FALSE则表示不可以修改。ISSYS_MODIFIABLE用于标识初始化参数是否可以使用ALTER SYSTEM命令进行修改,取值IMMEDIATE时表示可以直接修改;取值为DEFERRED表示需要使用带有DEFERRED的选项进行修改;取值为FALSE表示不能进行修改。ISMODIFIED用于标识该初始化参数是否已经被修改,取值为MODIFIED表示使用ALTER SESSION进行了修改;SYSTEM_MOD表示使用ALTER SYSTEM命令进行修改;FALSE表示未进行修改。
静态参数是指只能通过修改参数文件而改变的初始化参数:动态参数是指在数据库运行时可以使用ALTER SESSION或ALTER SYSTEM命令动态改变的初始化参数。下面的命令将显示系统的静态参数:
SQL> select name from v$parameter 2 where isses_modifiable='FALSE'; NAME ------------------------------------------------------------------ lock_name_space processes sessions resource_limit license_max_sessions license_sessions_warning cpu_count instance_groups event sga_max_size pre_page_sga shared_memory_address hi_shared_memory_address use_indirect_data_buffers lock_sga shared_pool_size large_pool_size java_pool_size …. 动态参数是指在数据库运行过程中,可以动态修改的初始化参数。修改动态参数可以使用ALTER SESSION命令,也可以使用ALTER SYSTEM命令。这两者之间的区别是:ALTER SESSION是对会话的设置,会话结束后就失效了;ALTER SYSTEM修改的是数据库系统的配置,是全局性质。
在使用ALTER SYSTEM语句时,可以在SET子句中通过SCOPE选项来设置ALTER SYSTEM语句的影响范围。所谓影响范围,也就是ALTER SYSTEM语句对参数的修改是仅对当前实例有效,还是永久有效的。
SCOPE选项的取值如下:
SCOPE=MEMORY 对参数的修改仅记录在内存中。对于动态初始化参数,更改
将立即生效,并且由于修改不会记录在服务器端初始化参数文件中,在下一启动数据库时,仍然会使用修改前的参数设置。对于静态参数,则不能使用该选项。 SCOPE=SPFILE 对参数的修改仅记录在服务器端初始化参数文件中。该选项同时
适用于动态参数与静态参数。修改后的参数只有在下一次启动数据库时更改后才会生效。
SCOPE=BOTH 对参数的修改将同时记录在内存中和服务器端初始化参数文件
中。对于动态初始化参数,在更改后将立即生效,并且在下一次启动数据库时将使用修改后的参数设置。对于静态参数,则不能使用这个选项值。在执行ALTER SYSTEM语句时,Oracle默认地将SCOPE选项设置为BOTH。
注 意 在修改静态初始化参数时,只能将SCOPE选项设置为SPFILE。 在修改动态初始化参数时,还可以指定DEFERRED关键字,这样对参数所做的修改将延迟到新的会话产生时才生效。如果数据库没有使用服务器端初始化参数文件,在ALTER SYSTEM语句中将SCOPE选项设置为SPFILE或BOTH将会产生错误。
例如,利用下面的语句将对动态初始化参数LOG_CHECKPOINT_INTERVAL进行修改,修改结果不仅在当前实例中有效,而且还将记录在服务器端初始化参数文件中:
SQL> alter system set log_checkpoint_interval=50; 系统已更改。 如果要修改静态参数,则必须将SCOPE选项设置为SPFILE。例如修改静态初始化参数DB_FILES: SQL> alter system set db_files=100 scope=spfile; 系统已更改。 SQL> alter system set db_files=200 scope=memory; alter system set db_files=200 scope=memory * 第 1 行出现错误: ORA-02095: 无法修改指定的初始化参数
因篇幅问题不能全部显示,请点此查看更多更全内容