ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 遇到了事故,学到点关于重建控制文件的东西

遇到了事故,学到点关于重建控制文件的东西

原创 Linux操作系统 作者:ninglin12 时间:2012-12-03 18:23:33 0 删除 编辑
  
官方文档还没看到第12章就碰到这样的问题,着急啊,要弄明白重建控制文件的知识,前提要熟悉oracle的启动过程步骤,这里的步骤权限为sysdba权限。
1.oracle启动相关知识:
oralce数据库至少启动一个实例,才能提供数据服务(管理数据和为用户提供各种服务)。只有在oracle数据库open的状态,数据库才能管理数据,以及为用户提供服务。oracle数据库首先要读取初始化参数,然后分配SGA的内存区,然后创建后台进程,这样一个实例就启动了(SGA与oracle进程统称为oracle实例)。实例启动后oracle将其与指定的数据库共同工作,这时的步骤为mount,挂载成功后,才能被管理员open,才能正常被用户访问。
2.控制文件到底在哪儿使用:
步骤1中的挂载过程,挂载时首先要读取控制文件(控制文件的名称及位置信息记录在参数文件CONTROL_FILES参数中 ),通过读取控制文件得到数据文件名和重做日志文件名。不然该数据库的数据恐怕就废了,既是挂载不上数据文件...
事故就是发生在这了,一个乡镇的机器,鬼知道他们怎么搞坏的。
3.解决方法:
一般出现控制文件损坏的情况,数据库只能到nomount模式。
3.1修改挂载控制文件
因为oracle10.2版本数据库安装后默认创建了3个控制文件,可以通过select name from v$controlfile;语句查看。
使用sqlplus /nolog -->conn /as sysdba登录,然后alter system set control_files='....../...02.ctr' scope=spfile;然后shutdown immediate-->startup nomount查看是否报错-->alter database mount;-->alter database open,如果其余两个控制文件也不能使用,那么只有无奈执行使用另一种方法了。
3.2重建控制文件
备份控制文件:alter database backup controlfile to 'D:\oracle\product\10.2.0\oradata\orcl\controlfile.bkp'
使用命令生成重建控制文件跟踪文件:alter database backup controlfile to trace;去D:\oracle\product\10.2.0\admin\orcl\udump文件夹下寻找最新修改的文件,将其中创建控制文件的脚本(有时候是从别的机器上copy过来的,需要对实例名,路径做出对应修改)拷出执行-->alter database mount;-->atler database open;数据库就可用了。
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26936900/viewspace-750470/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-05-31

  • 博文量
    19
  • 访问量
    90207