ORACLE 单个控制文件丢失或者损坏的话,会导致数据库实例无法运行。
因为控制文件都是多路备份的,因此如果是单个控制文件损坏的话,可以有两种解决办法:
第一,将数据库关闭后,将其余的多路控制文件复制一个过来,然后修改名称就可以了。
第二,将数据库关闭后,修改spfile参数,将损坏的控制文件从spfile文件中删除,此时,控制
文件就将是剩下的正常的控制文件,这样也可以。等数据库启动之后,在重新新建一组
控制文件即可。
日常执行备份控制文件的命令:
alter database backup controlfile to trace;
重要的控制文件备份命令:
alter database backup controlfile to '你希望的备份目的地';
alter database backup controlfile to 'd:\control.ctl';
但是执行该命令的时候,应该确保你所放置的目的地文件没有存在,否则会报错,而不是进行覆盖。
之所以该备份命令比较安全,是因为该命令确保了备份的控制文件和目前数据库运行中的控制文件在特定的时间点两者读一致版本。如果使用操作系统的复制命令,则无法保证读一致状态。因为数据库正在运行中,而不是在数据库关闭的时候。