参数文件作用:主要用来记录数据库配置信息,数据库在启动时,需要读取参数文件中关于控制文件的信息,分配内存,打开进程,会话等。数据库启动时第一个读取参数文件。

参数文件分类:

1)pfile:文本文件,vim编辑器编辑,文件名:init<sid>.ora

2)spfile:二进制文件,9i后推出使用,服务器参数文件,只能存在服务器端,文件名:spfile<sid>.ora,可以被rman备份。

区别:

pfile:文本,可被vi编辑,init<sid>.ora

spfile:二进制,服务器端,spfile<sid>.ora,可以被rman备份,只能被alter session|system命令修改。

修改方式不同:pfile可用vi编辑;spfile只能通过alter session|system命令修改。

优先级别:1)spfile<sid>.ora  2)spfile.ora    3)init<sid>.ora 如果三个文件都不存在,oracle启动报错。

存在位置不同:pfile可以在客户端也可以在服务器端;spfile只能存放在服务器端。

参数文件路径:

spfie:$ORACLE_HOME/dbs/spfile<SID>.ora

[oracle@localhost dbs]$ ls $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora

/u01/oracle/10g/dbs/spfileorcl.ora

[oracle@localhost dbs]$ ls $ORACLE_HOME/dbs/spfilerezin.ora

pfile:

         9i: $ORACLE_HOME/dbs/init$ORACLE_SID.ora

         10g: [oracle@localhost dbs]$ ls $ORACLE_BASE/admin/$ORACLE_SID/pfile/

init.ora.21220155120

参数文件转换:以下命令都可以指定路径,如果不指定路径则新生成文件存放默认路径。

从spfile-->pfile:

SQL>create pfile='<路径>' from spfile='<路径>';

从pfile-->spfile:

SQL>create spfile='<路径>' from pfile='<路径>';

11g新指令:

SQL>create spfile='<路径>' from memory;

使用指定参数文件启动数据库:SQL>startup pfile|spfile='<路径>';

SQL>startup pfile='$ORACLE_HOME/dbs/initorcl.ora';

修改参数文件方法:通过pfile修改spfile

手工编辑pfile文件:[oracle@localhost dbs]$ vi initorcl.ora

关闭数据库:SQL>shutdown immediate

使用指定参数文件启动数据库:SQL>startup pfile='$ORACLE_HOME/dbs/initorcl.ora';

重新生成spfile文件:SQL>create spfile from pfile;

如何知道当前数据库使用的是哪一个参数文件启动的:

方法一:查看当前数据库实例名:查询service_name参数或者查询v$instance视图。

SQL> show parameter service_name

NAME                                 TYPE        VALUE

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

service_names                          string         orcl

SQL>select instance_name from v$instance;

INSTANCE_NAME

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

orcl

查看当前使用的是哪一个参数文件:

SQL> select distinct ISSPECIFIED  from v$spparameter;

ISSPEC

------

TRUE

FALSE

第一个值为true表示spfile启动,否则pfile启动。

方法二:alter system|session修改参数文件,能修改spfile起动,反之,pfile起动。

修改参数文件:

pfile:vi编辑,下次启动生效。

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

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

         memory:表示只修改当前实例内存有效,下次启动失效。

spfile:针对spfile修改,下次启动生效。

both:当前内存和spfile都被修改,不指定scope即是此项(默认)。

可以从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 <> = <>*/

常用参数:[oracle@localhost dbs]$ vim $ORACLE_HOME/dbs/initorcl.ora

orcl.__db_cache_size=192937984

orcl.__java_pool_size=4194304

orcl.__large_pool_size=4194304

orcl.__shared_pool_size=75497472

orcl.__streams_pool_size=0

*.audit_file_dest='/u01/oracle/admin/orcl/adump'

*.background_dump_dest='/u01/oracle/admin/orcl/bdump'

*.compatible='10.2.0.1.0'

*.control_files='/u01/oracle/oradata/orcl/control01.ctl','/u01/oracle/oradata/orcl/control02.ctl','/u01/oracle/oradata/orcl/control03.ctl'

*.core_dump_dest='/u01/oracle/admin/orcl/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='orcl'

*.db_recovery_file_dest='/u01/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=2147483648

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

*.job_queue_processes=10

*.open_cursors=300

*.pga_aggregate_target=94371840

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=285212672

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/u01/oracle/admin/orcl/udump'

隐藏参数:死马当活马医,不建议用。

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

 

 

参数删除:恢复默认值。

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

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

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

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

查看参数文件:show parameter <参数文件名称|名称关键字>

事件参数:events

                   修改事件参数:alter session set events <>;

练习:

1、pfile和spfile的修改?

