Oracle参数文件损坏解决办法
文件说明:这里所说的参数文件指的是spfile,该文件存储的是实例启动的参数和控制文件的路径 模拟故障:清空该文件 echo ‘’ > $ORACLE_HOME/dbs/spfileorcltest.ora 现象:修改数据库参数时会报错 SQL> alter system set open_cursors=400; alter system set open_cursors=400 * ERROR at line 1: ORA-01565: error in identifying file '/u01/app/oracle/product/11.2.0/db_1/dbs/spfileorcltest.ora' ORA-27046: file size is not a multiple of logical block size Additional information: 1 修复:使用rman还原参数文件 RMAN> list backup of spfile; BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 22 Full 9.73M DISK 00:00:02 17-MAR-20 BP Key: 22 Status: AVAILABLE Compressed: NO Tag: TAG20200317T133602 Piece Name: /home/oracle/backupdir/c-2750922031-20200317-00 SPFILE Included: Modification time: 17-MAR-20 SPFILE db_unique_name: ORCLTEST RMAN> restore spfile to ‘/home/oracle/spfileorcltest.ora’ from ‘/home/oracle/backupdir/c-2750922031-20200317-00’; mv /home/oracle/spfileorcltest.ora /u01/app/oracle/product/11.2.0/db_1/dbs/ SQL> shutdown immediate SQL> startup 注意在还原spfile的时候如果还原到spfile原先的位置,会报ORA-32011: cannot restore SPFILE to location already being used by the instance 所以需要还原到一个新的路径,然后手工移过去 PS:参数文件也可以从内存中直接创建一个新的,更省事(create spfile=’/home/oracle/spfileorcltest.ora’ from memory;)
文件说明:这里所说的参数文件指的是spfile,该文件存储的是实例启动的参数和控制文件的路径
模拟故障:清空该文件
echo '' > $ORACLE_HOME/dbs/spfileorcltest.ora
- 1.
现象:修改数据库参数时会报错
SQL> alter system set open_cursors=400;alter system set open_cursors=400*ERROR at line 1:ORA-01565: error in identifying file'/u01/app/oracle/product/11.2.0/db_1/dbs/spfileorcltest.ora'ORA-27046: file size is not a multiple of logical block sizeAdditional information: 1
- 1.
修复:使用rman还原参数文件
RMAN> list backup of spfile;BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------22 Full 9.73M DISK 00:00:02 17-MAR-20BP Key: 22 Status: AVAILABLE Compressed: NO Tag: TAG20200317T133602Piece Name: /home/oracle/backupdir/c-2750922031-20200317-00SPFILE Included: Modification time: 17-MAR-20SPFILE db_unique_name: ORCLTEST
- 1.
RMAN> restore spfile to '/home/oracle/spfileorcltest.ora' from '/home/oracle/backupdir/c-2750922031-20200317-00';
mv /home/oracle/spfileorcltest.ora /u01/app/oracle/product/11.2.0/db_1/dbs/
SQL> shutdown immediate
SQL> startup
- 1.
- 2.
- 3.
- 4.
注意在还原spfile的时候如果还原到spfile原先的位置,会报ORA-32011: cannot restore SPFILE to location already being used by the instance
所以需要还原到一个新的路径,然后手工移过去
PS:参数文件也可以从内存中直接创建一个新的,更省事(create spfile='/home/oracle/spfileorcltest.ora' from memory;)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)