千家信息网

Oracle RAC修改参数文件位置

发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,目的:将参数文件原位置+DATA/cjcdb/spfilecjcdb.ora修改到+DATA/cjcdb/spfile/spfilecjcdb.ora步骤如下:一:临时位置生成pfile注意:RAC环
千家信息网最后更新 2025年11月12日Oracle RAC修改参数文件位置

目的:

将参数文件原位置+DATA/cjcdb/spfilecjcdb.ora修改到+DATA/cjcdb/spfile/spfilecjcdb.ora

步骤如下:

一:临时位置生成pfile注意:RAC环境下严禁使用create pfile from spfile;会覆盖默认位置下pfile内容。SQL> create pfile='/tmp/pfilexxx.ora' from spfile;二:新位置重新生成spfile注意:pfile和spfile都需要指定目录,SQL> create spfile='+DATA/cjcdb/spfile/spfilecjcdb.ora' from pfile='/tmp/pfilexxx.ora';三: 修改pfile中spfile位置[oracle@rac01 dbs]$ vim initcjcdb1.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'四:修改OCR中spfile位置[oracle@rac01 dbs]$ srvctl modify database -d cjcdb -p '+DATA/cjcdb/spfile/spfilecjcdb.ora'五:重启数据库生效逐个节点重启或同时重启都可以,根据是否可以停机来定[oracle@rac01 dbs]$ srvctl stop database -d cjcdb[oracle@rac01 dbs]$ srvctl start database -d cjcdb

实验过程如下:

节点一,节点二

查看当前spfile位置

SQL> show parameter spfileNAME     TYPE VALUE------------------------------------ ----------- ------------------------------spfile     string +DATA/cjcdb/spfilecjcdb.ora

查看当前spfile位置

[oracle@rac01 ~]$ srvctl config database -d cjcdb -aDatabase unique name: cjcdbDatabase name: cjcdbOracle home: /u01/app/oracle/product/11.2.0/db_1Oracle user: oracleSpfile: +DATA/cjcdb/spfilecjcdb.oraDomain: Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: cjcdbDatabase instances: cjcdb1,cjcdb2Disk Groups: DATAMount point paths: Services: Type: RACDatabase is enabledDatabase is administrator managed

创建新位置

[root@rac01 ~]# su - grid[grid@rac01 ~]$ asmcmdASMCMD> lsdg State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  NameMOUNTED  EXTERN  N         512   4096  1048576     10240     9974                0            9974              0             N  ARCH/MOUNTED  EXTERN  N         512   4096  1048576     20480    18689                0           18689              0             N  DATA/MOUNTED  NORMAL  N         512   4096  1048576      6144     5218             2048            1585              0             Y  OCR/
ASMCMD> cd data/cjcdbASMCMD> mkdir spfileASMCMD> cd spfileASMCMD> pwd+data/cjcdb/spfile

新位置重新生成spfile

SQL> create pfile='/tmp/pfilexxx.ora' from spfile;SQL> create spfile='+DATA/cjcdb/spfile/spfilecjcdb.ora' from pfile='/tmp/pfilexxx.ora';

修改pfile中spfile为新位置(节点一、节点二)

[oracle@rac01 ~]$ cd $ORACLE_HOME/dbs[oracle@rac01 dbs]$ cp initcjcdb1.ora initcjcdb1.ora.bak[oracle@rac01 dbs]$ vim initcjcdb1.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'
[oracle@rac02 ~]$ cd $ORACLE_HOME/dbs[oracle@rac02 dbs]$ cp initcjcdb2.ora initcjcdb2.ora.bak[oracle@rac02 dbs]$ vim initcjcdb2.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'

修改OCR中记录的spfile位置

