Oracle的参数文件

1.参数文件

与Oracle数据库相关的参数文件有很多,但是最重要的是数据库的参数文件,如果没有这个参数文件,甚至无法启动数据库。

数据库的参数文件通常称为初始化文件(init file),或init.ora文件。这是因为历史上它的默认名就是init<ORACLE_SID>.ora。这所以称为“历史上”的默认名,原因是Oracle Database 9i Release 1 以来,对于存储数据库的参数设置,引入了一个很大改进的新方法:服务器参数文件(server parameter file),简称为SPFILE。这个文件的默认名为spfile<ORACLE_SID>.ora。

如果没有参数文件,就无法启动Oracle数据库。所有参数文件相当重要,到了Oracle Database 9i Release 2(9.2及以上版本),备份和恢复工具——恢复管理器(Recovery Manager,RMAN)认识到了这个文件的重要性,允许把服务器参数文件包括在备份集中(而不是遗留的init.ora参数文件类型)。不过由于init.ora参数文件中是一个纯文本文件,可以用任何文本编辑器创建,所以这个文件不需要你花大力气去“保卫”。只要知道文件中的内容,完全可以重新创建(例如,如果能访问数据库的警告日志,就可以从中获得参数文件的信息)。

1.1 什么是参数

简单地说,可以把数据库参数想成是一个键/值对。如db_name参数,可以简单的存储为db_name=orcl,这里的“键”是db_name,“值”是orcl。要得到一个实例参数的当前值,可以查询V$视图V$PARAMETER。另外,还可以在SQL*Plus中使用 SHOW PARAMETER命令来查看。

  1. [email protected]>select value from v$parameter where name=‘db_block_size‘;
  2. VALUE
  1. --------------------------------------------------------------------------------------------------
  1. 8192
  1. [email protected]>show parameter db_block_s
  2. NAME                                     TYPE                               VALUE
  1. ------------------------------------ --------------------------------- ------------------------------
  1. db_block_size                            
        integer                               8192

v$parameter能够得到更多的信息,但show parameter命令更简单,而且还会自动“通配”,上边中输入了db_block_s,自动在前面和后面加了%。

注意:不同版本的Oracle上,参数个数会不同,不同的操作系统上可能也会增加另外的参数。

可以用两种方式来设置各个参数值:只设置当前实例的参数值或永久性的设置。要确保参数文件包含你期望的值,使用遗留的init.ora参数文件时,这是一个手动过程。要永久的修改一个参数值(即使服务器重启这个新设置也有效),就必须手动地编辑和修改init.ora参数文件。如果是服务器参数文件,则只需要一条命令就能轻松完成。

1.2  init.ora参数文件

这个文件的命名约定默认为:

init$ORACLE_SID.ora       (Unix enviroment variable)

init%ORACLE_SID%.ora      (Windows enviroment variable)

默认存放的目录

$ORACLE_HOME/dbs         (Unix)

%ORACLE_HOME%\DATABASE   (Windows)

参数文件不必放在特定的位置上。启动一个实例时,可以在启动命令上使用pfile=filename选项。

1.3  服务器参数文件

在访问和维护实例参数设置方面,SPFILE是Oracle做出的一个重要改变。有了SPFILE,可以消除传统参数文件存在的两个严重问题。

  • 可以杜绝参数文件的繁殖。SPFILE问题存储在数据库服务器上;必须存在于服务器主机本身,不能放在客户机上。参参数设置来说,这样就可以有一个“信息来源”。
  • 无需在数据库之外使用文本编辑器手动地维护参数文件(实际上,更确切的说法是不能手动地维护)。利用ALTER SYSTEM命令,完全可以直接将值写入SPFILE。管理员不必手动的查找和维护所有参数文件。

这个文件的命名约定默认为:

$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora          (Unix environment variable)

%ORACLE_HOME%\database\spfile%ORACLE_SID%.ora   (Windows environment variable)

强烈使用默认位置,否则会影响SPFILE的简单性。如果不在默认位置,就必须告诉Oracle去哪里找SPFILE。

