Oracle OCP笔记(07)初始化参数文件

Oracle OCP笔记(07)初始化参数文件

一.初始化参数文件
    初始化参数文件是数据库实例的配置文件,数据库实例在加载进内存时,内存中的参数通过参数文件或默认值构建.

二.两种初始化参数文件(pfile,spfile)
1.pfile(parameter file,参数文件)
    pfile是文本格式的参数文件,实例启动时只加载一次,通常认为是静态的.
    新版本Oracle已逐步取消pfile文件了
    默认名称: initSID.ora
    默认位置: $ORACLE_HOME/dbs/
              /u01/app/oracle/product/12.1.0/db_1/dbs/pfileSID.ora
    新版本Oracle已逐步取消pfile用spfile代替了,在位置$ORACLE_HOME/dbs/已经找不到这个pfile文件了.
    创建数据库后会保存一份pfile到以下位置,当spfile有问题时可以使用这个pfile来启动.
    /u01/app/oracle/admin/sid/pfile/init.ora.xxxxxxxxxxx

2.spfile(server parameter file,服务器参数文件)
    spfile是二进制的参数文件,在实例运行时能读取和更新spfile文件,通常认为是动态的
    默认名称: spfileSID.ora, spfile.ora
    默认位置: $ORACLE_HOME/dbs/
              /u01/app/oracle/product/12.1.0/db_1/dbs/spfileSID.ora

*** 数据库实例在加载时只会读取一个初始化参数文件.

三.搜索参数文件的顺序.
1.在启动实例时,Oracle会在默认位置尝试定位参数文件.
    Linux/Unix
    $ORACLE_HOME/dbs/spfileSID.ora
    $ORACLE_HOME/dbs/spfile.ora    (通常只用于RAC环境,一个文件可以启动多个实例)
    $ORACLE_HOME/dbs/initSID.ora
    Windows
    $ORACLE_HOME/database/spfileSID.ora
    $ORACLE_HOME/database/spfile.ora
    $ORACLE_HOME/database/initSID.ora

2.使用指定参数文件启动实例.
    startup pfile=$ORACLE_HOME/dbs/initSID.ora
    startup spfile=$ORACLE_HOME/dbs/spfileSID.ora

3.通过pfile创建spfile.
    create spfile[='spfilename'] from pfile[='pfilename'];
    create spfile='/u01/app/oracle/product/12.1.0/db_1/dbs/spfile' from pfile='/u01/app/oracle/product/12.1.0/db_1/dbs/pfile';

4.通过spfile创建pfile.
    create pfile[='pfilename'] from spfile[='spfilename'];
    create pfile='/u01/app/oracle/product/12.1.0/db_1/dbs/pfile' from spfile='/u01/app/oracle/product/12.1.0/db_1/dbs/spfileSID.ora';

*** 在实例启动前和启动后都可以创建pfile和spfile,一般在实例无法启动时可能会用到.

四.参数类型
1.静态参数与动态参数
    静态参数: 有些参数在实例启动后就固定了.
    动态参数: 有些参数可以在实例运行时更改.

    查看当前运行的实例中生效的参数值
    select name,value from v$parameter order by name;

    查看spfile参数文件中的参数值
    select name,value from v$spparameter order by name;
   
    查看参数类型:
    select name,value,issys_modifiable from v$parameter order by name;
    select distinct issys_modifiable from v$parameter;
    IMMEDIATE -- 动态参数,立即生效
    FALSE     -- 静态参数
    DEFERRED  -- 动态参数,延迟生效

    查看静态参数:
    select name,value from v$parameter where issys_modifiable='FALSE' order by name;

2.基本参数和高级参数
    基本参数: 应该为每个数据库使用基本参数.
    select name,value from v$parameter where isbasic='TRUE' order by name;

    select s.name,s.value
      from v$spparameter s join v$parameter p
        on s.name=p.name
     where p.isbasic='TRUE'
     order by name;

    高级参数: 只要高级参数使用了默认值设置,大多数数据库实例都可以完美运行。
    实际上还有一些隐式参数,通常不可见,只能在Oracle Support的指导下进行设置。

