zoukankan      html  css  js  c++  java
  • Oracle体系结构之参数文件管理

    初始化文件用来记录oracle数据库的基本配置信息,包括内存分配信息及控制文件等。通常启动数据库时,系统读取初始化文件启动oracle数据库到nomount阶段。参数文件通常在$ORACLE_HOME/dbs/目录下,有两种文件格式保存,如下:

    1、pfile:静态参数文件,一般名为init<sid>.ora,文本文件格式,linux下vi编辑器访问及修改内容,所作更改在下次启动时生效,oracle 9i后引进。

    2、spfile:服务器参数文件,一般名为spfile<sid>.ora,二进制格式文件,linux下strings命令查看文件内容,所做更改永久有效,不受关闭和启动的影响,永久驻留于服务器端。支持rman备份。

    oracle访问参数文件的顺序:
    – spfile<SID>.ora   --oracle数据库创建时自动建立的spfile文件
    – spflie.ora        --oracle缺省的spfile文件
    – init<SID>.ora     --oracle数据库创建时自动建立的pfile文件
    – init.ora          --oracle缺省的pfile文件

    pfile和spfile文件相互转换:

    pfile-->spfile:SQL>create spfile[='*****'] from pfile[='******'];

    spfile-->pfile:SQL>create pfile[='******'] from spfile[='******'];

    11g中的新指令,从memory中生成

    create spfile = '<dir>' from memory;

    查看系统参数:

    SQL>show parameter <parametername>

    修改参数文件参数:

    pfile:vi编辑器编辑保存,下次启动有效。

    spfile:alter system|session set parametername=<parametername>

    scope=memory | spfile |both sid=<'sid'>|'*';

    附:--  查询视图:v$parameter

    isses_modifiable  可以被alter session修改

    isssy_modifiable  可以被alter system修改

    --  sid:

    sid :只对某一个实例

    * :对所有的实例修改

    --  可以从v$parameter视图中来得到哪些可以使用alter system修改,哪些可以使用alter session来修改。

    SQL> col name for a40

    SQL> select NAME,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter

    2  where name like 'sql%';

    NAME ISSES ISSYS_MOD

    ---------------------------------------- ----- ---------

    sql_trace                                TRUE  IMMEDIATE

    sql92_security                           FALSE FALSE

    sql_version                              TRUE  FALSE

    sqltune_category                         TRUE  IMMEDIATE

    SQL> select distinct issys_modifiable from v$parameter;

    ISSYS_MOD

    ---------

    IMMEDIATE   /*动态参数,直接修改到内存的参数alter system set <> = <>,后面不需要跟scope*/

    FALSE       /*静态参数,不能直接修改到内存,alter system set <> = <> scope = spfile*/

    DEFERRED    /*会话级别参数,直接通过alter session set <> = <>*/

    SQL> select distinct isses_modifiable from v$parameter;

    ISSES

    -----

    TRUE

    FALSE

    删除参数文件:

    pfile:可以直接vi或vim修改或删除。

    spfile:以下命令进行删除,参数文件将恢复默认值。

    SQL>alter system|session reset parametername=<name>

    scope= memory | spfile |both sid=<'sid'>|'*';

    从指定参数文件启动数据库:

    SQL>startup pfile=<dir>

    SQL>startup spfile=<dir>

    --查看当前使用的哪个参数文件启动的

    SQL> select distinct isspecified from v$spparameter;

    ISSPEC

    ------

    FALSE

    /*

    如果第一个值是FALSE还是TRUE,如果是FALSE,则是pfile,否则则是spfile.

    也可以尝试修改spfile ,如果报错则可以判断是从pfile启动,当然所修改的参数必须是可以修改的*/

    SQL> alter system set sga_target = 200m scope = spfile;

    alter system set sga_target = 200m scope = spfile

    *

    ERROR at line 1:

    ORA-32001: write to SPFILE requested but no SPFILE specified at startup

    隐藏参数

    SQL> desc x$ksppi /*Name列中为隐藏参数的名字*/

    Name Null?    Type

    ----------------------------------------- -------- ----------------------------

    ADDR                                               RAW(4)

    INDX                                               NUMBER

    INST_ID                                            NUMBER

    KSPPINM                                            VARCHAR2(80)

    KSPPITY                                            NUMBER

    KSPPDESC                                           VARCHAR2(255)

    KSPPIFLG                                           NUMBER

    KSPPILRMFLG                                        NUMBER

    KSPPIHASH                                          NUMBER

    --下面视图中为隐藏参数的值

    SQL> desc x$ksppcv

    Name Null?    Type

    ----------------------------------------- -------- ----------------------------

    ADDR                                               RAW(4)

    INDX                                               NUMBER

    INST_ID                                            NUMBER

    KSPPSTVL                                           VARCHAR2(512)

    KSPPSTDVL                                          VARCHAR2(512)

    KSPPSTDF                                           VARCHAR2(9)

    KSPPSTVF                                           NUMBER

    KSPPSTCMNT                                         VARCHAR2(255)

    --使用下面的命令来查看系统中的隐藏参数;

    SQL> select ksppinm,ksppstvl from x$ksppi a,x$ksppcv b where a.indx = b.indx;

    and ksppinm like '%_allow%';

    KSPPINM                                                            KSPPSTVL

    ----------------------------------------                           ----------

    _allow_level_without_connect_by                                    FALSE

    _asm_allow_only_raw_disks                                          TRUE

    _asm_allow_resilver_corruption                                     FALSE

  • 相关阅读:
    java:产生小数位数为2的随机概率,使得和为1
    大数据网络分析规划
    java碎笔
    mysql修改记录
    mysql导入导出数据
    Centos中hive/hbase/hadoop/mysql实际操作及问题总结
    linux后台运行程序
    Centos搭建mysql/Hadoop/Hive/Hbase/Sqoop/Pig
    ARM-LINUX自动采集温湿度传感器数据
    java中枚举类型的使用
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/4112675.html
Copyright © 2011-2022 走看看