Oracle RAC修改参数文件位置
目的:
将参数文件原位置+DATA/cjcdb/spfilecjcdb.ora修改到+DATA/cjcdb/spfile/spfilecjcdb.ora
步骤如下:
一:临时位置生成pfile注意:RAC环境下严禁使用createpfilefromspfile;会覆盖默认位置下pfile内容。SQL>createpfile='/tmp/pfilexxx.ora'fromspfile;二:新位置重新生成spfile注意:pfile和spfile都需要指定目录,SQL>createspfile='+DATA/cjcdb/spfile/spfilecjcdb.ora'frompfile='/tmp/pfilexxx.ora';三:修改pfile中spfile位置[oracle@rac01dbs]$viminitcjcdb1.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'四:修改OCR中spfile位置[oracle@rac01dbs]$srvctlmodifydatabase-dcjcdb-p'+DATA/cjcdb/spfile/spfilecjcdb.ora'五:重启数据库生效逐个节点重启或同时重启都可以,根据是否可以停机来定[oracle@rac01dbs]$srvctlstopdatabase-dcjcdb[oracle@rac01dbs]$srvctlstartdatabase-dcjcdb
实验过程如下:
节点一,节点二
查看当前spfile位置
SQL>showparameterspfileNAMETYPEVALUE-----------------------------------------------------------------------------spfilestring+DATA/cjcdb/spfilecjcdb.ora
查看当前spfile位置
[oracle@rac01~]$srvctlconfigdatabase-dcjcdb-aDatabaseuniquename:cjcdbDatabasename:cjcdbOraclehome:/u01/app/oracle/product/11.2.0/db_1Oracleuser:oracleSpfile:+DATA/cjcdb/spfilecjcdb.oraDomain:Startoptions:openStopoptions:immediateDatabaserole:PRIMARYManagementpolicy:AUTOMATICServerpools:cjcdbDatabaseinstances:cjcdb1,cjcdb2DiskGroups:DATAMountpointpaths:Services:Type:RACDatabaseisenabledDatabaseisadministratormanaged
创建新位置
[root@rac01~]#su-grid[grid@rac01~]$asmcmdASMCMD>lsdgStateTypeRebalSectorBlockAUTotal_MBFree_MBReq_mir_free_MBUsable_file_MBOffline_disksVoting_filesNameMOUNTEDEXTERNN51240961048576102409974099740NARCH/MOUNTEDEXTERNN5124096104857620480186890186890NDATA/MOUNTEDNORMALN5124096104857661445218204815850YOCR/
ASMCMD>cddata/cjcdbASMCMD>mkdirspfileASMCMD>cdspfileASMCMD>pwd+data/cjcdb/spfile
新位置重新生成spfile
SQL>createpfile='/tmp/pfilexxx.ora'fromspfile;SQL>createspfile='+DATA/cjcdb/spfile/spfilecjcdb.ora'frompfile='/tmp/pfilexxx.ora';
修改pfile中spfile为新位置(节点一、节点二)
[oracle@rac01~]$cd$ORACLE_HOME/dbs[oracle@rac01dbs]$cpinitcjcdb1.orainitcjcdb1.ora.bak[oracle@rac01dbs]$viminitcjcdb1.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'
[oracle@rac02~]$cd$ORACLE_HOME/dbs[oracle@rac02dbs]$cpinitcjcdb2.orainitcjcdb2.ora.bak[oracle@rac02dbs]$viminitcjcdb2.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'
修改OCR中记录的spfile位置
[oracle@rac01dbs]$srvctlconfigdatabase-dcjcdb-a|grepspfileSpfile:+DATA/cjcdb/spfilecjcdb.ora[oracle@rac01dbs]$srvctlmodifydatabase-dcjcdb-p'+DATA/cjcdb/spfile/spfilecjcdb.ora'[oracle@rac01dbs]$srvctlconfigdatabase-dcjcdb-a|grepspfileSpfile:+DATA/cjcdb/spfile/spfilecjcdb.ora
重启数据库
[oracle@rac01dbs]$srvctlstopdatabase-dcjcdb[oracle@rac01dbs]$srvctlstartdatabase-dcjcdb
查看spfile参数值
[oracle@rac01dbs]$srvctlconfigdatabase-dcjcdb-a|grepspfileSpfile:+DATA/cjcdb/spfile/spfilecjcdb.oraSQL>showparameterspfileNAMETYPEVALUE-----------------------------------------------------------------------------spfilestring+DATA/cjcdb/spfile/spfilecjcdb.ora
参见问题:
问题一:需要执行srvctlmodify修改ocr中参数文件位置,否则通过srvctl重启数据库后,参数文件位置不变。例如:重启数据库节点一和节点二
SQL>ShutdownimmeidateSQL>startup
通过show parameter方式查看spfile位置已经修改成功
SQL>showparameterspfileNAMETYPEVALUE-----------------------------------------------------------------------------spfilestring+DATA/cjcdb/spfile/spfilecjcdb.ora
通过 srvctl config 命令查看参数文件位置修改失败
[oracle@rac01dbs]$srvctlconfigdatabase-dcjcdb-aDatabaseuniquename:cjcdbDatabasename:cjcdbOraclehome:/u01/app/oracle/product/11.2.0/db_1Oracleuser:oracleSpfile:+DATA/cjcdb/spfilecjcdb.oraDomain:Startoptions:openStopoptions:immediateDatabaserole:PRIMARYManagementpolicy:AUTOMATICServerpools:cjcdbDatabaseinstances:cjcdb1,cjcdb2DiskGroups:DATAMountpointpaths:Services:Type:RACDatabaseisenabledDatabaseisadministratormanaged
通过srvctl重启数据库
[root@rac01bin]#./srvctlstopdatabase-dcjcdb[root@rac01bin]#./srvctlstartdatabase-dcjcdb
参数文件位置完全变为原值
SQL>showparameterspfileNAMETYPEVALUE-----------------------------------------------------------------------------spfilestring+DATA/cjcdb/spfilecjcdb.ora
查看pfile里修改的值也变回原值
[oracle@rac01dbs]$catinitcjcdb1.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfilecjcdb.ora'#lineaddedbyAgent
问题二:两个节点spfile位置不一致
例如实例一spfile在ASM磁盘组内,实例二spfile在本地文件系统上($ORACLE_HOME/dbs)可以在实例二上创建新的pfile,将ASM上spfile位置写入到新pfile内,重启实例。
[oracle@rac02dbs]$viminitcjcdb2.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'
欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。