管理一个Oracle RAC数据库的初始化参数和管理单实例Oracle数据库一样重要。
通过Oracle EM查看初始化参数时,Oracle RAC数据库的初始化参数有以下区别:
- 集群特定参数在类别(Category)列中用“Cluster Database”标识。
- Oracle RAC数据库中每个实例具有相同值的参数在实例(Instance)列中用星号(*)标识。
- Oracle RAC数据库中每个实例具有不同值的参数以实例名进行罗列。
在Oracle RAC环境下更新初始化参数时,做的修改可以应用到集群环境下的1个或多个实例。如果你更改的是以星号(*)标记的参数时,更改了一个实例的参数值的同时就更新了集群环境下其他所有实例的参数值。如果你更改的是以实例名为前缀的参数时,该参数只会对连接的实例产生影响,而不会改变其他数据库实例的配置。
Oracle数据库存储初始化参数在服务参数文件(server parameter file,SPFILE)或文本格式的参数文件(PFILE)中。SPFILE是一个二进制文件,是一个初始化参数仓库类型,保存在Oracle数据库服务运行的服务器上或是Oracle RAC数据库的共享存储上。保存在SPFILE中初始化参数值时永久性的,针对一个运行中的实例修改配置后,如果想让这些值永久化的话,可以通过关闭、重启实例的方式实现。在我们创建数据库的时候,Oracle会在你指定的文件位置创建一个SPFILE。这个文件位置可以是一个OracleASM磁盘组或是在一个集群文件系统上的一个文件。Oracle建议在Oracle ASM中保存SPFILE。
PFILE是一个包含初始化参数配置信息的文本文件。和SPFILE相比,PFILE不是二进制的,不需要保存在数据库服务器上。PFILE可以由数据库读取,但是不能写入。
数据库集群中的所有实例在启动的时候使用相同的SPFILE文件。Oracle RAC只有在SPFILE不存在或是在“STARTUP”命令中指定PFILE才会使用传统的参数文件。Oracle推荐使用SPFILE来简化管理,维护参数设置的持续性,确保在数据库关闭和启动事件中,参数配置信息的持久性。另外,我们可以配置RMAN来备份SPFILE文件。
所有实例必须保存一致的参数
在一个Oracle RAC数据库中,如果在数据库创建的时候很重要、或是会影响某些数据库操作的初始化参数,那么这些参数在在所有实例中的值必须一致。可以在SPFILE文件,或是单独的PFILE中设置这些参数值。
每个实例必须具有相同值的初始化参数有:
- CLUSTER_DATABASE
- COMPATIBLE
- CONTROL_FILES
- DB_BLOCK_SIZE
- DB_DOMAIN
- DB_NAME
- DB_RECOVERY_FILE_DEST
- DB_RECOVERY_FILE_DEST_SIZE
- DB_UNIQUE_NAME
- DML_LOCKS(只有设置为0时相同)
- INSTANCE_TYPE(RDBMS或ASM)
- PARALLEL_EXECUTION_MESSAGE_SIZE
- REMOTE_LOGIN_PASSWORDFILE
- RESULT_CACHE_MAX_SIZE(在所有实例中要么都是enabled,要么都是disabled)
- UNDO_MANAGEMENT
在不同实例中具有不同值的参数
- ASM_PREFERRED_READ_FAILURE_GROUPS
- CLUSTER_INTERCONNECTS
- INSTANCE_NUMBER
- ROLLBACK_SEGMENTS
- UNDO_TABLESPACE(如果UNDO_MANAGEMENT设置为AUTO的时候)
所有实例可以设置为统一值的参数
Oracle建议在所有实例上为下列参数值设置成统一值。下列参数虽然可以在不同实例上设置成不同值,但是可以设置成统一值后方便管理。
- ARCHIVE_LAG_TARGET
- CLUSTER_DATABASE_INSTANCE
- LICENSE_MAX_USERS
- LOG_ARCHIVE_FORMAT
- REDO_TRANSPORT_USER
- SPFILE
- TRACE_ENABLED
- UNDO_RETENTION
修改Oracle RAC的SERVICE_NAMES参数
SERVICE_NAMES参数不能和其他初始化参数相同的方式进行修改。SERVICE_NAMES参数规定了客户端能够连接实例的一个或多个名称。数据库实例注册自己的服务名到侦听器中。当一个客户端请求一个服务时,侦听器决定哪些实例提供请求服务,并引导客户到对应的实例上。
在Oracle RAC数据库中,我们不应该直接修改这个参数。而应该使用SRVCTL或是在Oracle Enterprise Manager的Clustered managered Database Services页面修改。当使用Oracle Enterprise Manager或者SRVCTL创建或启动服务的时候,一旦服务激活后,SERVICE_NAMES参数自动更新。
编辑Oracle RAC数据库的初始化参数设置
我们可以使用Enterprise Manager浏览和编辑Oracle RAC数据库的初始化参数配置信息。
我们可以在OEM的初始化参数(Initialization Parameters)页面中的当前(current)子页中配置参数为特定值以初始化一个Oracle实例的许多内存和进程配置项。
在“Current(当前)”页修改初始化参数时,在不选定“Apply changes in current running instance(s) mode to SPFILE"时,修改后的值只会影响当前运行的实例,不会对SPFILE进行修改。
在“SPFILE”页修改初始化参数时,修改后的值应用到SPFILE文件,不会对当前运行的实例产生影响,除非修改的时候选定“Apply changes in SPFile mode to the current running instance(s)”.