[20260908]关于spfile参数文件转换pfile文件的问题.txt
--//同事遇到spfile参数文件设置错误,需要建立pfile参数,快速启动数据库。实际上这类问题处理很简单,只不过有时候缺乏必要的
--//知识储备,遇到问题有点自乱阵脚。
--//我个人工作习惯,喜欢在做大的改动前做一个备份。
$ cp spfilebook.ora spfilebook.ora.20260622
--//相当于保留多个备份,这样遇到问题改名就可以了。
--//通过例子说明问题:
1.首先确定spfile位置:
--//alert日志就有记录。
$ grep "Using parameter settings" alert_book.log | sort| uniq -c
1 Using parameter settings in client-side pfile
1 Using parameter settings in client-side pfile /u01/app/oracle/cfgtoollogs/dbca/book/initbookTempOMF.ora on machine centos9
2 Using parameter settings in client-side pfile /u01/app/oracle/cfgtoollogs/dbca/book/initbookTemp.ora on machine centos9
373 Using parameter settings in server-side spfile /u01/app/oracle/dbs/spfilebook.ora
--//确定spfilebook.ora文件位置。
2.方法1,建立相应initbook.ora文件:
$ type cdf
cdf is a function
cdf ()
{
echo cd $(dirname $1);
cd $(dirname $1)
}
$ cdf /u01/app/oracle/dbs/spfilebook.ora
cd /u01/app/oracle/dbs
--//如果知道那个参数错误,追加正确的参数就可以了,例子如下:
$ cat initbook.ora
SPFILE='/u01/app/oracle/dbs/spfilebook.ora'
use_large_pages=true
--//完成启动修改为正确的参数。
3.方法2,建立pfile:
--//pfile建立可以在nomount,mount状态下建立。关闭数据库以及监听,步骤略。
$ rlsql
SQL*Plus: Release 21.0.0.0.0 - Production on Tue Sep 8 16:40:49 2026
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to an idle instance.
SYS@book> create pfile='/tmp/@.ora' from spfile;
File created.
--//以上情况相当于缺省路径读取spfile文件,一些rac环境放在存储上,可以指定真实的路径,写成类似如下:
SYS@book> create pfile='/tmp/@.ora' from spfile='/u01/app/oracle/dbs/spfilebook.ora';
File created.
--//这样在/tmp目录下建立book.ora文件。
$ head -4 /tmp/book.ora ; tail -4 /tmp/book.ora
book.__data_transfer_cache_size=0
book.__db_cache_size=436207616
book.__inmemory_ext_roarea=0
book.__inmemory_ext_rwarea=0
*.undo_tablespace='UNDOTBS1'
*.unified_audit_common_systemlog='LOCAL2.INFO'
*.unified_audit_systemlog='LOCAL1.INFO'
*.use_large_pages='ONLY'
--//修改init文件后,再建立正确的参数spfile就可以了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3183387/ ,如需转载,请注明出处,否则将追究法律责任。