当用户通过网络访问Oracle数据库时,在客户端要为应用程序分配用户进程;与之同时,要在服务器端为期分配服务器进程。而且,客户应用的所有SQL操作最终都由服务器进程来执行的。那么客户端进程与服务器进程之间如何协调工作呢?这就主要是通过初始化参数来实现的。在Oracle数据库中,初始化参数包括默认的初始化参数和以参数文件控制的初始化参数。默认的初始化参数有200多个,在通常情况下,数据库管理员不需要对其进行更改。数据库管理员平时要管理的就是参数文件。而参数文件中保存的就是一些非默认参数。
参数文件主要用于保存数据库启动例程所需要的初始化参数。作为Oracle数据库管理员来说,默认参数往往不需要进行更改。其日常需要维护的主要就是参数文件中保存的非默认参数。在Oracle10之后的版本中,其同时支持两种类型的参数文件,分别为Pfile(文本参数文件)和Spfile(服务器参数文件)。这两个参数文件虽然起到的作用是相同的,但是其有很大的不同。
一、Pfile参数文件与Spfile参数文件的区别
在Oracle数据库比较早的版本中,初始化参数都是以Pfile(文本参数文件)的形式来保存的。而在Oracle 9之后的版本中,则引入了Spfile(服务器参数文件)。Oracle官方是建议数据库管理员采用Spfile参数文件。这主要是因为若采用后者这种形式的参数文件,其有两个优点。一是比较容易备份,因为服务器参数文件可以利用RMAN备份工具进行备份,而文本参数文件则不行。二是服务器参数文建管理起来比较方便。文本参数文件其维护起来相对比较繁琐。
不过入道比较早的数据库管理员,还是比较喜欢采用Pfile(文本参数文件)。若数据库管理员采用这种类型的参数文件来管理启动参数的话,则需要注意以下几个问题。
1、是初始化参数不能够重复。也就是说,数据库管理员在修改或者增加初始化参数之前,首先需要检查初始化参数是否存在。若数据库管理员想要更改或者设置的初始化参数已经存在的话,那么就必需直接更改原有的参数。只有在不存在的情况下,才能够在文件末尾添加新的参数。即当相关参数重复时,Oracle数据库不会自动采用最后的参数,而是会报错。
2、是需要注意文本参数文件修改格式方面的问题。如在文本参数文件中,每一行都只能够设置一个参数,不能再同一行中设置多个不同的参数。如参数若是字符型的则可以利用引号引住;但是,若参数是数字型的,则不能够使用引号引住。但是,若同一个参数有多个值,则可以放在同一行中,只是不同值之间必须要用逗号进行分割。无论是引号还是逗号,都必须是英文状态下的符号。
3、是在文本参数文件中,有个特殊的符号即#。当数据库管理员不需要某个参数时,我们往往不建议直接删除它;而是建议数据库管理员把参数屏蔽掉。这对于日后维护是很有必要的。此时,数据库管理员若要屏蔽某个参数,就可以直接在某个参数前面加入#符号。通过这种方式,就可以让Oracle数据库服务器忽略这个被屏蔽的参数。
二、Spfile参数文件的管理与配置
笔者虽然接触Oracle数据库服务器也已经有不少的年头了。不过笔者还是比较喜欢采用Spfile参数文件来管理数据库服务器的参数文件。Spfile参数文件是以二进制形式存放的。若要采用这种形式来管理启动参数文件,笔者有如下的建议。
1、对于其存放位置的建议。虽然说,Oracle数据库服务器对于服务器参数文件的存放位置没有强制性的规定。但是,为了管理方便,笔者还是建议数据库管理员要把服务器参数文件存放在一个特定的目录中。如可以把服务器参数文件存放在数据库安装目录下的Datebase目录中。如此的话,日后维护起来就会比较方便。
2、服务器参数文件如何命名。对于这个命名数据库服务器也没有强制性的规则。不过,通常情况下,数据库管理员会有一套约定俗成的命名规则,如SPfileSID.ora。其中Spfile前缀表示这是一个服务器参数文件,而不是文本参数文件;SID为例程名;ORA则为扩展名。这个命名规则不是强制性的。但是,若数据库管理员采用这套命名规则的话,则对于其后一任数据库管理员来说,则其管理起来就会方便许多。
3、如何修改服务器参数文件呢?虽然说服务器参数文件是以二进制形式存储的。但是,利用文本编辑器工具仍然可以看到相关的内容。如利用文本编辑器打开服务器参数文件中,通常情况下,只有参数文件的尾部与头部的一些不怎么重要的内容会以二进制的形式显示外,其他一些具体的设置参数都可以正常显示出来。但是数据库管理员不能够像文本参数文件一样,在文本编辑器中直接进行更改。而必须采用一个Alter System命令对其进行更改。若采用这个命名进行更改的话,则就不需要遵循上面文本参数文件的相关注意事项。因为利用Alter System命令进行更改的话,就自动会符合相关的格式规定。
但是,需要注意一个问题,即Alter System命令不是万能的。也就是说,其不能够更改服务器参数文件中的所有启动参数。如对于服务器参数文件中的数据库名,就不能够直接利用这个命令进行更改。而必须要先修改初始化参数db_name,然后重新建立控制文件。这也主要是为了提高服务器参数文件的准确率所考虑的。
4、如何查看当前数据库系统到底是采用什么类型的参数文件。由于在Oracle9I以后的数据库版本中,同时支持文本参数文件与服务器参数文件。如果数据库管理员是后来接受这个数据库维护任务的,那么有可能不怎么清楚,当前数据库服务器到底采用的是什么类型的参数文件。故其要对数据库服务器参数文件进行更改,也无从做起。此时,数据库管理员可以利用服务器自带的命令进行查询。当相关例程处于启动状态时,先以特权用户登录。然后采用show parameter spfile命令,来系统显示初始化参数的值。如果在显示的结果中,Value处有值的话,则表示例程在使用的是服务期参数文件;如果Value处没有任何返回结果的话,则表示例程现在使用的是文本参数文件。
三、建立服务器参数文件
若数据库管理员因为一时粗心,把服务器参数文件丢失了的话,再重新建立服务器参数文件,那可真要命了。因为上面笔者说过,服务器参数文件不能够直接在文本编辑器中修改,而必须要采用Alter命令进行一条条的更改与添加。所以,其重新建立服务期参数文件是一件比较累人的工作。但是,因为服务器参数文件具有管理方便、可以利用RMAN等备份工具进行备份等优点。若为此舍弃了服务期参数文件,而采用文本参数文件,那就有点因小失大了?所以,无论是Oracle官方,还是笔者,都建议数据库管理员采用服务器参数文件来管理数据库的启动参数。
不过,我们可以采用一些技巧,让服务器参数文件的建立变得简单起来。也就是说,我们可以先利用文本文件建立文本参数文件。因为在文本文件中建立相关的参数会比利用命令简单许多。然后,再通过CREATE Spfile…FROM FILE…命令来进行转换,把文本参数文件转换为服务器参数文件。这其中,第一个参数用于指定服务器参数文件全名。第二个参数用于指定文本参数文件全名。注意,如果没有指定服务器参数文件的全名,则其会在数据库的默认路径下建立服务器参数文件,即服务器安装目录下的DATEBASE子目录。若没有指定文本参数文件全名的话,则数据库采用的是默认的文本参数文件。再者,执行这个命令也有权限上的限制,即只有特权用户才能够执行这个命令。
总之,参数文件中保存了很多启动参数。在通常情况下,在服务器安装过程中,服务器会根据相关情况自动对参数进行赋值。若没有特殊的需要,不需要对其进行额外的更改。但是,若服务器的硬件配置或者服务期所属的网络环境出现变化的话,则就需要对其进行调整。另外,有时候出于优化数据库服务器性能的考虑,也需要对相关的初始化参数进行调整。在对参数文建进行更改时,除了需要遵循以上注意事项之外,笔者还有最后一条忠告。即无论是采用文本参数文件,还是服务器参数文件,最好都能够事先对参数文件进行备份,以防不时之需。这主要是因为参数文件对于数据库服务器的影响是很大的。在修改时,若哪个参数被意外更改,很可能导致数据库启动失败。
您正在阅读:Oracle服务器参数文件管理的注意事项
【编辑推荐】