pfile可以直接通过vim编辑器修改;spfile可以通过vim修改pfile-->shutdown immediate-->startup pfile='路径'-->create spfile from pfile,spfile也可以通过alter system|session set parametername=<values> scope=memory|spfile|both sid='<sid|*>';方法修改。

2、区分系统用哪个参数文件启动?

通过查询v$spparameter视图中ISSPECIFIED字段值查看;也可以通过修改系统参数alter

system|session set 方式,如果修改成功则证明是spfile启动,反之pfile启动。

3、总结出最少的参数启动数据库需要哪些参数?

4、熟悉常用的隐藏参数?

Oracle体系结构之参数文件管理的更多相关文章

  1. Oracle体系结构之控制文件管理

    控制文件作用:记录了数据库的结构和行为,有多少个数据文件,日志文件及其位置名称,状态,维护数据库的一致性,即记录了数据库的启动SCN号和终止SCN号. 控制文件的位置和个数记录在参数文件中,通常控制文 ...

  2. Oracle体系结构之数据文件管理

    数据文件分2个方向管理: 物理结构和逻辑结构. 数据库的存储层次结构图: ............. 逻辑结构:                                  物理结构: .... ...

  3. Oracle体系结构之密码文件管理

    oracle密码文件主要用来控制sysdba和sysoper用户用于远程登录.通常,oracle用户登录database有两种方式,一种是通过本地操作系统验证登录,一种是通过密码文件验证登录. 操作系 ...

  4. oracle 体系结构

    oracle 体系结构 数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. 1. oracle工作原理: 1).在数据库服务器上启动Oracle实例:2).应用程序 ...

  5. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

  6. 【转载】Oracle实例和Oracle数据库(Oracle体系结构)

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:Leshami      原文地址:http://blog.csdn.net/ ...

  7. oracle 体系结构解析

    三.oracle 体系结构 1.oracle内存由SGA+PGA所构成 2.oracle数据库体系结构数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. oracl ...

  8. Oracle 课程一之Oracle体系结构

    课程目标 •理解ORACLE数据库体系架构—内存结构和进程 •理解SQL在数据库中的运作流程 •理解UNDO&REDO原理 •理解commit原理   1.Oracle数据库概述 •数据库:物 ...

  9. oracle体系结构

    oracle体系结构有四个部分组成分别为:oracle 服务器.用户进程.服务器进程.其他关键文件.其中oracle服务器又有实例(instance)和database组成是一个数据库管理系统. 一. ...

随机推荐

  1. java.lang.Class<T> -- 反射机制及动态代理

    Interface : Person package java_.lang_.component.bean; public interface Person { String area = " ...

  2. 使用gradle 编译生成 apk出现的问题

    首先出现的问题是:  Failed to read key from keystore 是我的Key Alias 填写错了, 还有一种可能就是真的把key放错位置了

  3. 详解 Tomcat 的连接数与线程池(转)

    很不错的文章 https://juejin.im/post/5a0bf917f265da432d27a215

  4. 【Android】水平居中 垂直居中 中心居中

    android:layout_centerInParent 将该组件放置于水平方向中央及垂直中央的位置 android:layout_centerHorizontal 将该组件放置于水平方向中央的位置 ...

  5. PostgreSQL流复制

    原理机制 参考--https://yq.aliyun.com/articles/51009 主备总体结构 PG主备流复制的核心部分由walsender,walreceiver和startup三个进程组 ...

  6. MVC项目的简单总结

    不能说是庆幸吧,正赶上公司要开发一个小小的MVC项目,于是这样任务就只有我自己承担,在这个项目中我才彻底感觉到自己之前有关MVC知识的无知,以为接触了皮毛就感觉能做项目,只要有心动脑思考就能完成一个完 ...

  7. eclipse项目中.classpath文件详解

    1 前言 在使用eclipse或者myeclipse进行java项目开发的时候,每个project(工程)下面都会有一个.classpath文件,那么这个文件究竟有什么作用? 2 作用 .classp ...

  8. Use Reentrant Functions for Safer Signal Handling(译:使用可重入函数进行更安全的信号处理)

    Use Reentrant Functions for Safer Signal Handling 使用可重入函数进行更安全的信号处理 How and when to employ reentranc ...

  9. WP8.1学习系列(第十章)——中心控件Hub设计指南

    Windows Phone 应用商店应用中的中心控件指南   在本文中 说明 示例 用法指南 设计指南 相关主题 重要的 API Hub (XAML) HubSection (XAML) 说明 中心控 ...

  10. Android自定义组件——四个方向滑动的菜单实现

    今天无意中实现了一个四个方向滑动的菜单,感觉挺好玩,滑动起来很顺手,既然已经做出来了就贴出来让大家也玩弄一下. 一.效果演示 (说明:目前没有安装Android模拟器,制作的动态图片太卡了,就贴一下静 ...