数据文件需要多次恢复来保证其完整性_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4073 | 回复: 0   主题: 数据文件需要多次恢复来保证其完整性        下一篇 
匿名用户
发表于: IP:您无权察看 2011-11-24 15:02:54 | [全部帖] [楼主帖] 楼主

<P></P><P>Applies to: Oracle Server - Enterprise Edition - Version: 9.2.0.1.0 to 10.2.0.4 This problem can occur on any platform. Symptoms 在进行数据库恢复之后将会遇到下面的错误: ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: 'c:\ORACLE\ORADATA\SYSTEM01.DBF' Cause: 根据文件"results01.txt", V$DATAFILE_HEADER.CHECKPOINT_CHANGE#的值应处于V$LOG视图中的current 重做日志的CHECKPOINT_CHANGE#的范围之内 SQL> select dbid, name, 2 to_char(created, 'DD-MON-YYYY HH24:MI:SS') created, 3 open_mode, log_mode, 4 to_char(checkpoint_change#, '999999999999999') as checkpoint_change#, 5 controlfile_type, 6 to_char(controlfile_change#, '999999999999999') as controlfile_change#, 7 to_char(controlfile_time, 'DD-MON-YYYY HH24:MI:SS') controlfile_time, 8 to_char(resetlogs_change#, '999999999999999') as resetlogs_change#, 9 to_char(resetlogs_time, 'DD-MON-YYYY HH24:MI:SS') resetlogs_time 10 from v$database; DBID NAME CREATED OPEN_MODE LOG_MODE ---------- ---------- -------------------- ---------- ------------ CHECKPOINT_CHANG CONTROL CONTROLFILE_CHAN CONTROLFILE_TIME RESETLOGS_CHANGE ---------------- ------- ---------------- -------------------- ---------------- RESETLOGS_TIME -------------------- 3224494246 MAX5PRD 15-SEP-2006 10:48:21 MOUNTED ARCHIVELOG 3224783100697 BACKUP 3224783102926 03-MAR-2007 08:00:04 3223808462982 15-SEP-2006 10:48:55 1 row selected. SQL> select * from v$log where status='CURRENT'; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS ---------- ---------- ---------- ---------- ---------- --- ---------------- FIRST_CHANGE# FIRST_TIME ------------- -------------------- 4 1 17423 4194304 2 NO CURRENT 3.2248E+12 03-MAR-2007 06:18:13 1 row selected. SQL> select status, checkpoint_change#, 2 to_char(checkpoint_time, 'DD-MON-YYYY HH24:MI:SS') as checkpoint_time, 3 count(*) 4 from v$datafile_header 5 group by status, checkpoint_change#, checkpoint_time 6 order by status, checkpoint_change#, checkpoint_time; STATUS CHECKPOINT_CHANGE# CHECKPOINT_TIME COUNT(*) ------- ------------------ -------------------- ---------- ONLINE 3.2248E+12 03-MAR-2007 06:18:13 21 1 row selected. 此外,数据文件在将表空间至于备份状态之后会变为fuzzy并且在后来会忘了"alter tablespace end backup"的问题。 SQL> select * from v$backup where status = 'ACTIVE'; FILE# STATUS CHANGE# TIME ---------- ------------------ ---------- -------------------- 21 ACTIVE 3.2248E+12 27-FEB-2007 04:11:02 Solution 1、 如果V$DATABASE.CONTROLFILE_TYPE 是CURRENT,那么执行: SQL> recover database until cancel; 否则,当V$DATABASE.CONTROLFILE_TYPE is BACKUP,就执行; SQL> recover database using backup controlfile until cancel; 2、如果被提示log sequence# 17423在current重做日志中存在,此时下面的任意一个联机重做日志成员: D:\ORACLE\ORADATA\MAX5PRD\REDO04_A.LOG C:\ORACLE\ORADATA\MAX5PRD\REDO04_B.LOG 3、 然后,键入CANCEL取消数据库的恢复 4、 最后,可以打开数据库,如果V$DATABASE.CONTROLFILE_TYPE is CURRENT,那么就要执行下面的语句: SQL> alter database open; 如果V$DATABASE.CONTROLFILE_TYPE is BACKUP,那么就要执行: SQL> alter database open resetlogs; Errors ORA-1110; ORA-1113; ORA-1194</P><P></P>


赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论