[oracle@rac01 dbs]$ srvctl config database -d cjcdb -a|grep spfileSpfile: +DATA/cjcdb/spfilecjcdb.ora[oracle@rac01 dbs]$ srvctl modify database -d cjcdb -p '+DATA/cjcdb/spfile/spfilecjcdb.ora'[oracle@rac01 dbs]$ srvctl config database -d cjcdb -a|grep spfileSpfile: +DATA/cjcdb/spfile/spfilecjcdb.ora

重启数据库

[oracle@rac01 dbs]$ srvctl stop database -d cjcdb[oracle@rac01 dbs]$ srvctl start database -d cjcdb

查看spfile参数值

[oracle@rac01 dbs]$ srvctl config database -d cjcdb -a|grep spfileSpfile: +DATA/cjcdb/spfile/spfilecjcdb.oraSQL> show parameter spfileNAME     TYPE VALUE------------------------------------ ----------- ------------------------------spfile     string +DATA/cjcdb/spfile/spfilecjcdb.ora

参见问题:

问题一:需要执行srvctl modify修改ocr中参数文件位置,否则通过srvctl重启数据库后,参数文件位置不变。例如:重启数据库 节点一和节点二
SQL> Shutdown immeidateSQL> startup

通过show parameter方式查看spfile位置已经修改成功

SQL> show parameter spfileNAME     TYPE VALUE------------------------------------ ----------- ------------------------------spfile     string +DATA/cjcdb/spfile/spfilecjcdb.ora

通过 srvctl config 命令查看参数文件位置修改失败

[oracle@rac01 dbs]$ srvctl config database -d cjcdb -aDatabase unique name: cjcdbDatabase name: cjcdbOracle home: /u01/app/oracle/product/11.2.0/db_1Oracle user: oracleSpfile: +DATA/cjcdb/spfilecjcdb.oraDomain: Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: cjcdbDatabase instances: cjcdb1,cjcdb2Disk Groups: DATAMount point paths: Services: Type: RACDatabase is enabledDatabase is administrator managed

通过srvctl重启数据库

[root@rac01 bin]# ./srvctl stop database -d cjcdb[root@rac01 bin]# ./srvctl start database -d cjcdb

参数文件位置完全变为原值

SQL> show parameter spfileNAME     TYPE VALUE------------------------------------ ----------- ------------------------------spfile     string +DATA/cjcdb/spfilecjcdb.ora

查看pfile里修改的值也变回原值

[oracle@rac01 dbs]$ cat initcjcdb1.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfilecjcdb.ora'# line added by Agent

问题二:两个节点spfile位置不一致

例如 实例一spfile在ASM磁盘组内,实例二spfile在本地文件系统上($ORACLE_HOME/dbs)可以在实例二上创建新的pfile,将ASM上spfile位置写入到新pfile内,重启实例。
[oracle@rac02 dbs]$ vim initcjcdb2.ora###SPFILE='+DATA/cjcdb/spfilecjcdb.ora'SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.ora'

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

位置 节点 参数 文件 数据 数据库 实例 问题 生成 原值 一致 成功 两个 公众 内容 原位 同时 命令 方式 步骤 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 闲豆服务器异常 软件开发跟硬件开发哪个难 网络安全比赛怎么加入 全车销量数据库 我的世界战争服最重要的服务器 数据库中什么是持久化 河南软件开发价格标准 黑客变网络安全专家 服务器dr 两个数据库的两张表怎么连接查询 网络安全应急处置标准 如何去管理前台的服务器 软件开发培训到底好不好 北京思源互联网科技 泉州安博网络技术公司 中专网络技术大专转什么 广州销售软件开发费用是多少 中无线网络技术 远程服务器的资源无法拷贝到本地 学校网络安全隐患排查存在的问题 列举一个数据库程序 统招的计算机软件开发条件 服务器安全维护记录怎么写 人民网地方领导干部数据库 软件开发很难啊 服务器资产管理员隶属什么行业 高校战疫网络安全分享赛wp 免费申请ftp服务器 远程服务器的资源无法拷贝到本地 服务器 统一监控管理平台
0