[ORACLE]Oracle 参数文件

本文运行环境

SQL> select BANNER_FULL from v$version;

BANNER_FULL
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0

1.参数文件:

    是一个包含一系列参数及参数对应值的操作系统文件。
类型:
    (Initialization Parameters Files)    pfile: 文本文件
    Server Parameter Files                  spfile 文件,该文件为二进制格式        --V$SPPARAMETER <---X$KSPSPFILE
    
    对于动态参数所有更改可以立即生效,同时你可以选择使更改只应用于当前实例还是同时应用到 spfile ,对于静态参数我们只能将变更应用到 spfile 文件,这些变更在数据库重启后生效。

select sid,name,value from v$spparameter where value is not null;

SID     NAME      VALUE
---------------------------------------- -------------------                         ----------------
*     processes 500
*     nls_language                                 AMERICAN

....
*     audit_trail                                  db
*     db_name  D4CDB
*     open_cursors                                  300
*     optimizer_index_cost_adj                      100
*     statistics_level                              ALL
*     diagnostic_dest                              /oracle/D4C
*     enable_pluggable_database                      true


查询输出结果中的 SID 项,如果 SID 为“*”则意味着参数设置对 RAC 集群中的所有实例有效,如果是指定了实例名称的,则只对相应实例生效;对于单实例数据库,则 SID项设置皆为“*”

V$SYSTEM_PARAMETER -->实例(INSTANCE)级别生效的参数设置,-->系统(SYSTEM)级别的参数设置;
V$PARAMETER        -->当一个会话(SESSION)创建时,会首先从 V$SYSTEM_PARAMETER 继承参数设置,显示在会话级别生效的参数设置,如果在会话级别修改了参数设置,这里的参数值就可能和V$SYSTEM_PARAMETER 显示的有所不同
V$PARAMETER2 和 V$PARAMETER 的区别在于,对于存在多个参数值的参数,在这个视图中分多行记录,
V$SYSTEM_PARAMETER2 和V$PARAMETER2类似

2.SPFILE 的创建
  

 create spfile from pfile;

缺省的,spfile 会创建到系统缺省目录,在 Unix 下的缺省目录为 $ORACLE_HOME/dbs在 Windows 上的缺省目录为$ORACLE_HOMEdatabase。
3.由内存创建参数文件

   create <spfile|pfile> from memory;

4.SPFILE 的搜索顺序
  使用 startup 命令:  spfile<ORACLE_SID>.ora -->spfile.ora -->init<ORACLE_SID>.ora

5.使用 PFILE/SPFILE 启动数据库
    

startup pfile='/oracle/D4C/193/dbs/init.ora';

     你可以在 PFILE 链接到 SPFILE 文件,同时在 PFILE 中定义其他参数,如果参数重复设置,后读取的参数将取代先前的设置
       修改 PFILE 文件内容如下:
#Pfile link to SPFILE
SPFILE= '/oracle/D4C/193/dbs/init.ora'
log_archive_start = false
可以预见这个 log_archive_start 参数设置将会代替 SPFILE 中的设置

6.修改参数
SCOPE 参数有三个可选值:MEMORY ,SPFILE , BOTH

  •     MEMORY-只改变当前实例运行,重新启动数据库后失效
  •     SPFILE-只改变 SPFILE 的设置,不改变当前实例运行,重新启动数据库后生效
  •     BOTH-同时改变实例及 SPFILE,当前更改立即生效,重新启动数据库后仍然有效。

针对 RAC 环境,ALTER SYSTEM 还可以指定 SID 参数,对不同实例进行不同设置    。所以通过 spfile 修改参数的完整命令如下:

alter system set <parameter_name> =<value> scope = memory|spfile|both [sid=<sid_name>]

7.解决 SPFILE 参数修改错误

    sqlplus "/ as sysdba"
    Connected to an idle instance.
    SQL> create pfile from spfile;
    File created.
    startup pfile=$ORACLE_HOME/dbs/initeygle.ora


8.重置 spfile 中设置的参数
    恢复某个参数为缺省值时,可以使用如下命令:

    alter system reset parameter <scope=memory|spfile|both> sid=’sid|*

    验证: strings spfile.ora |grep open

9.是否使用了 spfile

SELECT name,value FROM v$parameter WHERE name='spfile';

NAME                    VALUE
-----                  ------------------------------------------------
spfile                    /oracle/D4C/193/dbs/spfileD4C.ora

show parameter spfile;

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
spfile                     string     /oracle/D4C/193/dbs/spfileD4C.ora
SELECT COUNT(*) FROM v$spparameter WHERE value IS NOT NULL;

  COUNT(*)
----------
    30
原文地址:https://www.cnblogs.com/tingxin/p/12858765.html