Oracle9i的一个令人激动的新特性是init.ora文件的转移。由于取代了原来的init.ora文件,你现在可以使用ALTER SYSTEM命令动态地改变所有的参数。
使用Oracle9i,你可以使用一个二进制服务器参数文件(SPFILE)来治理初始化参数。在缺省的情况下,一个新的Oracle9i数据库可以运行在一个SPFILE,所以你必须在SQL启动时的PFILE中建立SPFILE。可以通过使用CREATE SPFILE语句来建立SPFILE:
Connect system/manager as sysdba;
CREATE SPFILE FROM PFILE;
这一命令在一个非默认路径($ORACLE_HOME/database)下建立一个SPFILE。然而,你可以在CREATE SPFILE语句指定全部路径。
CREATE SPFILE='/u01/admin/prod/pfile/file_mydb.ora'
FROM
PFILE=/u01/admin/prod/pfile/initprod.ora';
建立一个SPFILE之后,当与数据库联系时,你可能会碰到一个错误。为了解决这一错误,可以以SYSDBA方式连接并使用STARTUP命令。
SPFILE可以改变Oracle9i启动的搜索路径。在Oracle9i中,请遵循SPFILE搜索的这些步骤:
1. 在缺省的路径下搜索spfile$ORACLE_SID.ora文件。
2. 查找spfile.ora。
3. 以名为init$ORACLE_SID.ora搜索PFILE。
指定SCOPE参数
一旦已经有了一个SPFILE,你就可以使用ALTER SYSTEM命令来改变任一初始化参数。然而,有一个相当重要的SCOPE参数你必须理解。
SCOPE参数具有三个值:SPFILE,MEMORY,以及BOTH。现在让我们看一看每一个值的范例。
Alter system set db_2k_cache_size=100m SCOPE=SPFILE;
假如你想在SPFILE中改变一个参数而不希望影响当前的例子,可以使用ALTER SYSTEM语句中的SCOPE=SPFILE选择。这对于从下一次启动中改变启动非常有好处。
Alter system set db_2k_cache_size=100m SCOPE=MEMORY;
在以上的范例中,SCOPE=MEMORY选择告诉Oracle9i从例子中改变到下一次数据库获得的缺省值。
Alter system set db_2k_cache_size=100m SCOPE=BOTH;
当你指定SCOPE=BOTH,Oralce9i立即执行改变,并永久地使用改变,即使在下一次被数据库使用。