分类: Oracle
2011-08-17 15:14:12
检查数据库归档状态
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 启用
存档终点 d:\oracle\arch
最早的概要日志序列 39
当前日志序列 41
SQL>
1,有一个以前的冷备份(包括数据文件、控制文件、密码文件等,不包括在线重做日志)
切换重做日志,模拟数据操作
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
改文件名,模拟数据文件损坏
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host ren d:\oracle\oradata\winy\system01.dbf system01.bak
SQL>
尝试启动数据库
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 101784276 bytes
Fixed Size 453332 bytes
Variable Size 75497472 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\WINY\SYSTEM01.DBF'
恢复步骤:
(1)关闭数据库
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
(2)把备份的文件拷贝到原数据文件的位置。
(3)启动数据库
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 101784276 bytes
Fixed Size 453332 bytes
Variable Size 75497472 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-00314: 日志 1 (线程 1),预计序号 41 与 44 不匹配
ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\ORADATA\WINY\REDO01.LOG'
(4)做不完全恢复
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 465807 (在 01/27/2005 14:59:05 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ARCH\ARC00042.001
ORA-00280: 更改 465807 对于线程 1 是按序列 # 42 进行的
指定日志: {
cancel
介质恢复已取消。
(5)重设日志
SQL> alter database open resetlogs;
数据库已更改。
SQL>
2,有一个以前的冷备份(包括数据文件、控制文件、密码文件、在线重做日志)
方法和上面相类似,不同之处在于执行完步骤(3)后,数据库可以正常启动,不用再做recover。