======================================================================================执行语句:表示操作数据库过程出错现象:表示操作数据库过程出现错误现象出错原因:表示出现错误的原因解决方法:表示解决错误的方法相关知识:表示与这个主题相关的知识
执行语句:
启动数据库startup
出错现象:
ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
出错原因:
db_recovery_file_dest所对应的硬盘没有挂载,即db_recovery_file_dest无法找到目录
解决方法:
第一种方法: 删除spfile参数文件中db_recovery_file_dest对应的目录配置
第二种方法:挂载相应的目录 (用mount命令即可解决)
备注:本文就第一种方法给出详细的过程
步骤1:用init.ora文件启动数据库
startup mount pfile=‘/home/oracle/app/oracle/admin/orcl/pfile/init.ora’
路径修改成当前init.ora所在的目录即可
这个是作者所在数据库目录
[oracle@localhost pfile]$ ls /home/oracle/app/oracle/admin/orcl/pfile
init.ora.117201120430
用mv把init.ora.117201120430修改成init.ora
步骤2:修改数据库启动状态,切换到open状态
alter database open
步骤3:创建新的spfile
create spfile from pfile=‘/home/oracle/app/oracle/admin/orcl/pfile/init.ora’
步骤4:关闭数据库,并重启数据库
关闭shutdown immediate
重启startup
相关知识:
在步骤1当中,启动数据库报控制文件错误
ORA-00214: control file
'/home/oracle/app/oracle/flash_recovery_area/orcl/control02.ctl' version 4106
inconsistent with file '/home/oracle/app/oracle/oradata/orcl/control01.ctl'
version 9971
ORA-00205: error in identifying control file, check alert log for more info
原因是:init.ora控制文件版本不一致,删除多余的控制文件配置参数即可
这个是init.ora修改以前的配置:control_files=("/home/oracle/app/oracle/oradata/orcl/control01.ctl",
"/home/oracle/app/oracle/flash_recovery_area/orcl/control02.ctl")
修改成一个即可以,注意:数据库中控制文件必须要存在。例如如下
control_files=("/home/oracle/app/oracle/oradata/orcl/control01.ctl")
在步骤4中报flashback 启动失败
SQL> startup
ORACLE instance started.
Total System Global Area 422670336 bytes
Fixed Size 1336960 bytes
Variable Size 260049280 bytes
Database Buffers 155189248 bytes
Redo Buffers 6094848 bytes
Database mounted.
ORA-38760: This database instance failed to turn on flashback database
原因是当前数据库开启的了闪恢复功能。
解决方法:关闭删回复功能
a.先检查restore_point: select name from V$restore_point;
b.如果不为空,请先执行drop restore point 【name名字】,然后在执行alter database flashback off
c.如果为空,直接执行alter database flashback off