数据库各种文件丢失恢复大全
SPFILE 丢失:

模拟操作:
oracle> mv spfileora10g.ora spora10g.ora
oracle>rman target /;
rman> shutdown immediate;
rman> startup nomount;
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/home/oracle/product/10.20/dbs/initora10g.ora'
rman>set dbid 3988862108;
rman>restore spfile from autobackup;
执行该命令,如果没有找到的话,那可能是文件的路径发生错误.可以通过直接赋予它的文

rman>restore spfile from
'/u01/oracle/flash_recovery_area/ORA10G/autobackup/2008_12_09/o1_mf_s_673025706_4mw
7xc79_.bkp
在dbs/目录下产生spfileora10g.ora 文件。证明spfile 已经恢复好
rman> shutdown immediate;
rman> startup ;(如果该命令不能够启动数据库,那么需要set dbid 3988862108)
controlfile 丢失:
startup nomount;
restore controlfile from autobackup;
alter database mount;
recover database;
alter database open resetlogs;
注意:在做了alter database open resetlogs;会把online redelog file 清空,数据文件丢失.所以这
个时候要做一个全备份。
oracle>rm *.ctl
oracle>rman target / ;//不能够连接到rman ,因为controlfile 丢失
oracle>sqlplus /nolog;
SQL>shutdown immediate; //因为controlfile 丢失,不能够正常shutdown
SQL>shutdown abort;
oracle>rman target /;
rman>startup nomount;
rman>restore controlfile from autobackup;
rman>alter database mount;
rman>alter database open resetlogs;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 12/09/2008 16:21:13
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/home/oracle/oradata/ora10g/system01.dbf
//出错, redo log 的scn 记录在controlfile 里面的,因为我们有新的controlfile,所以需要
resetlogs;
/*
resetlogs 命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始,每次使
用resetlogs 命令的时候,SCN 不会被重置,不过oracle 会重置日志序列号,而且会重置
联机重做日志内容.
这样做是为了防止不完全恢复后日志序列会发生冲突(因为现有日志和数据文件间有了时间
差)。
*/
rman>recover database;
rman>alter database open resetlogs;
Redolog file 丢失:(下面的这些语句一定要在sqlplus 中执行,不是在rman 中执行)
(sqlplus/nolog)
1.shutdown immediate;
2.startup mount;
3.recover database until cancel;(media recovery)
4.alter database resetlogs;
数据文件丢失(在rman 中执行sql 语句,在sql 后面用双引号括起来):
1. sql "alter database datafile 3 offline";
2. restore datafile 3
3. recover datafile 3
4. sql "alter database datafile 3 online";
表空间丢失:
1. sql "alter tablespace users offline";//如果文件不存在,则用sql "alter tablespace users offline
immeidate";
2. restore tablespace users;
3. recover tablespace users; //与online redolog file 信息一致
4. sql "alter tablespace users online";
非catalog 方式完全恢复
数据库出现问题:
1.startup nomount;
2.restore controlfile from autobackup;
3.alter database mount;
4.restore database;
5.recover database;
6.alter database open resetlogs;
模拟操作:
oracle ora10g> rm *;
oracle ora10g> ls;
oracle ora10g> //数据文件,控制文件全部删除
oracle ora10g> rman target /; //因为controlfile 丢失,不能够连接到rman
oracle ora10g> sqlplus /nolog;
oracle ora10g> connect / as sysdba;
oracle ora10g> shutdown abort;
oracle ora10g> rman target /
rman> startup nomount;
rman> restore controlfile from autabackup;
rman> alter database mount;
rman> restore database;
rman> recover database; //online redolog 不存在
SQL>recover database until cancel; //当redo log 丢失,数据库在缺省的方式下,是不容许进行
recover 操作的,那么如何在这种情况下操作呢
SQL>create pfile from spfile;
vi /u01/product/10.20/dbs/initora10g.ora,在这个文件的最后一行添加
*.allow_resetlogs_corruption='TRUE'; //容许resetlog corruption
SQL>shutdown immediate;
SQL>startup pfile='/u01/product/10.20/dbs/initora10g.ora' mount;
SQL>alter database open resetlogs;
基于时间点的恢复:
run{
set until time "to_date(07/01/02 15:00:00','mm/dd/yy hh24:mi:ss')";
restore database;
recover database;
alter database open resetlogs;
}
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
1.startup mount;
2.restore database until time "to_date('2009-7-19 13:19:00','YYYY-MM-DD HH24:MI:SS')";
3.recover database until time "to_date('2009-7-19 13:19:00','YYYY-MM-DD HH24:MI:SS')";
4.alter database open resetlogs;
如果有open resetlogs,都是不完整恢复.
基于SCN 的恢复:
1.startup mount;
2.restore database until scn 10000;
3.recover database until scn 10000;
4.alter database open resetlogs;
基于日志序列的恢复:
1.startup mount;
2.restore database until SEQUENCE 100 thread 1; //100 是日志序列
3.recover database until SEQUENCE 100 thread 1;
4.alter database open resetlogs;
日志序列查看命令: SQL>select * from v$log;其中有一个sequence 字段.resetlogs 就会把
sequence 置为1

转载于:https://blog.51cto.com/ecloud/1339074

数据库文件备份与恢复案例相关推荐

  1. 数据库备份与恢复案例:如何恢复丢失的数据

    作者:禅与计算机程序设计艺术 数据库备份与恢复案例:如何恢复丢失的数据 引言 随着数字化时代的到来,数据库已经成为企业重要的数据资产,数据备份与恢复问题也逐渐引起了人们的广泛关注.在实际应用中,由于各 ...

  2. 案例详解:Linux文件系统异常导致数据库文件无法访问

    墨墨导读:某客户单位数据库出现异常,大致现象是:数据库状态是open的,但是其中一个数据文件无法访问,本文分享排查原因与解决问题的整个过程. 通过ls 查看文件都报错,如下所示: [oracle@or ...

  3. 【数据库数据恢复】Oracle数据库文件出现坏块报错的数据恢复案例

    Oracle数据恢复故障&分析: 打开oracle数据库报错"system01.dbf需要更多的恢复来保持一致性,数据库无法打开".用户找到我们数据恢复中心,提供了数据库o ...

  4. Mysql 使用企业级MEB进行数据库物理备份与恢复

    在免费下载并使用的MySQL开源社区版本中,默认并不包含MEB(MySQL Enterprise Backup,MySQL企业版备份工具)物理热备工具,因为它是一款Oracle自研的企业级软件,用户需 ...

  5. mssql 数据库的备份与恢复

    数据库有2个文件,分别是Mall_DataBase_Log.LDF 和 Mall_DataBase_Log.MDF 可是我不知道如何使这个网站在我电脑上运行! 我刚装了mssql2000! 打开企业管 ...

  6. oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...

    天萃荷净 使用oradebug修改数据库scn,使用oradebug修改数据库scn的案例. 这里也做了两个测试,发现该功能确实很巧妙,通过修改内存中的scn值,然后写入控制文件和数据文件,实现修改s ...

  7. mysql对数据库进行备份吗_怎么对MySQL数据库进行备份与恢复

    MySQL的备份与恢复 前言:前面我们已经了解了 MySQL 数据库的安装及使用,但随着自动化办公与电子商务的不断发展,企业对信息系统的依赖性越来越高,而 数据库 在信息系统中担任着非常重要的角色.尤 ...

  8. Oracle数据库文件恢复与备份思路

    http://oracle.chinaitlab.com/backup/823039.html 任何数据库在长期使用过程中,都会存在一定的安全隐患.对于数据库管理员来说不能仅寄希望于计算机操作系统的安 ...

  9. 数据库-数据库的备份与恢复

    数据库的备份与恢复 备份命令 在mysql的安装目录的bin目录下有mysqldump命令,可以完成对数据库的备份. 语法:mysqldump -u 用户名 -p 数据库名> 磁盘SQL文件路径 ...

  10. oracle编写备份数据库代码,oracle_oracle数据库创建备份与恢复脚本整理,1:创建用户 复制代码 代码如 - phpStudy...

    oracle数据库创建备份与恢复脚本整理 1:创建用户 create temporary tablespace user_temp tempfile 'D:\app\topwqp\oradata\or ...

最新文章

  1. linux 安装gcc4.2,Linux操作系统下安装gcc4.2.*的方法
  2. C++11 POD类型
  3. linux vim编译命令行,LINUX VIM编译器常用命令总结
  4. 张尧学:祝YOCSEF越办越好
  5. java abs前缀变量_JAVA工具例大全--cn.hutool.setting.AbsSetting读取配置文件例子
  6. oracle 分区字符转换,Oracle 普通表与分区表转换
  7. mysql 更改一行_mysql怎么修改数据表里一行数据?
  8. 【华为云技术分享】云图说|超赞!终于有人把云存储“三兄弟”讲清楚了!
  9. linux监控进程资源,linux系统资源监控命令
  10. java的Jaas授权与鉴权
  11. 纪念一下获得十大优秀学生
  12. [python]python的注释格式
  13. h264 Profile-level-id解析
  14. Javascript捕捉(capturing)与冒泡(bubbling)的区别
  15. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.4
  16. 腾讯云轻量8核16G服务器18M带宽CPU流量性能测评
  17. excle报盘之导出处理失败数据
  18. 地球经纬度计算两点距离
  19. 股票技术指标详解--移动平均线(MA)
  20. android 解析json 日期格式,如何将JSON格式的日期字符串解析为日期格式

热门文章

  1. Eclipse安装插件支持jQuery智能提示
  2. spin_lock的变体
  3. xdp-ebpf 简介
  4. 多线程编程(Linux C)
  5. CAVLC和CABAC简介
  6. 蓝桥杯 k倍区间(前缀和)
  7. python计算圆环的面积_基于Python制作美观动态圆环图、饼图
  8. Binary String Constructing(CodeForces - 1003B)
  9. animals中文谐音_张杰pretty white lies中文音译歌词
  10. python逐行调试_python调试:pdb基本用法(转)