免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 902 | 回复: 0
打印 上一主题 下一主题

重建控制文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-21 08:43 |只看该作者 |倒序浏览
1. 备份控制文件到trace文件中
  1. SQL> alter database backup controlfile to trace;

  2. Database altered.
2.查看生成的trace 文件
  1. SELECT d.VALUE
  2. || '/'
  3. || LOWER (RTRIM (i.INSTANCE, CHR (0)))
  4. || '_ora_'
  5. || p.spid
  6. || '.trc' trace_file_name
  7. FROM (SELECT p.spid
  8. FROM v$mystat m, v$session s, v$process p
  9. WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,
  10. (SELECT t.INSTANCE
  11. FROM v$thread t, v$parameter v
  12. WHERE v.NAME = 'thread'
  13. AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
  14. (SELECT VALUE
  15. FROM v$parameter
  16. WHERE NAME = 'user_dump_dest') d
  17. /
/u01/app/admin/orcl/udump/oracl_ora_8997.trc

3.根据trace文件,创建生成控制文件的sql
cat  /u01/app/admin/orcl/udump/orcl_ora_8997.trc
    1. CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG
    2. MAXLOGFILES 16
    3. MAXLOGMEMBERS 3
    4. MAXDATAFILES 100
    5. MAXINSTANCES 8
    6. MAXLOGHISTORY 292
    7. LOGFILE
    8. GROUP 1 '/u01/app/oradata/orcl/redo01.log' SIZE 50M,
    9. GROUP 2 '/u01/app/oradata/orcl/redo02.log' SIZE 50M,
    10. GROUP 3 '/u01/app/oradata/orcl/redo03.log' SIZE 50M
    11. -- STANDBY LOGFILE
    12. DATAFILE
    13. '/u01/app/oradata/orcl/system01.dbf',
    14. '/u01/app/oradata/orcl/undotbs01.dbf',
    15. '/u01/app/oradata/orcl/sysaux01.dbf',
    16. '/u01/app/oradata/orcl/users01.dbf',
    17. '/u01/app/oradata/orcl/example01.dbf',
    18. '/u01/app/prodct/dbs/tab20110523.dbf'
    19. CHARACTER SET WE8ISO8859P1

  Control file created.
  1. ALTER DATABASE OPEN
  2. 出现错误了
  3. ORA-01113: file 1 needs media recovery
  4. ORA-01110: data file 1: '/u01/app/oradata/hubeidb1/system01.dbf'
  5. SQL> recover database; Media recovery complete. SQL> alter database open; Database altered.

至此数据库打开
被删除的文件,被ORACLE 明名为MISSING000xxxx
  1. SQL> select name from V$datafile;
  2. NAME
  3. --------------------------------------------------------------------------------
  4. /u01/app/oradata/hubeidb1/system01.dbf
  5. /u01/app/oradata/hubeidb1/undotbs01.dbf
  6. /u01/app/oradata/hubeidb1/sysaux01.dbf
  7. /u01/app/oradata/hubeidb1/users01.dbf
  8. /u01/app/oradata/hubeidb1/example01.dbf
  9. /u01/app/prodct/dbs/MISSING00006

如果能找回被删的数据文件
可以通过ALTER DATABASE RENAME ’xxx' to 'xxxx' 语句将丢失的数据文件指定到正确的文件中去

3.误删数据文件
  正常关闭数据是会报错,因为oracle 会在正常关闭时会检查数据文件一致
  1. SQL>SHUTDOWN ABORT
  2. SQL> startup
  3. ORACLE instance started.
  4. Total System Global Area 1241513984 bytes
  5. Fixed Size 1219136 bytes
  6. Variable Size 318768576 bytes
  7. Database Buffers 905969664 bytes
  8. Redo Buffers 15556608 bytes
  9. Database mounted.
  10. ORA-01157: cannot identify/lock data file 8 - see DBWR trace file
  11. ORA-01110: data file 8: '/u01/app/oradata/test/test.dbf'
  12. SQL> alter database datafile 8 offline drop;
  13. Database altered.
  14. SQL> alter database open;
  15. Database altered.
 


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP