Oracle服务器参数文件管理的注意事项
当用户通过网络访问Oracle数据库时,在客户端要为应用程序分配用户进程;与之同时,要在服务器端为期分配服务器进程。而且,客户应用的所有SQL操作最终都由服务器进程来执行的。那么客户端进程与服务器进程之间如何协调工作呢?这就主要是通过初始化参数来实现的。在Oracle数据库中,初始化参数包括默认的初始化参数和以参数文件控制的初始化参数。默认的初始化参数有200多个,在通常情况下,数据库管理员不需要对其进行更改。数据库管理员平时要管理的就是参数文件。而参数文件中保存的就是一些非默认参数。
参数文件主要用于保存数据库启动例程所需要的初始化参数。作为Oracle数据库管理员来说,默认参数往往不需要进行更改。其日常需要维护的主要就是参数文件中保存的非默认参数。在Oracle10之后的版本中,其同时支持两种类型的参数文件,分别为Pfile(文本参数文件)和Spfile(服务器参数文件)。这连个参数文件虽然起到的作用是相同的,但是其有很大的不同。
一、Pfile参数文件与Spfile参数文件的区别。
在Oracle数据库比较早的版本中,初始化参数都是以Pfile(文本参数文件)的形式来保存的。而在Oracle 9之后的版本中,则引入了Spfile(服务器参数文件)。Oracle官方是建议数据库管理员采用Spfile参数文件。这主要是因为若采用后者这种形式的参数文件,其有两个优点。一是比较容易备份,因为服务器参数文件可以利用RMAN备份工具进行备份,而文本参数文件则不行。二是服务器参数文建管理起来比较方便。文本参数文件其维护起来相对比较繁琐。
不过入道比较早的数据库管理员,还是比较喜欢采用Pfile(文本参数文件)。若数据库管理员采用这种类型的参数文件来管理启动参数的话,则需要注意以下几个问题。
一是初始化参数不能够重复。也就是说,数据库管理员在修改或者增加初始化参数之前,首先需要检查初始化参数是否存在。若数据库管理员想要更改或者设置的初始化参数已经存在的话,那么就必需直接更改原有的参数。只有在不存在的情况下,才能够在文件末尾添加新的参数。即当相关参数重复时,Oracle数据库不会自动采用最后的参数,而是会报错。
二是需要注意文本参数文件修改格式方面的问题。如在文本参数文件中,每一行都只能够设置一个参数,不能再同一行中设置多个不同的参数。如参数若是字符型的则可以利用引号引住;但是,若参数是数字型的,则不能够使用引号引住。但是,若同一个参数有多个值,则可以放在同一行中,只是不同值之间必须要用逗号进行分割。无论是引号还是逗号,都必须是英文状态下的符号。
三是在文本参数文件中,有个特殊的符号即#。当数据库管理员不需要某个参数时,我们往往不建议直接删除它;而是建议数据库管理员把参数屏蔽掉。这对于日后维护是很有必要的。此时,数据库管理员若要屏蔽某个参数,就可以直接在某个参数前面加入#符号。通过这种方式,就可以让Oracle数据库服务器忽略这个被屏蔽的参数。
二、Spfile参数文件的管理与配置。
笔者虽然接触Oracle数据库服务器也已经有不少的年头了。不过笔者还是比较喜欢采用Spfile参数文件来管理数据库服务器的参数文件。Spfile参数文件是以二进制形式存放的。若要采用这种形式来管理启动参数文件,笔者有如下的建议。
一是对于其存放位置的建议。虽然说,Oracle数据库服务器对于服务器参数文件的存放位置没有强制性的规定。但是,为了管理方便,笔者还是建议数据库管理员要把服务器参数文件存放在一个特定的目录中。如可以把服务器参数文件存放在数据库安装目录下的Datebase目录中。如此的话,日后维护起来就会比较方便。
二是服务器参数文件如何命名。对于这个命名数据库服务器也没有强制性的规则。不过,通常情况下,数据库管理员会有一套约定俗成的命名规则,如SPfileSID.ora。其中Spfile前缀表示这是一个服务器参数文件,而不是文本参数文件;SID为例程名;ORA则为扩展名。这个命名规则不是强制性的。但是,若数据库管理员采用这套命名规则的话,则对于其后一任数据库管理员来说,则其管理起来就会方便许多。
三是如何修改服务器参数文件呢?虽然说服务器参数文件是以二进制形式存储的。但是,利用文本编辑器工具仍然可以看到相关的内容。如利用文本编辑器打开服务器参数文件中,通常情况下,只有参数文件的尾部与头部的一些不怎么重要的内容会以二进制的形式显示外,其他一些具体的设置参数都可以正常显示出来。但是数据库管理员不能够像文本参数文件一样,在文本编辑器中直接进行更改。而必须采用一个Alter System命令对其进行更改。若采用这个命名进行更改的话,则就不需要遵循上面文本参数文件的相