os:windows 2000
元月25日早上数据库数据异常,有23号的冷备份和所有日志备份文件,
一、采用直接把所有备份文件和日志文件copy过去(控制文件没有copy)
SQL*Plus: Release 10.1.0.4.0 - Production on 星期三 1月 25 15:30:44 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
联机至闲置的执行处理.
SQL>startup mount;
SQL> recover database;
ORA-00283: 发生错误, 取消复原阶段作业
ORA-01110: 资料文件 1: 'D:ORACLEORADATAWHORASYSTEM01.DBF'
ORA-01122: 数据库文件 1 未通过验证检查
ORA-01110: 资料文件 1: 'D:ORACLEORADATAWHORASYSTEM01.DBF'
ORA-01206: 档案不属于这个数据库 - 数据库 ID 不对
SQL> recover database until cancel;
ORA-00283: 发生错误, 取消复原阶段作业
ORA-01110: 资料文件 1: 'D:ORACLEORADATAWHORASYSTEM01.DBF'
ORA-01122: 数据库文件 1 未通过验证检查
ORA-01110: 资料文件 1: 'D:ORACLEORADATAWHORASYSTEM01.DBF'
ORA-01206: 档案不属于这个数据库 - 数据库 ID 不对
SQL> alter database recover database using backup controlfile;
alter database recover database using backup controlfile
*
ERROR 在行 1:
ORA-00283: 发生错误, 取消复原阶段作业
ORA-01110: 资料文件 1: 'D:ORACLEORADATAWHORASYSTEM01.DBF'
ORA-01122: 数据库文件 1 未通过验证检查
ORA-01110: 资料文件 1: 'D:ORACLEORADATAWHORASYSTEM01.DBF'
ORA-01206: 档案不属于这个数据库 - 数据库 ID 不对
SQL> alter database end backup;
alter database end backup
*
ERROR 在行 1:
ORA-01142: 无法结束在线备份制作 - 并未替任何档案制作备份
SQL> alter database recover datafile 'D:oracleoradatawhoraSYSTEM01.DBF';
alter database recover datafile 'D:oracleoradatawhoraSYSTEM01.DBF'
*
ERROR 在行 1:
ORA-00283: 发生错误, 取消复原阶段作业
ORA-01610: 必须完成使用 BACKUP CONTROLFILE 选项的复原作业
SQL> alter database recover database using backup controlfile;
alter database recover database using backup controlfile
*
ERROR 在行 1:
ORA-00283: 发生错误, 取消复原阶段作业
ORA-01110: 资料文件 1: 'D:ORACLEORADATAWHORASYSTEM01.DBF'
ORA-01122: 数据库文件 1 未通过验证检查
ORA-01110: 资料文件 1: 'D:ORACLEORADATAWHORASYSTEM01.DBF'
ORA-01206: 档案不属于这个数据库 - 数据库 ID 不对
SQL> alter database recover datafile 'D:oracleoradatawhoraSYSTEM01.DBF';
alter database recover datafile 'D:oracleoradatawhoraSYSTEM01.DBF'
*
ERROR 在行 1:
ORA-00283: 发生错误, 取消复原阶段作业
ORA-01610: 必须完成使用 BACKUP CONTROLFILE 选项的复原作业
SQL> SHUTDOWN IMMEDIATE;
还原未成功。
二、采用直接把所有备份文件和日志文件copy过去(包括控制文件)
SQL> startup mount;
已启动 ORACLE 执行处理.
Total System Global Area 612368384 bytes
Fixed Size 790432 bytes
Variable Size 174846048 bytes
Database Buffers 436207616 bytes
Redo Buffers 524288 bytes
ORA-01991: ??? 'D:oracleora10gDATABASEPWDwhora.ORA' ??
SQL> recover database ;
ORA-00283: ????, ????????
ORA-00264: ????
SQL> recover database until cancel;
媒体恢复执行完成.
SQL> alter open database;
alter open database
*
ERROR 在行 1:
ORA-00940: ALTER ????
SQL> alter database open;
alter database open
*
ERROR 在行 1:
ORA-01589: ???????????? RESETLOGS ? NORESETLOGS ??
SQL> alter database open resetlogs;
已更改数据库.
还原成功,但是23日以后更新的数据没有,所以是没有还原日志文件的备从
三、采用直接把所有备份文件和日志文件copy过去(包括控制文件),但是还要重新创建控制文件
SQL> shutdown immediate;
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SQL> startup nomount;
已启动 ORACLE 执行处理.
Total System Global Area 612368384 bytes
Fixed Size 790432 bytes
Variable Size 174846048 bytes
Database Buffers 436207616 bytes
Redo Buffers 524288 bytes
SQL> @c:create_ta.sql;
已建立控制檔.
SQL> recover database;
ORA-00283: ????, ????????
ORA-00264: ????
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;
ORA-00279: ???? 122215564 ??? 01/23/2006 01:29:17 ? (???? 1 ??)
ORA-00289: ?? : D:ARCHIVEWHORAARCHIVELOG2006_01_25O1_MF_1_2255_%U_.ARC
ORA-00280: ?? 122215564 (???? 1) ???? #2255
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
已套用日志.
媒体恢复执行完成.
SQL> alter database open resetlogs;
已更改数据库.
SQL> select count(*) from pot_bill where to_char(upddate,'yyyy/mm/dd')='2006/01/24';
COUNT(*)
----------
0
还原成功,但是23日以后更新的数据还是没有,所以是没有还原日志文件的备份
四、采用直接把所有备份文件和日志文件copy过去(包括控制文件),但是也不要重新创建控制文件
SQL> shutdown immediate;
数据库关闭.
数据库已卸载.
已关闭 ORACLE 执行处理.
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'
*
ERROR 在行 1:
ORA-01034: ORACLE not available
SQL> startup mount;
已启动 ORACLE 执行处理.
Total System Global Area 612368384 bytes
Fixed Size 790432 bytes
Variable Size 174846048 bytes
Database Buffers 436207616 bytes
Redo Buffers 524288 bytes
ORA-01991: ??? 'D:oracleora10gDATABASEPWDwhora.ORA' ??
在Dos下重新创建密码文件
C:>d:oracleora10gBINorapwd file=D:oracleora10gDATABASEpwdwhora.ora password=abc123 entries=250
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
已更改阶段作业.
SQL> startup mount;
ORA-01081: ?????????? ORACLE ? ??????
SQL> shutdown immediate;
ORA-01109: ?????????
数据库已卸载.
已关闭 ORACLE 执行处理.
SQL> startup mount;
已启动 ORACLE 执行处理.
Total System Global Area 612368384 bytes
Fixed Size 790432 bytes
Variable Size 174846048 bytes
Database Buffers 436207616 bytes
Redo Buffers 524288 bytes
数据库已挂载.
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
已更改阶段作业.
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE until time '2006-01-24 17:00:00';
ORA-00279: 必须变更 122215564 建立于 01/23/2006 01:29:17 上 (对于系线 1 而言)
ORA-00289: 建议 : D:ARCHIVEWHORAARCHIVELOG2006_01_25O1_MF_1_2255_%U_.ARC
ORA-00280: 变更 122215564 (属于系线 1) 是在序号 #2255
.
.
.
.
ORA-00278: 此复原不再需要日志文件
'D:ARCHIVEWHORAARCHIVELOG2006_01_24O1_MF_1_2316_1XCSMO9K_.ARC'
已套用日志.
媒体恢复执行完成.
SQL> alter database open resetlogs;
已更改数据库.
SQL> select count(*) from pot_bill where to_char(upddate,'yyyy/mm/dd')='2006/01/24';
COUNT(*)
----------
24
SQL> spool off;
数据还原成功,23日以后更新的数据也还原了。发现一个问题,单独执行第三或者第四种方法还原的数据都没有23日
以后更新的数据,而且要先做完第三步,然后shutdown,重新把备份文件copy一次,再来执行第四步,才能成功,这
现在还不明白其原因。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/77580/viewspace-212690/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/77580/viewspace-212690/