第5章:从打开的数据库备份与恢复之从打开的数据库备份中完全恢复

/* 2008/05/28
*环境:Windows XP +Oracle10.2.0.1
*Oracle 备份与恢复培训教程 Kenny Smith,Stephan Haisley著 周琪、韩岷、李渝琳等译
*第二部分:用户管理的备份与恢复
*第5章:从打开的数据库备份与恢复
*/


练习5.3:从打开的数据库备份中完全恢复
1、 破坏数据库
SQL> select max(create_date) from tina.date_log;

MAX(CREATE_DAT
--------------
27-5月 -08

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------

G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF

SQL> alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.D
BF' offline;

数据库已更改。

SQL> alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF'
 offline;

数据库已更改。


用操作系统命令删除G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\的USER01.DBF和RISE.DBF文件。


SQL> alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\user01.db
f' online;
alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\user01.dbf' on
line
*
第 1 行出现错误:
ORA-01516: 不存在的日志文件, 数据文件或临时文件
"G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\user01.dbf"


SQL> alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\rise.dbf'
 online;
alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\rise.dbf' onli
ne
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 5: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF'

2、还原丢失的数据文件
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  272629760 bytes
Fixed Size                  1248476 bytes
Variable Size             100664100 bytes
Database Buffers          163577856 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。


检查哪个文件需要恢复
SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR                   CHANGE# TIME
---------- ------- ------- -------------------- ---------- --------------
         4 OFFLINE OFFLINE FILE NOT FOUND                0
         5 OFFLINE OFFLINE FILE NOT FOUND                0


SQL> l
  1* select name,status from v$datafile
SQL> /

NAME                                               STATUS
-------------------------------------------------- -------
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01. SYSTEM
DBF

G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01 ONLINE
.DBF

G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01. ONLINE
DBF

G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.D RECOVER
BF

NAME                                               STATUS
-------------------------------------------------- -------

G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF  RECOVER

 

 

SQL> host copy E:\backup\users01.dbf  G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET
已复制         1 个文件。

SQL> host copy E:\backup\rise.dbf  G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET
已复制         1 个文件。

SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR                   CHANGE# TIME
---------- ------- ------- -------------------- ---------- --------------
         4 OFFLINE OFFLINE                          572686 27-5月 -08
         5 OFFLINE OFFLINE                          572699 27-5月 -08


3、恢复还原的数据文件

把备份归档日志拷贝到数据库的日志路径中,恢复时需要用到。
SQL> host copy E:\backup\ch5\*  G:\oracle\product\10.2.0\flash_recovery_area\RIS
ENET\ARCHIVELOG\2008_05_27


SQL> recover datafile 4;
ORA-00279: 更改 572686 (在 05/27/2008 18:53:23 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_26_%U_.ARC
ORA-00280: 更改 572686 (用于线程 1) 在序列 #26 中


指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 572713 (在 05/27/2008 18:53:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_27_%U_.ARC
ORA-00280: 更改 572713 (用于线程 1) 在序列 #27 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_27\O1_M

F_1_26_43QT1598_.ARC'


ORA-00279: 更改 598586 (在 05/28/2008 09:04:18 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_28_%U_.ARC
ORA-00280: 更改 598586 (用于线程 1) 在序列 #28 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_27_43SCWOKK_.ARC'


ORA-00279: 更改 605851 (在 05/28/2008 10:14:12 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_29_%U_.ARC
ORA-00280: 更改 605851 (用于线程 1) 在序列 #29 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_28_43SHZNXR_.ARC'


ORA-00279: 更改 605859 (在 05/28/2008 10:14:33 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_30_%U_.ARC
ORA-00280: 更改 605859 (用于线程 1) 在序列 #30 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_29_43SJ099Q_.ARC'


ORA-00279: 更改 606240 (在 05/28/2008 10:20:35 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_31_%U_.ARC
ORA-00280: 更改 606240 (用于线程 1) 在序列 #31 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_30_43SJCMNY_.ARC'


ORA-00279: 更改 606482 (在 05/28/2008 10:26:14 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_32_%U_.ARC
ORA-00280: 更改 606482 (用于线程 1) 在序列 #32 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_31_43SJP6Z7_.ARC'


ORA-00279: 更改 606547 (在 05/28/2008 10:27:51 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_33_%U_.ARC
ORA-00280: 更改 606547 (用于线程 1) 在序列 #33 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_32_43SJS797_.ARC'


ORA-00279: 更改 606593 (在 05/28/2008 10:29:05 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_34_%U_.ARC
ORA-00280: 更改 606593 (用于线程 1) 在序列 #34 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_33_43SJVK97_.ARC'


ORA-00279: 更改 607210 (在 05/28/2008 10:43:12 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_35_%U_.ARC
ORA-00280: 更改 607210 (用于线程 1) 在序列 #35 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_34_43SKP10G_.ARC'


ORA-00279: 更改 607326 (在 05/28/2008 10:45:57 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_36_%U_.ARC
ORA-00280: 更改 607326 (用于线程 1) 在序列 #36 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_35_43SKV60Y_.ARC'


已应用的日志。
完成介质恢复。
SQL> recover datafile 5;
ORA-00279: 更改 572699 (在 05/27/2008 18:53:24 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_26_%U_.ARC
ORA-00280: 更改 572699 (用于线程 1) 在序列 #26 中


指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 572713 (在 05/27/2008 18:53:25 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_27_%U_.ARC
ORA-00280: 更改 572713 (用于线程 1) 在序列 #27 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_27\O1_M

F_1_26_43QT1598_.ARC'


ORA-00279: 更改 598586 (在 05/28/2008 09:04:18 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_28_%U_.ARC
ORA-00280: 更改 598586 (用于线程 1) 在序列 #28 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_27_43SCWOKK_.ARC'


ORA-00279: 更改 605851 (在 05/28/2008 10:14:12 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_29_%U_.ARC
ORA-00280: 更改 605851 (用于线程 1) 在序列 #29 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_28_43SHZNXR_.ARC'


ORA-00279: 更改 605859 (在 05/28/2008 10:14:33 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_30_%U_.ARC
ORA-00280: 更改 605859 (用于线程 1) 在序列 #30 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_29_43SJ099Q_.ARC'


ORA-00279: 更改 606240 (在 05/28/2008 10:20:35 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_31_%U_.ARC
ORA-00280: 更改 606240 (用于线程 1) 在序列 #31 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_30_43SJCMNY_.ARC'


ORA-00279: 更改 606482 (在 05/28/2008 10:26:14 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_32_%U_.ARC
ORA-00280: 更改 606482 (用于线程 1) 在序列 #32 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_31_43SJP6Z7_.ARC'


ORA-00279: 更改 606547 (在 05/28/2008 10:27:51 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_33_%U_.ARC
ORA-00280: 更改 606547 (用于线程 1) 在序列 #33 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_32_43SJS797_.ARC'


ORA-00279: 更改 606593 (在 05/28/2008 10:29:05 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_34_%U_.ARC
ORA-00280: 更改 606593 (用于线程 1) 在序列 #34 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_33_43SJVK97_.ARC'


ORA-00279: 更改 607210 (在 05/28/2008 10:43:12 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_35_%U_.ARC
ORA-00280: 更改 607210 (用于线程 1) 在序列 #35 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_34_43SKP10G_.ARC'


ORA-00279: 更改 607326 (在 05/28/2008 10:45:57 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF

_1_36_%U_.ARC
ORA-00280: 更改 607326 (用于线程 1) 在序列 #36 中
ORA-00278: 此恢复不再需要日志文件
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M

F_1_35_43SKV60Y_.ARC'


已应用的日志。
完成介质恢复。
SQL>

再次检查需要恢复的文件。
SQL> select * from v$recover_file;

未选定行

SQL> select name,status from v$datafile;

NAME                                               STATUS
-------------------------------------------------- -------
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01. SYSTEM
DBF

G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01 ONLINE
.DBF

G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01. ONLINE
DBF

G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.D ONLINE
BF

NAME                                               STATUS
-------------------------------------------------- -------

G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF  ONLINE

注意:如果恢复时需要归档的日志,还需要把备份的日志拷贝到数据库的日志路径中。

4、确认数据库恢复

SQL> alter database open;

数据库已更改。

SQL> select max(create_date) from tina.date_log;

MAX(CREATE_DAT
--------------
27-5月 -08


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-321788/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12778571/viewspace-321788/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值