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 <comment='text'> <deferred> <scope=memory|spfile|both> <sid='sid|*'>

默认情况下,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=memory|spfile|both> sid='sid|*'

scope和sid 设置的含义与前面的一样,但是SID=部分是必选的:

sys@ORCL>alter system reset sort_area_size scope=spfile sid='*';
系统已更改。

sys@ORCL>create pfile='D:\app\Administrator\product\11.2.0\dbhome_1\database\pf
le.tst' from spfile;

文件已创建。
然后查看D:\app\Administrator\product\11.2.0\dbhome_1\database\pfile.tst的内容,这个文件将在数据库服务器上生成。可以看到,参数文件中不再有sort_area_size参数了。

从spfile创建pfile

create pfile... from spfile

根据二进制spfile创建一个纯文本文件,生成的这个文件可以在任何文本编辑器中编辑,并且以后可以用来启动数据库。

1.创建一个“一次性的”参数文件,用于启动数据库来完成维护,其中有一些特殊的设置。

可以执行create pfile... from spfile命令,并编辑得到的文本pfile,修改所需的设置。

然后启动数据库,使用pfile=<filename>选项指定要使用这个pfile而不是spfile。

完成后,可以正常的启动,数据库又会使用spfile

2.维护修改历史,在注释中记录修改

修改被破坏的spfile

猜你喜欢

转载自blog.csdn.net/a0001aa/article/details/79635618