在Oracle数据库中,这个初始化参数文件分为两类,分别为文本参数文件与服务器参数文件。他们的内容是相同的,只是所表示的方式不同。在服务器参数文件中,是以二进制的形式保存的。可以利用数据库的命令对他们进行转换。接下去笔者就谈谈维护服务器参数文件的一些技巧。
一、在数据库启动的时候指定参数文件。
在启动数据库的过程中,必须要提供一个准确的初始化参数文件,无论是文本参数文件还是服务器参数文件。在利用Startup命令启动数据库的时候,可以指定其采用的服务器参数文件。不过在这里需要注意一个细节,即采用的初始化参数文件不同,其采用的关键字也是不同的。如果采用的是服务器参数文件,则需要使用SPfile指定;如果采用的是文本参数文件,则需要使用Pfile关键字指定。数据库系统并不会自动根据参数文件的类别来进行判断,而是根据这个关键字来判断。如果发生张冠李戴现象的话,即使这个初始化参数文件本身没有问题,但是因为关键字使用错误,会误导数据库启动进程,从而导致数据库启动错误。
如果在利用命令startup启动数据库(如数据库自动随操作系统启动而自动启动)的过程中没有指定采用的初始化参数文件,则数据库系统会自动在默认的位置进行查找。一般情况下,其先查找是否有服务器参数文件(二进制文件),如果有的话则会启用。如果没有的话,则会继续查找是否有文本参数文件。如果有责启用,如果没有的话则会向用户提示启动失败。所以在默认情况下是服务器参数文件优先的。如果数据库管理员要让数据库自动启动的时候采用文本参数文件,则就需要在关闭数据库后删除那个服务器参数文件,或者将其移动到其他的位置。然后下次重新启动时在没有指定初始化参数文件时而自动采用文本参数文件。对于数据库系统来说,采用服务器参数文件还是采用文本参数文件,没有多大的区别。只要保证他们的内容准确即可。所以到底是采用哪种参数文件为好,就全凭数据库管理员的工作喜好了。
二、服务器参数文件的维护。
虽然说也可以利用文本编辑器来打开二进制形式的服务器参数文件,并查看相关的内容。但是需要注意的是,切不可在这里对此进行更改。也就是说不能够手工更改这个服务器参数文件。由于二进制文件与文本文件保存方式的不同。在这里直接进行更改的话,则会导致这个初始化参数文件损坏,而导致数据库无法正常启动。为此如果要更改服务器参数文件,最好是将其转换为文本参数文件后进行更改。更改完成后直接使用文本参数文件启动或者转换为服务器参数文件再启动数据库系统。
另外就是直接通过命令来进行更改。这里需要注意的是,存储在服务器参数文件中的初始化参数是永久保留的。也就是说,在数据库运行的过程中,通过命令对参数所做的任何更改,在数据库关闭后是会被保存在服务器的初始化文件中。为此数据库管理员不用担心数据库重新启动后参数丢失的问题。
三、导出服务器参数文件。
在数据库部署完成之后或者对初始化参数文件进行修改之前,管理员都需要对参数文件进行备份。无论是服务器参数文件还是文本参数文件,这个备份都是免不了的。因为任何数据库管理员都不能够保证在以后这个参数文件是否会出现损坏的情况。未雨绸缪,对服务器参数文件或者文本参数文件进行备份是提高数据库安全的一个重要举措。其次,有时候在排除数据库故障时候,也需要导出这个数据库服务器参数文件。因为将这个文件导出后,可以利用文本编辑器来方便的查询所有的初始化参数,以分析故障的原因。虽然在数据库的SQL*PLUS等工具中也可以查看这些初始化参数,但是操作起来不是很方便。所以不少管理员喜欢将他们导成文本文件来进行分析。最后,对服务器参数文件进行更改。由于不能够通过文本编辑器直接对二进制的服务器参数文件进行更改,为此数据库管理员往往会将将服务器参数文件导出来,然后再利用数据库提供的命令将其转换为文本文件。最后再将其转换为服务器参数文件,并利用其启动。有时候,在重新部署数据库之前管理员也会先导出这个服务器参数文件,以方便后续重新使用这个服务器参数文件来启动数据库。
在导出数据库服务器参数文件的时候,主要需要注意以下几点。
首先,需要具有相关的权限。根据Oracle数据库的要求,如果要导出数据库服务器参数文件的话,必须需要数据库的SYSDBA或者SYSOPER权限。如果用户没有类似权限的话,那么在利用命令导出服务器参数文件过程中,会出现“权限不足”的错误提示。
其次,可以直接直接利用命令create pfile from spfile命令,将服务器参数文件导出为文本文件。在导出的时候,不需要关闭原有的例程。如果没有指定目录与名称的话,则数据库会存放在不同的目录中。这里主要需要注意这个名称。因为在不同的操作系统平台上,其采用的名称是不同的。即在没有指定导出文件名称的话,数据库会采用平台特定的名称,并于据平台特定的默认服务器参数文件进行创建。有时候为了方便起见,可以在命令中指定存储的路径。如要指定路径的话,需要采用=号和单引号。如采用pfile=‘路径名’的形式。
第三,在导出的过程中,服务器还会将原先二进制文件中的一些行注释也导出到文本文件中,以方便管理员进行略读。同理,在将文本文件转换为二进制的服务器参数文件时,也会将行注释存储在二进制文件中。不过其只保存行注释,而不会保存其他的注释。此时再将二进制服务器参数文件转换为文本参数文件时,原先的其他注释也会丢失,只会保存行注释。所以在初始化参数文件中编写注释的时候,最好采用行注释。只有这个行注释才会在转换的过程中被永久的保留。
四、创建服务器参数文件。
当服务器参数文件出现损坏而无法启动数据时,就有可能需要重新创建服务器参数文件。上面笔者已经强调过好几次,服务器参数文件是无法手工编辑与创建的。为此必须通过文本参数文件来创建服务器参数文件。为了在服务器参数文件出现损坏时有一个补救,最好在平时将服务器参数文件进行备份,或者将其导出为文本参数文件。然后再必要的时候,根据这个文本参数文件来创建服务器参数文件。虽然可以手工创建文本参数文件,但是这个工作太复杂,不是轻易可以完成的。如果对其进行小修小改还行,但是若要将其从零开始创建,可是一个很浩大的工程,基本上是一项不可能完成的任务。
若要根据文本参数文件来转换成服务器参数文件,可以使用数据库提供的命令:Create Spfile=‘’ from pfile=‘’来完成。如果没有指定服务器参数文件的名字与路径的话,数据库xiotng 采用的是平台特定的名称,并保存在数据库的默认位置中。然后数据库管理员就可以利用Startup命令来启动了。当保存在默认位置时,可以不加参数即启用这个服务器参数文件。因为默认情况下,这个服务器参数文件要比文本参数文件优先级高。
最后需要说明的一点是即使是文本参数文件,数据库管理员要读懂这个文件中的内容,仍然需要一定的功底。为此笔者建议管理员,以后若更改系统的默认参数的话,最好加上注释,以利于提高这个文本参数文件的可读性。如此的话,在利用这个文件排除故障与改善数据库性能使会变得相对简单一点,有利于提高这个文本参数文件的可读性
本文作者:未知