

Oracle控制文件是Oracle数据库存储信息的重要文件,它是一个二进制文件,控制文件主要用来存放数据库名字、数据文件位置等信息的文件。Oracle控制文件是至关重要的,没有了它,数据库就不能启动。数据库启动报控制文件损坏,如果有备份是最好的,直接用备份启动,但是如果没有备份,就需要手工重建控制文件。

现模拟没有控制文件备份,手工重建控制文件,首先把数据库启动到nomount状态,
把cluster_database参数修改为FALSE。
alter system set cluster_database=FALSE scope=spfile sid='*';
下面是创建控制文件的脚本,这里面需要数据库的实列名,在线日志路径,各个表空间数据文件的路径,数据库的字符集等写在里面。

在数据库nomount状态把cluster_database参数修改为true
alter system set cluster_database=true scope=spfile sid='*'启动数据库
startup mount force ;
alter database open resetlogs/noresetlogs
在生产数据库中手工重建控制文件是非常复杂,而且风险高。有两点建议是可以避免的:
第二、涉及数据库重启时,备份控制文件到本地,当出现控制文件损坏,可以使用备份控制文件启动数据库。


写这篇文章目的是希望大家不是在出现故障后被动的处理,而是应该在平时多挖掘隐患,及时消除隐患,避免因为这些隐患而造成的故障,当涉及数据库重启时一定要备份,如监听状态、参数文件、控制文件、有集群的备份集群状态等。

本期作者 | 黄导:拥有5年oracle和mysql数据库运维经验。熟悉oracle、Mysql数据库性能调优、故障诊断、环境部署(包括rac、dataguard、goldengate、mysql),数据库升级、psu升级
文章转载自炬南山,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




