控制文件和数据文件丢失,有全备份恢复数据库的方法
控制文件丢失,即使有全备份也难恢复数据库,因为备份信息是存在于控制文件的。
刚看论坛精华帖,Feng讲的dbms_backup_restore包还是很有用的,于是实验了一把,把过程贴出来做个备份!
首先执行下面三个文件
@dbmsbkrs.sql
@prvtbkrs.plb
@catproc.sql

先全备份

Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>sqlplus / as sysdba

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

Copyright (c) 1982, 2007, 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/2012 11:45:44 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_5_7OTWF8G9_.ARC
ORA-00280: 更改 987186 (用于线程 1) 在序列 #5 中

指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_5_7OTWF8G9_.ARC
ORA-00279: 更改 987218 (在 03/12/2012 11:46:48 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_6_7OTWXVFS_.ARC
ORA-00280: 更改 987218 (用于线程 1) 在序列 #6 中
ORA-00278: 此恢复不再需要日志文件
'D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_5_7OTWF8G9_.ARC'

指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_6_7OTWXVFS_.ARC
ORA-00279: 更改 1014241 (在 03/12/2012 11:55:39 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_7_7OTWZXLR_.ARC
ORA-00280: 更改 1014241 (用于线程 1) 在序列 #7 中
ORA-00278: 此恢复不再需要日志文件
'D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_6_7OTWXVFS_.ARC'

指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_7_7OTWZXLR_.ARC
ORA-00279: 更改 1045106 (在 03/12/2012 11:56:45 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_8_7OTX14FW_.ARC
ORA-00280: 更改 1045106 (用于线程 1) 在序列 #8 中
ORA-00278: 此恢复不再需要日志文件
'D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_7_7OTWZXLR_.ARC'

指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_8_7OTX14FW_.ARC
ORA-00279: 更改 1055447 (在 03/12/2012 11:57:24 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_9_7OTX3F26_.ARC
ORA-00280: 更改 1055447 (用于线程 1) 在序列 #9 中
ORA-00278: 此恢复不再需要日志文件
'D:\app_bak\ORCL\ARCHIVELOG\2012_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/2012 11:57:24 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_9_7OTX3F26_.ARC
ORA-00280: 更改 1055447 (用于线程 1) 在序列 #9 中

指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 1076323 (在 03/12/2012 11:58:36 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_10_7OTX507R_.ARC
ORA-00280: 更改 1076323 (用于线程 1) 在序列 #10 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_9_7OTX3F26_.ARC'

ORA-00279: 更改 1095900 (在 03/12/2012 11:59:27 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_11_7OTXBHY5_.ARC
ORA-00280: 更改 1095900 (用于线程 1) 在序列 #11 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_10_7OTX507R_.ARC'

ORA-00279: 更改 1102915 (在 03/12/2012 12:02:23 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_12_7OTXDSO7_.ARC
ORA-00280: 更改 1102915 (用于线程 1) 在序列 #12 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_11_7OTXBHY5_.ARC'

ORA-00279: 更改 1110964 (在 03/12/2012 12:03:37 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_13_7OTXGL12_.ARC
ORA-00280: 更改 1110964 (用于线程 1) 在序列 #13 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_12_7OTXDSO7_.ARC'

ORA-00279: 更改 1119751 (在 03/12/2012 12:04:33 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_14_7OTZ8H47_.ARC
ORA-00280: 更改 1119751 (用于线程 1) 在序列 #14 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_13_7OTXGL12_.ARC'

ORA-00279: 更改 1128665 (在 03/12/2012 12:35:26 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_15_7OV32Y0L_.ARC
ORA-00280: 更改 1128665 (用于线程 1) 在序列 #15 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_14_7OTZ8H47_.ARC'

ORA-00279: 更改 1151109 (在 03/12/2012 13:40:45 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_16_7OV355RH_.ARC
ORA-00280: 更改 1151109 (用于线程 1) 在序列 #16 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_15_7OV32Y0L_.ARC'

ORA-00279: 更改 1187928 (在 03/12/2012 13:41:57 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_17_7OV3608G_.ARC
ORA-00280: 更改 1187928 (用于线程 1) 在序列 #17 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_16_7OV355RH_.ARC'

ORA-00279: 更改 1197561 (在 03/12/2012 13:42:24 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_18_7OV384CP_.ARC
ORA-00280: 更改 1197561 (用于线程 1) 在序列 #18 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_17_7OV3608G_.ARC'

ORA-00279: 更改 1217000 (在 03/12/2012 13:43:32 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_19_7OV39GJ7_.ARC
ORA-00280: 更改 1217000 (用于线程 1) 在序列 #19 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_18_7OV384CP_.ARC'

ORA-00279: 更改 1236575 (在 03/12/2012 13:44:14 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_20_7OV3GD2V_.ARC
ORA-00280: 更改 1236575 (用于线程 1) 在序列 #20 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_19_7OV39GJ7_.ARC'

ORA-00279: 更改 1244609 (在 03/12/2012 13:46:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_21_7OV3JCB9_.ARC
ORA-00280: 更改 1244609 (用于线程 1) 在序列 #21 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_20_7OV3GD2V_.ARC'

ORA-00279: 更改 1251212 (在 03/12/2012 13:47:55 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_22_7OV3KQZ3_.ARC
ORA-00280: 更改 1251212 (用于线程 1) 在序列 #22 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_21_7OV3JCB9_.ARC'

ORA-00279: 更改 1260894 (在 03/12/2012 13:48:39 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_23_%U_.ARC
ORA-00280: 更改 1260894 (用于线程 1) 在序列 #23 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_22_7OV3KQZ3_.ARC'

ORA-00308: 无法打开归档日志
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_23_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

SQL> alter database open resetlogs;

数据库已更改。

SQL>

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

转载于:http://blog.itpub.net/25989950/viewspace-718403/

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

  1. jsp页面判断输入编号已存在mysql中_面试官让我聊聊Mysql基础架构之日志文件与数据文件...

    上一篇文章讲述了Mysql的基本框架,和sql执行的流程,这篇文章首先分析下每个流程的具体细节,然后介绍日志文件和数据文件以下面语句作为例子来分析流程中每一步的具体细节: select * from ...

  2. C语言文件操作——数据文件类型、文件判断、文件缓冲区详解

    之前,我讲解了文件操作的三大步骤,讲解了文件读写的各类函数和使用方法,今天,还是来和大家聊一聊文件操作剩余的一些知识点. 一.数据文件类型 之前我讲到过文件按照功能类型分为程序文件和数据文件两大类,我 ...

  3. 因以下文件的损坏或者丢失,Windows 无法启动实用解决方法

    因以下文件的损坏或者丢失,Windows 无法启动实用解决方法 开机的时候电脑因以下文件的损坏或者丢失,WINDOWS无法启动,还会提示在某文件路径下文件的缺失.\windows\system32\c ...

  4. 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 6: ‘D:\ORACLE\WENZHENG\TB63_CZB.DM

    从65行问题描述位置开始 の 有效命令: 82行: SQL>alter database datafile 'D:\ORACLE\WENZHENG\TB63_CZB.DMP' offline d ...

  5. 第四章 文件的基本管理和XFS文件系统备份恢复 随堂笔记

    第四章 文件的基本管理和XFS文件系统备份恢复 本节所讲内容: 4.1 Linux系统目录结构和相对/绝对路径. 4.2 创建/复制/删除文件,rm -rf / 意外事故 4.3 查看文件内容的命令 ...

  6. mysql打包备份数据到_thinkPHP使用pclzip打包备份mysql数据库的方法

    本文实例讲述了thinkPHP使用pclzip打包备份mysql数据库的方法.分享给大家供大家参考,具体如下: PclZip介绍 PclZip library能够压缩与解压缩Zip格式的压缩档(Win ...

  7. oracle的控制文件和数据文件损坏

    控制文件损坏 一.使用trace文件恢复 SQL> alter database backup controlfile to trace; --将控制文件备份到trace文件 Database ...

  8. oracle参数文件、控制文件、数据文件、日志文件的位置及查询方法

    参数文件:所有参数文件一般在  $ORACLE_HOME/dbs 下 sqlplus查询语句:show parameter spfile; 网络连接文件: $ORACLE_HOME/dbs/netwo ...

  9. shell如何控制文件读写不同时_如何定时备份Mysql数据库数据?

    这是为小白定制的专属<Linux轻松上手>系列.涵盖了linux常用指令.shell脚本等核心内容,浅显易懂,配合实操案例快速上手.目标就是帮助大家轻松上手linux,少走弯路! 上一篇如 ...

最新文章

  1. python 变量名重新赋值 变量重新赋值 通过字典的方式
  2. SAP常见问题与解决办法
  3. Java 序列化 之 单例模式
  4. jzoj4249-游戏【贪心】
  5. 图片作为背景并且是链接的写法(背景图片加链接)
  6. 工信部:鼓励采用低速直驱和高速直驱式永磁电机
  7. vs2015 下配置sfml
  8. 基于 libdmtx和zxing的DM二维码识别总结
  9. 收盘:用友软件跌10.02%报13.2元 换手3.26%
  10. 关于路由表,ARP表,MAC表的一些理解
  11. 1000瓶药水,一瓶有毒,用10只老鼠来判断到底是哪一瓶
  12. 十年工作经验的中层员工如何在大厂生存?
  13. 三星s8html查看器,拆解三星S8手机
  14. logline: 是时候聊一聊前端的日志了
  15. 软件评测师考试学习计划
  16. No enclosing instance of type FormDetailBean is accessible. Must qualify the allocation with an encl
  17. 区块链电子合同铸就数字经济信任基石
  18. CSP201803-4棋局评估
  19. Java中十进制转换为其他进制的方法
  20. php 无法加载activex,IE怎么无法加载 Activex 控件?

热门文章

  1. 深度干货 | 32道JVM基础面试题 (1.2W字详细解析)
  2. 解决H5中背景音乐无法自动播放问题
  3. AWS re:Invent 科技盛会 英信翻译提供《视频转录和字幕翻译服务》
  4. 1.爬虫数据提取——方法总结
  5. js 键盘控制表格input上下左右移动
  6. 使用七牛云进行上传图片
  7. 稳稳当当学java之设计模式(12)
  8. 已解决ValueError: Expected 2D array, got 1D array instead
  9. 产品经理工作之确定产品的价值
  10. 微信扫码后弹出在右上角浏览器打开