暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle数据库恢复控制文件

炬南山 2020-04-08
465
Oracle数据库恢复控制文件


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


手工重建控制文件步骤



1

现模拟没有控制文件备份,手工重建控制文件,首先把数据库启动到nomount状态,

把cluster_database参数修改为FALSE。

alter system set cluster_database=FALSE scope=spfile sid='*';


2

下面是创建控制文件的脚本,这里面需要数据库的实列名,在线日志路径,各个表空间数据文件的路径,数据库的字符集等写在里面。


3

在数据库nomount状态把cluster_database参数修改为true

alter system set cluster_database=true scope=spfile sid='*'


4

启动数据库

startup mount force ;

alter database open resetlogs/noresetlogs


5

在生产数据库中手工重建控制文件是非常复杂,而且风险高。有两点建议是可以避免的:

第一、把数据库控制文件做多路复用,这样即使出现一个控制文件有问题,其他两个控制文件能保证数据库正常运行。

第二、涉及数据库重启时,备份控制文件到本地,当出现控制文件损坏,可以使用备份控制文件启动数据库。


下面是控制文件多路复用方案


总 结

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


本期作者

本期作者 | 黄导拥有5年oracle和mysql数据库运维经验。熟悉oracle、Mysql数据库性能调优、故障诊断、环境部署(包括rac、dataguard、goldengate、mysql),数据库升级、psu升级

文章转载自炬南山,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论