首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle参数文件及参数解析

说的是一辈子!差一年,一个月,一天,一个时辰,都不算一辈子! ----------

落叶归根,入心解惑。熟悉oracle启动和关闭流程,对于oracle启关原理有了深入理解,在此基础上,我们再逐步分析其中的各个部分。在oracle数据库中,有一系列的初始化参数用来进行数据库约束和资源限制,这些参数通常存储在一个参数文件中,在数据库实例启动时读取并加载。

一、参数文件类型

参数文件有两种类型,pfile及spfile。PFILE是文本文件的,而SPFILE是二进制格式的。PFILE文件可以用文本编辑器打开手工配置、而SPFILE不行,只能通过SQL命令在线修改。从操作系统上可以看到这两者的区别,初始化参数文件为ASCII文本文件,SPFILE为数据文件。

1.1,查看pfile文件

[oracle@oracle11g dbs]$ cat init.ora

#

# Change '' to point to the oracle base (the one you specify at

# install time)

db_name='ORCL'

memory_target=1G

processes = 150

audit_file_dest='/admin/orcl/adump'

audit_trail ='db'

db_block_size=8192

db_domain=''

db_recovery_file_dest='/flash_recovery_area'

db_recovery_file_dest_size=2G

diagnostic_dest=''

dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'

open_cursors=300

remote_login_passwordfile='EXCLUSIVE'

undo_tablespace='UNDOTBS1'

# You may want to ensure that control files are created on separate physical

# devices

control_files = (ora_control1, ora_control2)

compatible ='11.2.0'

1.2,查看spfile文件

[oracle@oracle11g dbs]$ cat spfileORCL.ora

ORCL.__java_pool_size=4194304

ORCL.__large_pool_size=4194304

ORCL.__oracle_base='/oracle/app/oracle'#ORACLE_BASE set from environment

ORCL.__shared_io_pool_size=0

ORCL.__streams_pool_size=0

*.audit_file_dest='/oracle/app/oracle/admin/ORCL/adump'

*.audit_trail='db'

*.compatible='11.2.0.0.0'

*.control_files='/oracle/app/data/ORCL/control01.ctl','/oracle/appCC"bb/oracle/flash_recovery_area/ORCL/control02.ctl'#Restore Controlfile

*.db_block_size=8192

*.db_domain=''

*.db_files=300

*.db_name='ORCL'

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

*.diagnostic_dest='/oracle/app/oracle'

*.memory_target=983564288

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.processes=1000

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_management='AUTO'

*.undo_tablespace='UNCC"#SDOTBS1'

1.3,辨别数据库使用spfile还是pfile

pfile进行参数修改:直接进行编辑修改

spfile进行参数修改:alter system/alter session

判断数据库是通过spfile启动还是通过pfile启动:

select distinct isspecified from v$spparameter;

第一个值为true代表为spfile启动,为false表示pfile启动;

第二种方法:直接修改系统参数,如果提示无法修改spfile代表为pfile启动

alter system set processes=150 scope=spfile;

二、参数文件转换

a,通过spfile创建pfile

create pfile='路径+文件名' from spfile;

SQL> create pfile='/oracle/app/pfile_01.ora' from spfile;

File created.

b,通过pfile创建spfile

create spfile='路径+文件名' from pfile;

11g可以在数据库未关闭的情况下,实现spfile的重建

create spfile from memory;

三、参数解析

3.1,参数类型

a,推导参数

推导参数通常来自于其他参数的运算,依赖其他参数得出。例如SESSIONS参数,11g中SESSIONS=(1.5*processes)+22。

b,操作系统依赖参数

某些参数取值依赖或者受限于操作系统。例如db_cache_size参数,该值最大值受限于物理内存大小。

c,可变参数

可变参数包含绝大多数

潜在影响系统性能的可调整参数,某些可变参数设置的是限制条件,如OPEN_

CURSORS;有的参数是设置容量,如 DB_CACHE_SIZE 等。这类参数通常可以为 DBA 或最终用户调整,从而产生限制或性能变化,对 Oracle 至关重要。

d,废弃参数

随着oracle版本更替,部分老的参数在新版本废弃。如在11gR2中,被废弃的参数有lock_sga_areas,instance_nodeset,spin_count等等参数。

3.2,参数获取

a,直观参数获取

在SQL*PLUS中,我们可以通过命令show parameter命令来查看某些参数的设置值:

SQL> show parameter sga;

NAME TYPE VALUE

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

lock_sga boolean FALSE

pre_page_sga boolean FALSE

sga_max_size big integer 940M

sga_target big integer 0

也可以通过查看视图v$parameter进行查看参数值设置:

select * from v$parameter;

b,隐藏参数获取

oracle中,以“_”开头的初始化参数通常被称为隐藏参数,这些参数具有某些特殊的功能,获取他们需要通过查询特殊的视图进行查看。

SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.KSPPDESC PDESC

FROM SYS.x$ksppi x, SYS.x$ksppcv y

WHERE x.indx = y.indx

AND x.ksppinm LIKE '%&par%';

3.3,参数修改

可以通过 ALTER SYSTEM 或者导入导出来更改 SPFILE 的内容。从 Oracle9i 开始,ALTER SYSTEM 命令增加了一个新的选项:SCOPE。

a,SCOPE 参数有三个可选值:MEMORY ,SPFILE , BOTH

b,MEMORY-只改变当前实例运行,重新启动数据库后失效

c,SPFILE-只改变 SPFILE 的设置,不改变当前实例运行,重新启动数据库后生效

d,BOTH-同时改变实例及 SPFILE,当前更改立即生效,重新启动数据库后仍然有效。

alter sysetm/session set parametername=values scope=memoryspfileboth;

通过select name,isses_modifiable,issys_modifiable from v$parameter来判断参数修改方式:

select distinct issys_modifiable from v$parameter;

false:静态参数,不能直接修改到内存 alter system set parametername=values scope=spfile

immediate scope=memory 动态参数 alter system set parametername=values 既修改到内存,也修改到spfile参数文件

deffered 会话参数alter session

四、概述

oracle参数文件看似简单,实则内容多多。简简单单一个参数文件,其中的任何一个参数 ,在数据库中都起着独当一面的作用。学习参数文件,我们除了了解以上基本内容,还可以深入学习参数文件的备份,参数文件问题等等,在此就不一一介绍了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180115G0HAVP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券