sqlplus之 参数文件
扫描二维码
随时随地手机看文章
要得到一个实例参数的当前值,可以查询视图 V$parameter,也可以使用show parameter
sys@ORCL>select value from v$parameter where name='pga_aggregate_target'; VALUE -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------- 0 sys@ORCL>show parameter pga_agg; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ pga_aggregate_target big integer 0
DISTRIBUTED_TRANSACTIONS,可以设置为某个正整数,它能控制数据库可以执行的并发分布式事务的个数,但9.0.1以后,这个参数被去掉了:
sys@ORCL>alter system set distributed_transactions=10; alter system set distributed_transactions=10 * 第 1 行出现错误: ORA-25138: DISTRIBUTED_TRANSACTIONS初始化参数已废弃
-----------------------------------------------------------------------------------------
服务器参数文件 SPFILE
1.SPFILE存储在数据库服务器上;必须存在于服务器主机本身,不能放在客户机上。对于参数设置来说,只有一个"信息来源"
2.不能手动维护,利用alter system,完全可以直接将值写入spfile.管理员不必再手动的查找和维护所有参数文件
命名约定 spfile%oracle_sid%.ora
设置spfile中的参数值
spfile是二进制文件,不能用文本编辑器来编辑,必须使用alter system命令
alter system set parameter=value
默认情况下,alter system set 会更新当前运行的实例,并且会修改spfile
1. parameter=value 提供了参数以及参数的新值
2. comment='text' 与此参数设置相关的可选注释,这个注释会出现在V$parameter视图的update_comment字段中。
3. deferred 指定系统修改是否只对以后的会话生效(对当前建立的会话无效,包括执行此修改的会话)。
默认情况下,alter system命令会立即生效,但是有些参数不能“立即”修改,只能为新建立的会话修改这些参数。
sys@ORCL>select name from v$parameter where issys_modifiable='DEFERRED'; NAME -------------------------------------------------------------------------------- backup_tape_io_slaves recyclebin audit_file_dest object_cache_optimal_size object_cache_max_size_percent sort_area_size sort_area_retained_size olap_page_pool_size 已选择8行。
如上显示,sort_area_size可以在系统级修改,但是必须以延迟方式修改
sys@ORCL>alter system set sort_area_size=65536; alter system set sort_area_size=65536 * 第 1 行出现错误: ORA-02096: 此选项的指定初始化参数不可修改 sys@ORCL>alter system set sort_area_size=65536 deferred; 系统已更改。
4. scope=memory|spfile|both 指示这个参数设置的“作用域”
scope=memory 只在实例中修改;数据库重启后将不再保存。下一次重启数据库时,设置还是修改前的样子
scope=spfile 只修改spfile中的值。数据库重启并再次处理spfile之前,这个修改不会生效。
有些参数只能使用这个选项来修改,例如,processes参数必须使用 scope=spfile ,因为我们无法修改活动实例的processes值
scope=both 内存+spfile 都会完成参数修改。这个修改将反应在当前实例中,下一次重启时,这个修改也会生效。这是使用spfile时默认的作用域值
5.sid='sid|*' 主要用于集群环境,默认值 sid='*'。可以为集群中任何给定的实例唯一地指定参数设置。
除非使用oracle RAC,否则一般不需要指定sid=设置
用法如下:
sys@ORCL>alter system set pga_aggregate_target=1024m; 系统已更改。 sys@ORCL>alter system set pga_aggregate_target=1024m comment='changed 21-March-2018 of Anna'; 系统已更改。 sys@ORCL>select value,update_comment from v$parameter where name='pga_aggregate_target'; VALUE -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------- UPDATE_COMMENT -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------- 1073741824 changed 21-March-2018 of Anna
取消spfile中的值设置
不希望spfile有这个参数设置,想把它删掉,但不能使用文本编辑器来编辑这个文件,同样的使用alter system命令完成:
alter system reset parameter
scope和sid 设置的含义与前面的一样,但是SID=部分是必选的:
sys@ORCL>alter system reset sort_area_size scope=spfile sid='*'; 系统已更改。 sys@ORCL>create pfile='D:appAdministratorproduct11.2.0dbhome_1databasepf le.tst' from spfile; 文件已创建。
然后查看D:appAdministratorproduct11.2.0dbhome_1databasepfile.tst的内容,这个文件将在数据库服务器上生成。可以看到,参数文件中不再有sort_area_size参数了。
从spfile创建pfile
create pfile... from spfile
根据二进制spfile创建一个纯文本文件,生成的这个文件可以在任何文本编辑器中编辑,并且以后可以用来启动数据库。
1.创建一个“一次性的”参数文件,用于启动数据库来完成维护,其中有一些特殊的设置。
可以执行create pfile... from spfile命令,并编辑得到的文本pfile,修改所需的设置。
然后启动数据库,使用pfile=
完成后,可以正常的启动,数据库又会使用spfile
2.维护修改历史,在注释中记录修改
修改被破坏的spfile