Oracle问题:ORA-01565
问题
oracle启动时报错,找不到spfile文件。
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+datadg/prod/parameterfile/spfile.273.1008592463'
ORA-17503: ksfdopn:10 Failed to open file +datadg/prod/parameterfile/spfile.273.1008592463
ORA-15056: additional error message
ORA-15173: entry 'spfile.273.1008592463' does not exist in directory 'parameterfile'
ORA-06512: at line 4
问题分析
- 但数据库是有spfile的,其他节点都可以运行。所以去asm中查看文件是否存在
su - grid # 切换用户
asmcmd # 进入asmcmd命令行模式
ASMCMD> cd '+datadg/prod/parameterfile/' # 进入报错的spfile配置文件路径
ASMCMD> ls # 查看当前spfile文件名
spfile.273.1028631305
- 查看oracle的initPROD或pfilePROD配置,我们知道,RAC环境下,使用共享的spfile的话,initPROD/pfilePROD会配置指向asm路径的配置,配置如下:
cd $ORACLE_HOME/dbs
cat initSID.ora # SID是自己数据库的实例名
SPFILE='+datadg/prod/parameterfile/spfile.273.1008592463'
可以看到文件名与asm中的spfile文件名不一致。
判断是在修改了spfile配置后,文件版本号发生了变化。所以我的理解是,每次修改spfile文件时,oracle会自动生成一个新的spfile文件,并由asm自动命名,这时文件名会发生变化,导致数据库重启时会找不到旧的。
解决方法
方法一 修改initSID.ora文件中的路径为新的路径即可,新的路径就是asm中实际文件名称。
vi initSID.ora
cat initSID.ora # SID是自己数据库的实例名
SPFILE='+datadg/prod/parameterfile/spfile.273.1008592463'
改为
cat initSID.ora # SID是自己数据库的实例名
SPFILE='+datadg/prod/parameterfile/spfile.273.1028631305'
优点:
操作简单,不易出错。
缺点:
每次修改完配置文件,spfile文件名会发生变化,重启后会报错无法启动。并且自动启动也会因为报错而终止。
方法二 为spfile.xxx.xxxxx创建别名
# 1. 创建别名
su - grid
asmcmd
mkalias +datadg/prod/PARAMETERFILE/spfile.273.1028631305 +datadg/prod/spfilePROD4.ora
# 2. 将initSID.ora文件路径指向新的别名路径
su - oracle
cd $ORACLE_HOME/dbs
vi initSID.ora
SPFILE='+datadg/prod/spfilePROD4.ora' # 配置文件内容
之后再启动数据库即可。
优点:
修改spfile文件后,别名不影响(未验证),每次修改不需要修改initSID.ora配置。
Oracle问题:ORA-01565的更多相关文章
- Oracle sqlnet.ora配置
Oracle sqlnet.ora配置 sqlnet.ora的作用(官网指出的) www.2cto.com 1.限制客户端访问(如指定客户端域为不允许访问) 2.指定命名方法(local nami ...
- oracle tnsnames.ora文件用法说明
oracle tnsnames.ora文件用法说明 CreationTime--2018年8月10日08点32分 Author:Marydon 1.用途 oracle客户端所需要的一个文件,通过该 ...
- LR连接oracle时出现:SQLState=28000[Oracle][ODBC][Ora]ORA-01017:invalid username/password;logon denied
出现的现象:
- [oracle] listener.ora 、sqlnet.ora 、tnsnames.ora
路径 $ORACLE_HOME/network/admin sqlnet.ora(客户及服务器端) 作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个 ...
- oracle listener.ora文件配置
# listener.ora Network Configuration File: /oracleDB/product//db_1/network/admin/listener.ora # Gene ...
- oracle: listener.ora 、sqlnet.ora 、tnsnames.ora的配置及例子
1.解决问题:TNS或者数据库不能登录. 最简单有效方法:使用oracle系统提供的工具 netca 配置(把原来的删除掉重新配置) $netca 2.然而,仍有疑问:如何指定'l ...
- oracle listener.ora的host不能使localhost,而应该是该机器名,否则不能用ip地址进行连接
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/lis ...
- Oracle tnsnames.ora
安装过ORACLE的都知道,oracle安装时需要进行配置,这个配置可以在客户端的企业管理器一步一步进行,或者直接拷贝一个tnsnames.ora文件到安装目录下(c:\app\Administrat ...
- Oracle tnsname.ora 链接问题
oracle数据库需要配置tns链接 这里我发现了一个问题: 在D:\Oracle\product\10.1.0\Client_3\NETWORK\ADMIN 目录中配置链接字符串的时候要特别注意: ...
- 【Oracle】ORA 01810 格式代码出现两次-转
一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') fr ...
随机推荐
- 攻防(一)tomcat CVE-2020-1938,ftp 21端口
TOMCAT kali自带POE msf6 > use auxiliary/admin/http/tomcat_ghostcat set RHOST 10.98.xx.xx msf6 auxil ...
- 自学JavaDay02_class02
注释 单行注释: //单行注释 多行注释 /** 多行注释* 多行注释* */ 文档注释 /** * 文档注释 * 文档注释 */ 标识符 关键字 标识符 所有的标识符都应该以字母(A-Z 或者 a- ...
- Python笔记(5)——if 语句一:条件测试(Python编程:从入门到实践)
每条if语句的核心都是一个值为True或False的表达式.Python根据条件测试的值为True还是False来决定是否执行if语句中的代码.如果条件测试的值为True,Python就执行紧跟在if ...
- C++学习流程
一.初级入门阶段 数据类型.变量.内存布局.指针基础: 字符串.一维数组.二维数组: 一级指针,二级指针,三级指针,N级指针概念,指针数组和数组指针: 结构体.文件的使用: 动态库的封装和设计: 函数 ...
- Javaheima21
Java 学习内容 XML XML解析技术 XPath 设计模式 在有些业务场景下,存储数据或者传输数据给别人的时候,数据需要满足优点的规范进行组织 XML文件存储的数据需要提取出来 如何方便的在XM ...
- golang RWMutex RLock重入导致死锁
现象 一个组件实现了raft分布式协议,在分布式部署环境中来进行选主,在某客户现场突然发生文件句柄泄露,在打印某些错误日志后,几个小时内没有日志打印,然后某个协程突然报无可用的文件句柄. 分析 经过代 ...
- [C#]delegate基础入门
参考代码1: using System; namespace DelegateDemo { class Program { public delegate void Expresser(); stat ...
- 助教工作总结(高级语言程序设计C语言)
* { font-family: 宋体 } zw { font-size: 20px; line-height: 2em } 一.助教工作的具体职责和任务 在本学期担任陈欣老师的计科专业21级c语 ...
- week3题解
1.寄包柜 看到题目最容易想到开二位数组 但数据量过大,因此需要map #include <bits/stdc++.h> using namespace std; map<int,m ...
- 不使用setTimeout的延迟执行
function sleep(ms){ var time = new Date(); time.setTime(time.getTime() + ms); while(new Date().getTi ...