热备份过程中,突然断电,数据库崩溃了怎么办嘛。以热备TEST表空间为例,此时数据文件头部锁定,备份正在复制文件而系统
崩溃,显然表空间的数据文件头的SCN与控制文件中的不一致,此时数据库无法打开,会要求介质恢复。
下面我们来模拟这个过程嘛
select file_id,file_name,tablespace_name from dba_data_files;--首先查看要备份的表空间
D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST.DBF
select checkpoint_change#,file# from v$datafile;
alter tablespace test begin backup;--开始设置备份模式状态
SQL> host copy D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST.DBF e:\test.bak;--表空间以备份集的形式备份到e盘撒
已复制 1 个文件。
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- --------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
5 NOT ACTIVE 0
6 NOT ACTIVE 0
7 ACTIVE 1720516 03-10月-13
--查看备份模式的状态
特别注意:为什么设置为备份模式表空间对应的数据文件的检查点SCN比其他几个文件的检查点要大,原因是一旦使用开始备份
模式状态就会触发检查点事件,刷新数据文件的文件头SCN,并冻结该SCN ,如果结束备份模式的话都一样了。
SQL> shutdown abort;
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1292036 bytes
Variable Size 327158012 bytes
Database Buffers 276824064 bytes
Redo Buffers 7094272 bytes
数据库装载完毕。
ORA-01113: 文件 7 需要介质恢复
ORA-01110: 数据文件 7: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST.DBF'
SQL> recover datafile 7;
完成介质恢复。
SQL> alter database open;
数据库已更改。
现在在重新备份。。。。。