1.转换为SPFILE

假设有一个数据库,使用了inti.ora参数文件,转换为SPFILE非常简单,使用CREATE SPFILE命令。

假设使用init.ora参数文件,而且这个init.ora参数文件确实在服务器的默认位置上,那么只需要发出CREATE SPFILE命令,并重启实例就行了。

从指定目录中的init.ora参数文件中创建SPFILE使用:create spfile from
pfile=‘/path/to/init.ora‘;

在集群环境中,通过使用Oracle
RAC,所有实例共享同一个SPFILE,这个SPFILE可以包含所有参数设置,甚至各个实例特有的设置都可以放在这一个SPFILE中。 所有实例共享的参数设置都以*.开头。单个实例特有的参数设置都以实例名(Oracle SID)为前缀。

2.设置SPFILE中的参数值

SPFILE是二进制文件,它们不能用文本编辑器来编辑,在linux上可以使用strings命令查看内容。要修改参数值就需要使用ALTER SYSTEM命令。语法如下

alter system set
parameter = value <comment=‘text‘> <deferred>
<scope=memory|spfile|both> <sid=‘sid|*‘>

默认情况下,ALTER
SYSTEM SET命令会更新当前运行的实例,并且修改SPFILE,即默认为scope=both。

  • parameter=value 这个赋值提供了参数名以及参数的新值。例如,pga_aggregate_target=1024M     会把pga_aggregate_target参数设置为1024MB。
  • comment=‘text 是一个与此参数设置相关的可选注释。这个注释会出现在V$PARAMETER视图的UPDATE_COMMENT字段中。如果使用了相应选项允许同时保存对SPFILE的修改,注释会写入SPFILE,而且即便服务器重启也依然保留,所以将来重启数据库时会看到这个注释。
  • deferred 指定系统修改是否只对以后的会话生效(对当前建立的会话无效,包括执行些修改的会话)。默认情况下,ALTER SYSTEM命令会立即生效,但有些参数不能“立即”修改,只能为新建立的会话修改这些参数。使用select name from
        v$parameter where issys_modifiable=‘DEFERRED‘;查询哪些参数必须使用deferred。
  • SCOPE=MEMORY|SPFILE|BOTH 指示了这个参数设置的“作用域”。
    • SCOPE=MEMORY 只在实例中修改,数据库重启后将不再保存。下一次重启数据库时,设置还是修改前的样子。
    • SCOPE=SPFILE 只修改SPFILE中的值。数据库重启并再次处理SPFILE之前,这个修改不会生效。有些参数只能使用这个选项来修改,例如,processes参数就必须使用SCOPE=SPFILE,因为我们无法修改活动实例的processes值。
    • SCOPE=BOTH 指内存和SPFILE中都会完成参数修改。这是使用SPFILE时默认的作用域值。如果使用init.ora参数文件,默认为SCOPE=MEMORY,也是唯一合法值。
  • sid=‘sid|*‘ 主要用于集群环境,默认值为sid=‘*‘。

3.取消SPFILE中的值设置

如果想从SPFILE中删除某个参数设置,则需要使用ALTER SYSTEM命令的RESET子句来执行。

alter system reset
parameter <scope=memory|spfile|both> sid=‘sid|*‘

4.从SPFILE创建PFILE

与前面提到的CREATE
SPFILE相反,创建PFILE使用CREATE
PFILE ... FROM SPFILE。这个命令根据二进制的SPFILE创建一个纯文本文件,可以被文本编辑器编辑,并且以后可以用来启动数据库。使用这个命令的原因

  • 创建一个“一次性的”参数文件,用户启动数据库来完成维护,其中有一些特殊的设置。所以可以使用这个命令创建PFILE。编辑得到的PFILE,修改所需要设置。然后启动数据库,使用PFILE=<FILENAME>选项指定要使用这个PFILE而不是SPFILE。完成后,可以正常的启动数据库又会使用SPFILE。
  • 维护修改历史,在注释中记录修改。过去,请多DBA会在参数文件中加大量的注释来记录修改历史。