五.修改初始化参数
    语法:
    alter system set parameter=value [comment='text'] [deferred] [scope={spfile|both|memory}] [sid='sid|*'];
    deferred延迟生效.
    scope的三个可选值:
    memory: 只改变当前运行的实例.
    spfile: 只改变spfile文件的设置.
    both:   (默认值)改变实例及spfile文件的设置.

    如果修改的是静态参数,则必须指定scope=spfile,下次启动实例时参数才生效.
    修改静态参数不指定scope=spfile,则会出现错误: ORA-02095: specified initialization parameter cannot be modified.
    使用BOTH选项等同不带scope参数的alter system语句.
    如果使用pfile启动实例,设置scope=spfile将失败.

    有些参数可以在系统级别修改,也可以在会话级别修改.
    alter system set optimizer_mode=all_rows;
    alter session set optimizer_mode=first_rows;

    有些参数只能在会话级别进行修改,如: NLS_DATE_FORMAT.
    alter session set nls_date_format='dd-mm-yy hh24:mi:ss';

    重设参数为默认参数(reset)
    alter system reset log_archive_start scope=spfile;

六.常用参数
    cluster_database              -- 数据库是RAC还是单实例
    compatible                    -- 模仿的版本,一般是实际版本
    control_files                 -- 控制文件副本的名称和位置
    db_block_size                 -- 数据文件默认块大小
    db_create_file_dest           -- 数据文件的默认位置
    db_create_online_log_dest_1   -- 联机重做日志文件的默认位置
    db_create_online_log_dest_2   -- 联机重做日志文件多重副本的默认位置
    db_domain                     -- 网络域名
    db_name                       -- 数据库名称(唯一不具有默认值的参数),和域名一起组成全局数据库名称. --alter database rename global_name
                                  -- 更改全局数据库名称需要重启实例并重建控制文件
    db_recovery_file_dest         -- 闪回区域的位置
    db_recovery_file_dest_size    -- 闪回区域容量
    db_unique_name                -- 唯一标识符,如果安装了两个相同名称的数据库,则需要使用唯一标识符
    instance_number               -- 用于区分两个打开同一数据库的RAC实例.
    job_queue_processes           -- 运行所调度作业可用的进程数
    log_archive_dest_1            -- 归档重做日志文件的目标
    log_archive_dest_2            -- 归档重做日志文件的多重副本的目标
    log_archive_dest_state_1      -- 指示是否启用了目标
    log_archive_dest_state_2      -- 指示是否启用了目标
    nls_language                  -- 实例的语言
    nls_territory                 -- 实例的地理位置
    open_cursors                  -- 会话一次可以打开的SQL工作区数量
    pga_aggregate_target          -- 实例可以分配给PGA的总内存量
    processes                     -- 可以连接到实例的最大进程数量(包括会话服务器进程)
    remote_listener               -- 此实例注册到远程计算机的侦听器的地址,与RAC有关的参数.
    remote_login_passwordfile     -- 是否使用外部口令文件,以便允许口令文件身份验证.
    rollback_segments             -- 差不多废弃,被后面的UNDO参数替代
    sessions                      -- 允许连接到实例的最大会话数量
    sga_target                    -- 系统全局区域SGA内存大小
    shared_servers                -- 要启动的共享服务器进程数量.
    star_transformation_enabled   -- 是否允许优化器重写将事实表的维度连接在一起的查询
    undo_management               -- 在撤销表空间中自动管理撤销数据,还是在回滚段中手工管理
    undo_tablespace               -- 在使用自动撤销管理的情况下,确定撤销数据的位置.

 

你可能感兴趣的:(Oracle,OCP,oracle,ocp,parameter)