记一次报错解决过程:修改ASM上的参数文件db_create_file_dest
概述
DB_CREATE_FILE_DEST specifies the default location for Oracle-managed datafiles. This location is also used as the default location for Oracle-managed control files and online redo logs if none of the DB_CREATE_ONLINE_LOG_DEST_ n initialization parameters are specified
在oracle中,这个参数用于指定Oracle数据库服务器创建数据文件的缺省路径,除了数据文件之外,据说还可以创建其他如日志文件、控制文件等文件的缺省路径。
问题
有一次启动数据库报错,提示:
ORA-01261: Parameter db_create_file_dest destination string cannot be translated
解决的过程还是有点意思的,所以就记录下来了。
思路:
这里很明显是db_create_file_dest参数设置的问题,数据库采用OMF管理,是因为我这边db_create_file_dest参数中间设置成了+DATA/NWPP/DATAFILE,之前是+DATA/,重启后就发现起不来了。
只需要修改db_create_file_dest参数就行,这里很多朋友可能想直接到$ORACLE_HOME/dbs目录下修改参数文件就可以了,但是我这边是放在ASM的,所以解决过程会麻烦点。
解决过程
1、ASM复制参数文件
因为参数文件在ASM上,所以需要先把参数文件复制到本地
2、root授权
之所以授权是因为参数文件用户为grid,这里我直接授权777解决
3、oracle用户创建pfile
为什么要创建pfile?因为要修改spfile的参数,但是spfile是二进制文件,我们不能直接去改它,所以需要这个步骤。
4、修改pfile文件的db_create_file_dest参数为正确值
vi /tmp/pfile
5、数据库指定pfile启动
startup nomount pfile='/tmp/pfile'; allter database mount; alter database open;
6、恢复spfile
create spfile from pfile='/tmp/pfile'
可以看到这时候是以pfile启动
7、测试spfile启动数据库
总结:
这里主要体现的是pfile和spfile之间的转换和ASM的文件怎么去修改,还有个地方没解决:spfile此时指定的位置是本地,而不是ASM上了,可能修改VALUE就可以解决了~(这里忘记解决了,哪位大佬指点下)
后面会分享更多DBA和devops方面的内容,感兴趣的朋友可以关注下!!