5.修正被破坏的SPFILE

Unix平台上可以使用strings命令提取所有设置

Windows平台上则需要用write.ext(WordPad,写字板)打开这个文件

如果SPFILE真的被丢失了,可以从警告日志恢复参数文件的信息。每次启动数据库时警告日志都会包含如下一部分内容,通过这一部分内容,可以很容易地创建一个PFILE,再用CREATE
SPFILE命令将其转换为一个新的SPFILE。

时间: 2024-10-10 02:04:30

Oracle的参数文件的相关文章

Oracle 初始化参数文件pfile和spfile

pfile和spfile的区别 pfile :Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件,可以在操作系统级别修改.当spfile文件修改出现错误导致oracle无法启动时,可以使用 pfile文件启动数据库 spfile:从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改,只能在sql下通过alter system set 修改其中的参数. 如 ALTER SYSTEM SET REMOTE_LOGI

oracle 11g参数文件类型及作用

参数文件的分类:spfile:server parameter file二进制格式,脱离文件系统的束缚只能放在server端一致性比较好只能使用sql命令修改spfile的优先级高于pfile命名规则:spfile<sid>.ora & spfile.ora pfile:parameter file文本文件可以放在server端也可以方在client端pfile灵活但是副本太多可以使用文本编辑器直接修改命名规则:init<sid>.ora 参数文件保存的位置:$ORACLE

Oracle初始化参数文件pfile和spfile

pfile和spfile的区别 pfile :Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件,可以在操作系统级别修改.当spfile文件修改出现错误导致oracle无法启动时,可以使用 pfile文件启动数据库 spfile:从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改,只能在sql下通过alter system set 修改其中的参数. 如 ALTER SYSTEM SET REMOTE_LOGI

oracle的参数文件(pfile,spfile)

参数文件的作用: 它们是在数据库实例启动时候加载的,决定了数据库的物理结构.内存.数据库的限制及系统大量的默认值.数据库的各种物理属性.指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件. 参数文件分为两类: 初始化参数文件pfile(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件.文件名通常为init<sid>.ora 服务器参数文件spfile(Server P

oracle的参数文件:pfile和spfile

1.pfile和spfile Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的,决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值.数据库的各种物理属性.指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件.可以分为两种类型: pfile: 初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用pfile方式存储初始化参数,pfile 默

(转)Oracle 参数文件

--======================== -->Oracle 参数文件 --======================== /* 参数文件(10g中的参数文件) 主要用来记录数据库的配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件中的参数设置来配置数据库. 如内存池的分配,允许打开的进程数和会话数等. 两类参数文件: pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init<sid>.ora spfile:二进制的参数文件,不

ORACLE 参数文件介绍

ORACLE数据库启动以后,通过select * from v$parameter这个语句可以查看到oracle数据库使用的所有参数. 对于oracle的参数文件,分为spfile 二进制文件和pfile 文本文件,现在的数据库一般都是使用spfile二进制文件作为启动oracle的参数文件.对于spfile和pfile之间的区别: 1 spfile是二进制文件(可以通过 string spfileorcl.ora进行二进制的文件查看),不可以使用文本编辑器修改,只能在sqlplus中使用命令动

第09章 oracle 参数文件

2015-10-23 目录 参考资料 [1] 林树泽.Oracle 11g R2 DBA操作指南[M].北京:清华大学出版社,2013 [2] Oracle参数文件 [3] Oracle 参数文件 [4] Oracle 参数文件介绍 [5] oracle 11G参数文件之服务器参数文件(spfile)与实例启动的关系 [6] ORACLE 参数文件 [7] DBA入门之Oracle数据库参数文件 [8] oracle参数文件 [9] 参数文件的备份与恢复 [10] Oracle静态参数文件 [1

MYSQL数据库的参数文件

参数文件:告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型. 参数文件 当MySQL实例启动时,MySQL会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等设置.默认情况下,MySQL实例会按照一定的次序去取,你只需通过命令mysql --help|grep my.cnf来寻找即可. MySQL参数文件的作用和Oracle的参数文件极其类似