您的位置:首页 > 其它

丢失全部数据文件,控制文件,redo log file(9201)——处理方法一

2004-08-01 08:31 781 查看
丢失全部数据文件,控制文件,redo log file(9201) 作者:张大鹏([/b]Lunar[/b])[/b][/b] [/b] Email: moonlunar@163.com MSN: lunar52@hotmail.com

一 使用备份的控制文件(热备)恢复

做热备份前的测试数据

SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination e:/oracle/oradata/test/archive Oldest online log sequence 0 Next log sequence to archive 1 Current log sequence 1 SQL> conn lunar/lunar Connected. SQL> select * from test; 15 16 25 26 4 rows selected. SQL> truncate table test; Table truncated. SQL> conn / as sysdba Connected. SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination e:/oracle/oradata/test/archive Oldest online log sequence 0 Next log sequence to archive 1 Current log sequence 1 SQL>

热备数据库

SQL> conn / as sysdba Connected. SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination e:/oracle/oradata/test/archive Oldest online log sequence 0 Next log sequence to archive 1 Current log sequence 1 SQL> @D:/hot_backup/hotbackup_for_win SQL> set termout off 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 SQL> SQL> host copy E:/oracle/oradata/test/archive/*.* D:/hot_backup/archive E:/oracle/oradata/test/archive/1_1.ARC 已复制 1 个文件。 SQL> host dir D:/hot_backup/archive 驱动器 D 中的卷是 PROGRAMS 卷的序列号是 A06D-D424 D:/hot_backup/archive 的目录 2002-02-04 13:59 <DIR> . 2002-02-04 13:59 <DIR> .. 2002-02-05 22:07 180,224 1_1.ARC 1 个文件 180,224 字节 2 个目录 1,623,019,520 可用字节 SQL>

制作热备份后的测试数据

提交部分测试数据(备份后增加的)

SQL> conn lunar/lunar Connected. SQL> select * from test; no rows selected SQL> insert into test values(25); 1 row created. SQL> insert into test values(26); 1 row created. SQL> commit; Commit complete. SQL> insert into test values(27); 1 row created. SQL> select * from test; 25 26 27 3 rows selected. SQL>

再开一个窗口,产生检查点

Microsoft Windows 2000 [Version 5.00.2195] (C) 版权所有 1985-2000 Microsoft Corp. C:/>set nls_lang=AMERICAN_AMERICA.US7ASCII C:/>sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.1.0 - Production on Tue Feb 5 21:28:47 2002 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production SQL> alter system checkpoint; System altered. SQL>

回到原来的窗口,继续添加数据

SQL> insert into test values(28); 1 row created. SQL>

回到as sysdba的窗口,switch logfile

SQL> alter system switch logfile; System altered. SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination e:/oracle/oradata/test/archive Oldest online log sequence 1 Next log sequence to archive 3 Current log sequence 3 SQL>

回到原来的窗口,commit后,继续添加数据

SQL> commit; Commit complete. SQL> insert into test values(29); 1 row created. SQL>

回到as sysdba的窗口,产生检查点

SQL> alter system checkpoint; System altered. SQL>

回到原来的窗口,不commit继续添加数据

SQL> insert into test values(30); 1 row created. SQL> select * from test; 25 (new datas after hot backup) 26 ( commit ) 27 (checkpoint ) 28 ( switch logfile ) (commit ) 29 (checkpoint ) 30 ( shutdown abort) 8 rows selected. SQL> 只能恢复到switch logfile前全部commit的数据,即:26

回到as sysdba的窗口,模拟数据库crash

SQL> shutdown abort ORACLE instance shut down. SQL>

删除所有数据库文件(数据文件,控制文件,redo log file)

SQL> host Microsoft Windows 2000 [Version 5.00.2195] (C) 版权所有 1985-2000 Microsoft Corp. C:/>del E:/oracle/ora92/test/*.* E:/oracle/ora92/test/*.*, 是否确认 (Y/N) ? y C:/>dir E:/oracle/ora92/test 驱动器 E 中的卷是 ORACLE 卷的序列号是 707A-C50C E:/oracle/ora92/test 的目录 2002-01-13 21:59 <DIR> . 2002-01-13 21:59 <DIR> .. 0 个文件 0 字节 2 个目录 2,803,036,160 可用字节 C:/>exit SQL> startup ORA-12571: TNS:packet writer failure SQL> conn / as sysdba Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 135338868 bytes Fixed Size 453492 bytes Variable Size 109051904 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes ORA-00205: error in identifying controlfile, check alert log for more info SQL> shutdown abort ORACLE instance shut down. SQL>

恢复数据库

将最近的热备拷贝过来

SQL> host Microsoft Windows 2000 [Version 5.00.2195] (C) 版权所有 1985-2000 Microsoft Corp. C:/>copy D:/hot_backup/*.* E:/oracle/ora92/test D:/hot_backup/hotbackup_for_win.sql D:/hot_backup/hotbackup.sql D:/hot_backup/hotbackup.log D:/hot_backup/SYSTEM01.DBF D:/hot_backup/UNDOTBS01.DBF D:/hot_backup/DRSYS01.DBF D:/hot_backup/INDX01.DBF D:/hot_backup/TOOLS01.DBF D:/hot_backup/USERS01.DBF D:/hot_backup/XDB01.DBF D:/hot_backup/RMAN01.DBF D:/hot_backup/CONTROL02.CTL D:/hot_backup/test_ora_1024.trc 已复制 13 个文件。 C:/>dir E:/oracle/ora92/test 驱动器 E 中的卷是 ORACLE 卷的序列号是 707A-C50C E:/oracle/ora92/test 的目录 2002-01-13 21:59 <DIR> . 2002-01-13 21:59 <DIR> .. 2002-02-05 21:52 367,009,792 SYSTEM01.DBF 2002-02-05 21:52 52,436,992 UNDOTBS01.DBF 2002-02-05 21:52 104,865,792 DRSYS01.DBF 2002-02-05 21:52 31,465,472 INDX01.DBF 2002-02-05 21:52 31,465,472 TOOLS01.DBF 2002-02-05 21:52 31,465,472 USERS01.DBF 2002-02-05 21:52 52,436,992 XDB01.DBF 2002-02-05 21:52 52,436,992 RMAN01.DBF 2002-02-05 22:07 1,875,968 CONTROL02.CTL 2002-02-05 22:07 4,905 test_ora_1024.trc 10 个文件 725,463,849 字节 2 个目录 2,077,544,448 可用字节 C:/>copy E:/oracle/ora92/test/CONTROL02.CTL E:/oracle/ora92/test/CONTROL03.CTL 已复制 1 个文件。 C:/>dir E:/oracle/ora92/test 驱动器 E 中的卷是 ORACLE 卷的序列号是 707A-C50C E:/oracle/ora92/test 的目录 2002-01-13 21:59 <DIR> . 2002-01-13 21:59 <DIR> .. 2002-02-05 22:07 1,875,968 CONTROL03.CTL 2002-02-05 21:52 367,009,792 SYSTEM01.DBF 2002-02-05 21:52 52,436,992 UNDOTBS01.DBF 2002-02-05 21:52 104,865,792 DRSYS01.DBF 2002-02-05 21:52 31,465,472 INDX01.DBF 2002-02-05 21:52 31,465,472 TOOLS01.DBF 2002-02-05 21:52 31,465,472 USERS01.DBF 2002-02-05 21:52 52,436,992 XDB01.DBF 2002-02-05 21:52 52,436,992 RMAN01.DBF 2002-02-05 22:07 1,875,968 CONTROL02.CTL 2002-02-05 22:07 4,905 test_ora_1024.trc 11 个文件 727,339,817 字节 2 个目录 2,075,668,480 可用字节 C:/>

装载但不打开数据库

Microsoft Windows 2000 [Version 5.00.2195] (C) 版权所有 1985-2000 Microsoft Corp. C:/>set nls_lang=AMERICAN_AMERICA.US7ASCII C:/>sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.1.0 - Production on Tue Feb 5 20:58:25 2002 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to an idle instance. SQL> startup nomount ORACLE instance started. Total System Global Area 135338868 bytes Fixed Size 453492 bytes Variable Size 109051904 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes SQL> alter database mount; Database altered. SQL>

使用using backup controlfile恢复数据库

SQL> recover database; ORA-00283: recovery session canceled due to errors ORA-01610: recovery using the BACKUP CONTROLFILE option must be done SQL> recover database using backup controlfile; ORA-00279: change 1088428 generated at 02/05/2002 22:03:48 needed for thread 1 ORA-00289: suggestion : E:/ORACLE/ORADATA/TEST/ARCHIVE/1_1.ARC ORA-00280: change 1088428 for thread 1 is in sequence #1 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} auto ORA-00279: change 1088540 generated at 02/05/2002 22:07:14 needed for thread 1 ORA-00289: suggestion : E:/ORACLE/ORADATA/TEST/ARCHIVE/1_2.ARC ORA-00280: change 1088540 for thread 1 is in sequence #2 ORA-00278: log file 'E:/ORACLE/ORADATA/TEST/ARCHIVE/1_1.ARC' no longer needed for this recovery ORA-00279: change 1088612 generated at 02/05/2002 22:10:14 needed for thread 1 ORA-00289: suggestion : E:/ORACLE/ORADATA/TEST/ARCHIVE/1_3.ARC ORA-00280: change 1088612 for thread 1 is in sequence #3 ORA-00278: log file 'E:/ORACLE/ORADATA/TEST/ARCHIVE/1_2.ARC' no longer needed for this recovery ORA-00308: cannot open archived log 'E:/ORACLE/ORADATA/TEST/ARCHIVE/1_3.ARC' ORA-27041: unable to open file OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 SQL>

使用until cancel using backup controlfile再次恢复

SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01113: file 1 needs media recovery ORA-01110: data file 1: 'E:/ORACLE/ORA92/TEST/SYSTEM01.DBF' SQL> recover database until cancel using backup controlfile; ORA-00279: change 1088612 generated at 02/05/2002 22:10:14 needed for thread 1 ORA-00289: suggestion : E:/ORACLE/ORADATA/TEST/ARCHIVE/1_3.ARC ORA-00280: change 1088612 for thread 1 is in sequence #3 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled. SQL>

使用resetlogs打开数据库

SQL> alter database open resetlogs; Database altered. SQL> 请注意此时的数据库文件的更新时间等状态: SQL> host dir E:/oracle/ora92/test 驱动器 E 中的卷是 ORACLE 卷的序列号是 707A-C50C E:/oracle/ora92/test 的目录 2002-01-13 21:59 <DIR> . 2002-01-13 21:59 <DIR> .. 2002-02-05 22:07 1,875,968 CONTROL03.CTL 2002-02-05 22:25 31,457,792 REDO01.LOG 2002-02-05 22:25 31,457,792 REDO02.LOG 2002-02-05 22:25 31,457,792 REDO03.LOG 2002-02-05 22:25 1,049,088 REDO04A.LOG 2002-02-05 22:25 1,049,088 REDO04B.LOG 2002-02-05 22:25 367,009,792 SYSTEM01.DBF 2002-02-05 22:25 52,436,992 UNDOTBS01.DBF 2002-02-05 22:25 104,865,792 DRSYS01.DBF 2002-02-05 22:25 31,465,472 INDX01.DBF 2002-02-05 22:25 31,465,472 TOOLS01.DBF 2002-02-05 22:25 31,465,472 USERS01.DBF 2002-02-05 22:25 52,436,992 XDB01.DBF 2002-02-05 22:25 52,436,992 RMAN01.DBF 2002-02-05 22:07 1,875,968 CONTROL02.CTL 2002-02-05 22:07 4,905 test_ora_1024.trc 16 个文件 823,811,369 字节 2 个目录 1,979,166,720 可用字节 SQL>

为临时表空间创建临时文件

SQL> alter tablespace temp 2 add tempfile 'E:/ORACLE/ORA92/TEST/temp01.DBF' SIZE 20M ; Tablespace altered. SQL> host dir E:/oracle/ora92/test 驱动器 E 中的卷是 ORACLE 卷的序列号是 707A-C50C E:/oracle/ora92/test 的目录 2002-01-13 21:59 <DIR> . 2002-01-13 21:59 <DIR> .. 2002-02-05 22:07 1,875,968 CONTROL03.CTL 2002-02-05 22:25 31,457,792 REDO01.LOG 2002-02-05 22:25 31,457,792 REDO02.LOG 2002-02-05 22:25 31,457,792 REDO03.LOG 2002-02-05 22:25 1,049,088 REDO04A.LOG 2002-02-05 22:25 1,049,088 REDO04B.LOG 2002-02-05 22:25 367,009,792 SYSTEM01.DBF 2002-02-05 22:25 52,436,992 UNDOTBS01.DBF 2002-02-05 22:25 104,865,792 DRSYS01.DBF 2002-02-05 22:25 31,465,472 INDX01.DBF 2002-02-05 22:25 31,465,472 TOOLS01.DBF 2002-02-05 22:25 31,465,472 USERS01.DBF 2002-02-05 22:25 52,436,992 XDB01.DBF 2002-02-05 22:25 52,436,992 RMAN01.DBF 2002-02-05 22:07 1,875,968 CONTROL02.CTL 2002-02-05 22:07 4,905 test_ora_1024.trc 2002-02-05 22:27 20,979,712 TEMP01.DBF 17 个文件 844,791,081 字节 2 个目录 1,958,187,008 可用字节 SQL>

验证恢复

SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination e:/oracle/oradata/test/archive Oldest online log sequence 0 Next log sequence to archive 1 Current log sequence 1 SQL> conn lunar/lunar Connected. SQL> select * from test; F ---------- 25 26 SQL> 丢失了部分数据commit的数据,因为那些数据是在redo中的,还没有被归档
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