zoukankan      html  css  js  c++  java
  • Oracle的参数文件

    参数文件的作用:

       它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。

    参数文件分为两类:

    1. 初始化参数文件pfile(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件。文件名通常为init<sid>.ora
    2. 服务器参数文件spfile(Server Parameter Files),从9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改。  文件名通常为spfile<sid>.ora,支持RMAN备份。

    区别:

      PFILE是文本文件的,而SPFILE是二进制格式的。但是pfile也可以通过more或者less查看

      SPFILE的修改是可以通过SQL命令在线修改,不再需要通过手工修改,对于动态参数所有更改可以立即生效,而PFILE的修改必须重启实例才能生效。

    优先级别:

    oracle 启动读取参数文件的顺序,如果个文件都不存在,则Oracle会报错

        spfile<sid>.ora --> spfile.ora -->init<sid>.ora

    缺省目录:

    $ORACLE_HOME/dbs

     参数文件之间的转换:

    spfile-->pfile

    SQL> create pfile from spfile;
    
    文件已创建。
    
    SQL> !ls $ORACLE_HOME/dbs/initorcl.ora
    /u01/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora

    生成在指定路径

    SQL> create pfile='/tmp/initorcl.ora' from spfile;

    查看pfile的内容

    orcl.__db_cache_size=201326592     #数据库告诉缓冲区
    orcl.__java_pool_size=4194304
    orcl.__large_pool_size=4194304
    orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
    orcl.__pga_aggregate_target=281018368 
    orcl.__sga_target=528482304
    orcl.__shared_io_pool_size=0
    orcl.__shared_pool_size=306184192
    orcl.__streams_pool_size=0
    *._allow_resetlogs_corruption=TRUE
    *.audit_file_dest='/u01/app/oracle/admin/orcl/adump'   /*警告日志路径*/
    *.audit_trail='db'
    *.compatible='11.2.0.0.0'
    *.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/flash_recovery_area/control02.ctl'#Restore Controlfile    /*控制文件*/
    *.db_block_size=8192        /*内存块的大小*/
    *.db_domain=''
    *.db_name='orcl'        /*数据库标识符/
    *.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
    *.db_recovery_file_dest_size=4070572032            /*闪回区可使用的大小GB*/
    *.diagnostic_dest='/u01/app/oracle'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'        /*共享服务器的配置参数*/
    *.log_archive_dest_1='LOCATION=/u01/ARCHLOG/ mandatory'     /*归档文件*/
    *.log_archive_dest_2='LOCATION=/u02/ARCHLOG/'
    *.log_archive_dest_3='LOCATION=/u03/ARCHLOG/ optional'
    *.log_archive_min_succeed_dest=2
    *.memory_target=806354944
    *.open_cursors=300            /*可打开的游标数*/
    *.processes=150              /*描述当前可以运行的进程数*/
    *.remote_login_passwordfile='EXCLUSIVE'    /*远程登陆是否要用密码文件*/
    *.sga_max_size=838860800
    *.undo_tablespace='UNDOTBS1'      /*指定使用哪一个undo表空间*/

    pfile-->spfile

    SQL> create spfile='/tmp/spfileorcl.ora' from pfile;

    可以用strings命令查看创建的spfile文件,查出来的结过和pfile是一样的。

    判断数据库从SPFILE还是PFILE启动?

    方式1:

    如果是spfile,则value是有值的

    SQL> show parameter spfile
    
    NAME                     TYPE    VALUE
    ------------------------------------ ---------- ------------------------------
    spfile                     string    /u01/app/oracle/product/11.2.0
                            /db_1/dbs/spfileorcl.ora

    方式2:

    SQL> set linesize 120
    SQL> col name format a10
    SQL> col value format a60
    SQL> select name,value from v$parameter where name='spfile';
    
    NAME             VALUE
    -------------------- ------------------------------------------------------------
    spfile             /opt/oracle11g/app/db/product/11.2/dbs/spfileyldev.ora

    修改参数文件的三种模式:

      scope=both          立即并永久生效,(默认模式)

      scope=spfile         下次启动才能生效。

      scope=memory     立即生效但下次启动时失效

    需要注意的是有些参数是不可以被修改的

    --  查询视图:v$parameter

         isses_modifiable  对应system级别

    如果ISSES_MODIFIABLE=true,表明这个参数可以在session级别可以修改,并且立即生效。false就是不能修改

                 isssys_modifiable  对应system级别

     如果issys_modifiable=immediate,表示这个参数可以在system立即修改,并且立即生效。

    若如果issys_modifiable=deferred,会话级别参数,直接通过alter session set <> = <>*/

    若如果issys_modifiable=false,表示这个参数不能在直接修改在内存中,需要加scope=spfile,重启后才能生效。

    比如:

    SQL> select name, isses_modifiable,issys_modifiable  from v$parameter where name='sga_max_size';    
    
    NAME                   ISSES ISSYS_MOD
    ------------------------------ ----- ---------
    sga_max_size               FALSE FALSE          ##两个都为false
    
    SQL> alter system set sga_max_size=900M;
    alter system set sga_max_size=900M
                     *1 行出现错误:
    ORA-02095: 无法修改指定的初始化参数

    SQL> alter system set sga_max_size=800M scope=spfile;

    系统已更改。

    恢复参数到默认值

    SQL> alter system reset sga_max_size scope=spfile;
  • 相关阅读:
    生成器,生成器表达式。
    device busy
    memcached
    ps f
    Eviews9.0---软件安装
    免费提取百度文库 doc 文件
    Matlab---length函数
    Matlab 路径函数
    matlab中disp函数的简单用法
    MATLAB---dir函数
  • 原文地址:https://www.cnblogs.com/zydev/p/6074268.html
Copyright © 2011-2022 走看看