演示几种情况,不做过多说明.
归档模式
拥有所有归档文件,后增加文件无备份,丢失这个文件,拥有控制文件及所有其他文件,以下是一种恢复情况.
1.启用归档模式,备份
E:\\sqlplus "sys/oracle as sysdba" SQL> startup mount; ORACLE 例程已经启动。 Total System Global Area 47259136 bytes Fixed Size 454144 bytes Variable Size 29360128 bytes Database Buffers 16777216 bytes Redo Buffers 667648 bytes 数据库装载完毕。 SQL> alter database archivelog; 数据库已更改。 SQL> shutdown immediate; ORA-01109: 数据库未打开 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> host Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. E:\\Oracle\\oradata\\eygle>dir 驱动器 E 中的卷是 PRIVATE 卷的序列号是 ACC3-4340 E:\\Oracle\\oradata\\eygle 的目录 ... 2004-10-13 22:15 1,613,824 CONTROL01.CTL 2004-10-13 22:15 1,613,824 CONTROL02.CTL 2004-10-13 22:15 1,613,824 CONTROL03.CTL 2004-10-13 22:14 10,493,952 EYGLE01.DBF 2004-10-13 22:14 10,486,272 REDO01.LOG 2004-10-13 22:14 10,486,272 REDO02.LOG 2004-10-13 22:14 10,486,272 REDO03.LOG 2004-10-13 22:10 811 sqlnet.log 2004-10-13 22:14 262,152,192 SYSTEM01.DBF 2004-07-03 16:50 41,951,232 TEMP01.DBF 2004-10-13 22:14 209,723,392 UNDOTBS01.DBF 11 个文件 560,621,867 字节 2 个目录 1,286,344,704 可用字节 E:\\Oracle\\oradata\\eygle>mkdir bak E:\\Oracle\\oradata\\eygle>cp *.* bak E:\\Oracle\\oradata\\eygle>exit |
2.创建文件、建表
SQL> startup; ORACLE 例程已经启动。 Total System Global Area 47259136 bytes Fixed Size 454144 bytes Variable Size 29360128 bytes Database Buffers 16777216 bytes Redo Buffers 667648 bytes 数据库装载完毕。 数据库已经打开。 SQL> archive log start; 已处理的语句 SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 e:\\oracle\\ora92\\RDBMS 最早的概要日志序列 30 下一个存档日志序列 32 当前日志序列 32 SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- E:\\ORACLE\\ORADATA\\EYGLE\\SYSTEM01.DBF E:\\ORACLE\\ORADATA\\EYGLE\\UNDOTBS01.DBF E:\\ORACLE\\ORADATA\\EYGLE\\EYGLE01.DBF SQL> create tablespace test datafile 'e:\\oracle\\oradata\\eygle\\test01.dbf' 2 size 5m; 表空间已创建。 SQL> alter system switch logfile; 系统已更改。 SQL> create table t tablespace test as select * from dba_users; 表已创建。 SQL> alter system switch logfile; 系统已更改。 SQL> shutdown abort; ORACLE 例程已经关闭。 SQL> exit 从Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.5.0 - Production中断开 E:\\Oracle\\oradata\\eygle>mv TEST01.DBF bak |
3.恢复
E:\\Oracle\\oradata\\eygle>sqlplus "sys/oracle as sysdba" SQL*Plus: Release 9.2.0.5.0 - Production on 星期三 10月 13 22:41:48 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 已连接到空闲例程。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 47259136 bytes Fixed Size 454144 bytes Variable Size 29360128 bytes Database Buffers 16777216 bytes Redo Buffers 667648 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 4: 'E:\\ORACLE\\ORADATA\\EYGLE\\TEST01.DBF' SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- E:\\ORACLE\\ORADATA\\EYGLE\\SYSTEM01.DBF E:\\ORACLE\\ORADATA\\EYGLE\\UNDOTBS01.DBF E:\\ORACLE\\ORADATA\\EYGLE\\EYGLE01.DBF E:\\ORACLE\\ORADATA\\EYGLE\\TEST01.DBF SQL> alter database create datafile 'E:\\ORACLE\\ORADATA\\EYGLE\\TEST01.DBF'; 数据库已更改。 SQL> recover datafile 'E:\\ORACLE\\ORADATA\\EYGLE\\TEST01.DBF'; 完成介质恢复。 SQL> alter database open; 数据库已更改。 SQL> host Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. E:\\Oracle\\oradata\\eygle>ls -l total 1105221 -rwxrwxrwa 1 Administrators SYSTEM 1613824 Oct 13 23:42 CONTROL01.CTL -rwxrwxrwa 1 Administrators SYSTEM 1613824 Oct 13 23:42 CONTROL02.CTL -rwxrwxrwa 1 Administrators SYSTEM 1613824 Oct 13 23:42 CONTROL03.CTL -rwxrwxrwa 1 Administrators SYSTEM 10493952 Oct 13 23:44 EYGLE01.DBF -rwxrwxrwa 1 Administrators SYSTEM 10486272 Oct 13 23:44 REDO01.LOG -rwxrwxrwa 1 Administrators SYSTEM 10486272 Oct 13 23:44 REDO02.LOG -rwxrwxrwa 1 Administrators SYSTEM 10486272 Oct 13 23:44 REDO03.LOG -rwxrwxrwa 1 Administrators SYSTEM 262152192 Oct 13 23:44 SYSTEM01.DBF -rwxrwxrwa 1 Administrators SYSTEM 41951232 Jul 3 17:50 TEMP01.DBF -rwxrwxrwa 1 Administrators SYSTEM 5251072 Oct 13 23:44 TEST01.DBF -rwxrwxrwa 1 Administrators SYSTEM 209723392 Oct 13 23:44 UNDOTBS01.DBF drwxrwxrwx 1 gqgai None 0 Oct 13 23:41 bak -rwxrwxrwa 1 gqgai None 811 Oct 13 23:10 sqlnet.log E:\\Oracle\\oradata\\eygle>ls -l TEST01.DBF -rwxrwxrwa 1 Administrators SYSTEM 5251072 Oct 13 23:44 TEST01.DBF E:\\Oracle\\oradata\\eygle> |
总结:
此案例拥有当前控制文件,控制文件中包含了丢失文件信息,所以可以通过create datafile方式重新创建文件,通过控制文件中记录的文件
信息、SCN、检查点等信息,应用归档日志进行恢复,可以完成完全恢复.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。