加了一天班,现在在等着hp的工程师完工,心血来潮做了两个实验。
1.非归档模式下丢失所有的联机日志、有控制文件和数据文件备份的情况下恢复数据库
2.非归档模式使用数据文件冷备份执行不完全恢复
1. 非归档模式下丢失所有的联机日志、有控制文件和数据文件备份的情况下恢复数据库
这几天看了个帖子,内容是在存储除重做日志外的其他文件的冷备份的情况下如何恢复数据库,今天做了一个实验,在把控制文件、数据文件还原后直接openresetlogs即可;
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
SQL> alter database noarchivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL>
n 做冷备份
n 删除所有的控制文件/数据文件/联机重做日志
SQL> startup
ORACLE instance started.
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
ORA-00205: error in identifying controlfile, check alert log for more info
SQL>
-- alert.log中的错误:
ALTER DATABASE MOUNT
Sat Oct 23 16:14:10 2004
ORA-00202: ????: 'F:ORACLEPRODUCT10.1.0ORADATATESTCONTROL01.CTL'
ORA-27041: ??????
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
Sat Oct 23 16:14:10 2004
Controlfile identified with block size 0
Sat Oct 23 16:14:13 2004
ORA-205 signalled during: ALTER DATABASE MOUNT...
n 把数据文件、控制文件还原
n 重启数据库
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1:
'F:ORACLEPRODUCT10.1.0ORADATATESTREDO01.LOG'
SQL>
SQL>
SQL>
SQL> recover database until cancel;
Media recovery complete.
SQL> alter database open resetlogs;
Database altered.
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination e:archivetest
Oldest online log sequence 1
Current log sequence 1
SQL>
2.非归档模式使用数据文件冷备份执行不完全恢复
SQL> set time on
18:08:15 SQL> set timing on
18:08:17 SQL> startup
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
数据库已经打开。
18:08:39 SQL> archive log list
数据库日志模式 非存档模式
自动存档 禁用
存档终点 e:archivetest
最早的联机日志序列 1
当前日志序列 2
18:08:43 SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
18:09:21 SQL>
n 这里执行冷备份
n 输入测试数据
18:09:21 SQL> startup
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
数据库已经打开。
18:14:46 SQL>
18:14:54 SQL>
18:14:55 SQL> conn test/test
已连接。
18:15:00 SQL> create table t1 (c1 number);
表已创建。
已用时间: 00: 00: 00.23
18:15:58 SQL> insert into t1 values(1);
已创建 1 行。
已用时间: 00: 00: 00.03
18:16:03 SQL> commit;
提交完成。
已用时间: 00: 00: 00.01
18:16:08 SQL>
18:16:43 SQL>
18:17:11 SQL> drop table t1;
表已删除。
已用时间: 00: 00: 00.15
18:17:17 SQL> conn / as sysdba
已连接。
18:17:24 SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
18:17:52 SQL>
n 还原数据文件冷备份(不还原控制文件和联机重做日志)
n 进行不完全恢复
18:17:52 SQL>
18:23:39 SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
18:23:52 SQL> recover database until time '2004-10-23 18:17:00';
完成介质恢复。
18:24:27 SQL> alter database open resetlogs;
数据库已更改。
已用时间: 00: 00: 21.57
18:24:55 SQL> conn test/test
已连接。
18:25:01 SQL> select *From t1;
C1
----------
1
已用时间: 00: 00: 00.07
18:25:06 SQL>
恢复成功。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-21602/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/6906/viewspace-21602/