失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 控制文件和数据文件丢失 有全备份恢复数据库的方法

控制文件和数据文件丢失 有全备份恢复数据库的方法

时间:2019-10-14 18:53:01

相关推荐

控制文件和数据文件丢失 有全备份恢复数据库的方法

控制文件和数据文件丢失,有全备份恢复数据库的方法

控制文件丢失,即使有全备份也难恢复数据库,因为备份信息是存在于控制文件的。

刚看论坛精华帖,Feng讲的dbms_backup_restore包还是很有用的,于是实验了一把,把过程贴出来做个备份!

首先执行下面三个文件

@dbmsbkrs.sql

@prvtbkrs.plb

@catproc.sql

先全备份

Microsoft Windows [版本 6.1.7600]

版权所有 (c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 3月 12 14:34:12

Copyright (c) 1982, , Oracle. All rights reserved.

连接到:

Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> DECLARE

2 devtype varchar2(256);

3 done boolean;

4 BEGIN

5 devtype:=dbms_backup_restore.deviceAllocate(type=>'',ident=>'t1');

6 dbms_backup_restore.restoreSetDatafile;

7 dbms_backup_restore.restoreControlfileTo(cfname=>'D:\app_bak\Control01.

ctl');

8 dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'D:\app_bak\O

RCL_03N5MCOV_3_1.DBF', params=>null);

9 dbms_backup_restore.deviceDeallocate;

10 END;

11 /

PL/SQL 过程已成功完成。

SQL> DECLARE

2 devtype varchar2(256);

3 done boolean;

4 BEGIN

5 devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');

6 sys.dbms_backup_restore.restoreSetDatafile;

7 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'D:\APP\

ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF');

8 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'D:\APP\

ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF');

9 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'D:\APP\

ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF');

10 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'D:\APP\AD

MINISTRATOR\ORADATA\ORCL\USERS01.DBF');

11 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'D:\APP\ADM

INISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF');

12 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'D:\app_bak

\ORCL_02N5MCN3_2_1.DBF', params=>null);

13 sys.dbms_backup_restore.deviceDeallocate;

14 END;

15 /

PL/SQL 过程已成功完成。

SQL> startup force mount;

ORACLE 例程已经启动。

Total System Global Area 1071333376 bytes

Fixed Size 1334380 bytes

Variable Size 377488276 bytes

Database Buffers 687865856 bytes

Redo Buffers 4644864 bytes

数据库装载完毕。

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 987186 (在 03/12/ 11:45:44 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_5_7OTWF8G9_.ARC

ORA-00280: 更改 987186 (用于线程 1) 在序列 #5 中

指定日志: {=suggested | filename | AUTO | CANCEL}

D:\app_bak\ORCL\ARCHIVELOG\_03_12\O1_MF_1_5_7OTWF8G9_.ARC

ORA-00279: 更改 987218 (在 03/12/ 11:46:48 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_6_7OTWXVFS_.ARC

ORA-00280: 更改 987218 (用于线程 1) 在序列 #6 中

ORA-00278: 此恢复不再需要日志文件

'D:\app_bak\ORCL\ARCHIVELOG\_03_12\O1_MF_1_5_7OTWF8G9_.ARC'

指定日志: {=suggested | filename | AUTO | CANCEL}

D:\app_bak\ORCL\ARCHIVELOG\_03_12\O1_MF_1_6_7OTWXVFS_.ARC

ORA-00279: 更改 1014241 (在 03/12/ 11:55:39 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_7_7OTWZXLR_.ARC

ORA-00280: 更改 1014241 (用于线程 1) 在序列 #7 中

ORA-00278: 此恢复不再需要日志文件

'D:\app_bak\ORCL\ARCHIVELOG\_03_12\O1_MF_1_6_7OTWXVFS_.ARC'

指定日志: {=suggested | filename | AUTO | CANCEL}

D:\app_bak\ORCL\ARCHIVELOG\_03_12\O1_MF_1_7_7OTWZXLR_.ARC

ORA-00279: 更改 1045106 (在 03/12/ 11:56:45 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_8_7OTX14FW_.ARC

ORA-00280: 更改 1045106 (用于线程 1) 在序列 #8 中

ORA-00278: 此恢复不再需要日志文件

'D:\app_bak\ORCL\ARCHIVELOG\_03_12\O1_MF_1_7_7OTWZXLR_.ARC'

指定日志: {=suggested | filename | AUTO | CANCEL}

D:\app_bak\ORCL\ARCHIVELOG\_03_12\O1_MF_1_8_7OTX14FW_.ARC

ORA-00279: 更改 1055447 (在 03/12/ 11:57:24 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_9_7OTX3F26_.ARC

ORA-00280: 更改 1055447 (用于线程 1) 在序列 #9 中

ORA-00278: 此恢复不再需要日志文件

'D:\app_bak\ORCL\ARCHIVELOG\_03_12\O1_MF_1_8_7OTX14FW_.ARC'

指定日志: {=suggested | filename | AUTO | CANCEL}

cacel

ORA-00308: 无法打开归档日志 'cacel'

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

指定日志: {=suggested | filename | AUTO | CANCEL}

cancel

介质恢复已取消。

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 1055447 (在 03/12/ 11:57:24 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_9_7OTX3F26_.ARC

ORA-00280: 更改 1055447 (用于线程 1) 在序列 #9 中

指定日志: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: 更改 1076323 (在 03/12/ 11:58:36 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_10_7OTX507R_.ARC

ORA-00280: 更改 1076323 (用于线程 1) 在序列 #10 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_9_7OTX3F26_.ARC'

ORA-00279: 更改 1095900 (在 03/12/ 11:59:27 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_11_7OTXBHY5_.ARC

ORA-00280: 更改 1095900 (用于线程 1) 在序列 #11 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_10_7OTX507R_.ARC'

ORA-00279: 更改 1102915 (在 03/12/ 12:02:23 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_12_7OTXDSO7_.ARC

ORA-00280: 更改 1102915 (用于线程 1) 在序列 #12 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_11_7OTXBHY5_.ARC'

ORA-00279: 更改 1110964 (在 03/12/ 12:03:37 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_13_7OTXGL12_.ARC

ORA-00280: 更改 1110964 (用于线程 1) 在序列 #13 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_12_7OTXDSO7_.ARC'

ORA-00279: 更改 1119751 (在 03/12/ 12:04:33 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_14_7OTZ8H47_.ARC

ORA-00280: 更改 1119751 (用于线程 1) 在序列 #14 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_13_7OTXGL12_.ARC'

ORA-00279: 更改 1128665 (在 03/12/ 12:35:26 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_15_7OV32Y0L_.ARC

ORA-00280: 更改 1128665 (用于线程 1) 在序列 #15 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_14_7OTZ8H47_.ARC'

ORA-00279: 更改 1151109 (在 03/12/ 13:40:45 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_16_7OV355RH_.ARC

ORA-00280: 更改 1151109 (用于线程 1) 在序列 #16 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_15_7OV32Y0L_.ARC'

ORA-00279: 更改 1187928 (在 03/12/ 13:41:57 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_17_7OV3608G_.ARC

ORA-00280: 更改 1187928 (用于线程 1) 在序列 #17 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_16_7OV355RH_.ARC'

ORA-00279: 更改 1197561 (在 03/12/ 13:42:24 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_18_7OV384CP_.ARC

ORA-00280: 更改 1197561 (用于线程 1) 在序列 #18 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_17_7OV3608G_.ARC'

ORA-00279: 更改 1217000 (在 03/12/ 13:43:32 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_19_7OV39GJ7_.ARC

ORA-00280: 更改 1217000 (用于线程 1) 在序列 #19 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_18_7OV384CP_.ARC'

ORA-00279: 更改 1236575 (在 03/12/ 13:44:14 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_20_7OV3GD2V_.ARC

ORA-00280: 更改 1236575 (用于线程 1) 在序列 #20 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_19_7OV39GJ7_.ARC'

ORA-00279: 更改 1244609 (在 03/12/ 13:46:51 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_21_7OV3JCB9_.ARC

ORA-00280: 更改 1244609 (用于线程 1) 在序列 #21 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_20_7OV3GD2V_.ARC'

ORA-00279: 更改 1251212 (在 03/12/ 13:47:55 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_22_7OV3KQZ3_.ARC

ORA-00280: 更改 1251212 (用于线程 1) 在序列 #22 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_21_7OV3JCB9_.ARC'

ORA-00279: 更改 1260894 (在 03/12/ 13:48:39 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_23_%U_.ARC

ORA-00280: 更改 1260894 (用于线程 1) 在序列 #23 中

ORA-00278: 此恢复不再需要日志文件

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_22_7OV3KQZ3_.ARC'

ORA-00308: 无法打开归档日志

'D:\APP_BAK\ORCL\ARCHIVELOG\_03_12\O1_MF_1_23_%U_.ARC'

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

SQL> alter database open resetlogs;

数据库已更改。

SQL>

来自 “ ITPUB博客 ” ,链接:/25989950/viewspace-718403/,如需转载,请注明出处,否则将追究法律责任。

如果觉得《控制文件和数据文件丢失 有全备份恢复数据库的方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。