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命令来查看。
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,可以消除传统参数文件存在的两个严重问题。
这个文件的命名约定默认为: $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora (Unix environment variable) %ORACLE_HOME%databasespfile%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。
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创建一个纯文本文件,可以被文本编辑器编辑,并且以后可以用来启动数据库。使用这个命令的原因
5.修正被破坏的SPFILE Unix平台上可以使用strings命令提取所有设置 Windows平台上则需要用write.ext(WordPad,写字板)打开这个文件 如果SPFILE真的被丢失了,可以从警告日志恢复参数文件的信息。每次启动数据库时警告日志都会包含如下一部分内容,通过这一部分内容,可以很容易地创建一个PFILE,再用CREATE SPFILE命令将其转换为一个新的SPFILE。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |