模拟数据库数据文件丢失的情况下,通过丢失之前的数据文件物理备份做恢复;

说明:数据文件丢失前一刻的所有归档日志都存在。

环境:oracle10g +rhel5

1.关闭数据库,copy system01.dbf、user01.dbf 到同目录的bak目录下备份

注意:这一步要注意一个细节

cp -p  system01.dbf  bak

------一定要带-p参数,这样文件的属性就一同拷贝过去了。否则该文件的owner 是root,你后面恢复时,因为owner 原因,oracle不认。

2.为了能观察整个备份恢复的效果,创建一个表

startup

create table t(id int ,scn number)tablespace users;

插入数据

insert into t values(1,dbms_flashback.get_system_change_number);

insert into t values(2,dbms_flashback.get_system_change_number);

insert into t values(3,dbms_flashback.get_system_change_number);

commit;

alter system switch logfile;

insert into t values(4,dbms_flashback.get_system_change_number);

insert into t values(5,dbms_flashback.get_system_change_number);

commit;

alter system switch logfile;

3.关闭数据库  ,删除 system01.dbf、user01.dbf文件。

4.启动数据库

如图提示system01.dbf 不能打开,因为已经删除。

5. 从bak中恢复system01.dbf,再次open数据库

这次系统会提示你要media recovery,即从归档日志中恢复数据; enter即可。

如果从scn角度来看,你未恢复dbf之前,你可以通过

select file#,checkpoint_change# from v$datafile_header来查看数据文件scn的变化情况。

即此时,checkpoint_change#=0的。你recover后,,checkpoint_change#会恢复到最近的scn。

数据库正常启动的前提是:系统scn、数据文件头scn、控制文件scn 都必须一致。

6.再次open数据库

会提示user01.dbf 不存在,如上操作,从归档日志中恢复insert的数据。再次open数据库,正常启动了。

查看一下表数据是否丢失,恩,都恢复回来了。

这时你再次查看scn,就都一样的了。

至此,冷备份恢复完成。

Oracle备份与恢复:冷备份恢复的更多相关文章

  1. 将oracle冷备份恢复到另外一个数据库实例中

    因更换服务器需要将Oracle数据库转移到另外台Oracle中.说明: 1.测试环境为:windows server2003 和 oracle 10g. 2.2台服务器安装的程序目录一样,数据目录不一 ...

  2. Oracle备份与恢复案例

    注:以下内容来自<Oracle备份与恢复案例.doc>文档. Oracle备份与恢复案例 By Piner 一. 理解什么是数据库恢复 当我们使用一个数据库时,总希望数据库的内容是可靠的. ...

  3. Oracle 备份与恢复基础

    Oracle 备份与恢复基础 :三思笔记 备份与恢复 A whole database backup is either a consistent backup or an inconsistent ...

  4. Oracle 备份与恢复 15 个典型问题

    1.问:Oracle11g数据库数据量有50T,每天增量50g左右,该如何制定备份方案,如何验证备份的有效性? 答:50T的数据也不大,运营商的地市级市数据基本都在100T以上了,只要备份环境允许的话 ...

  5. rman恢复方案和oracle异机恢复

    这篇文章主要介绍了rman恢复方案和oracle异机恢复,需要的朋友可以参考下 注:①恢复的前提是已经做好备份②完全恢复数据库是数据库遇到故障,在恢复时候没有丢失任何已经提交事物数据的恢复不完全恢复数 ...

  6. 记一次Oracle冷备恢复的过程

    一.故障来临 某日中午,市电意外中断,机房UPS电源由于负载过重而未接管供电,所有服务器全部重启...... 待所有服务器重启后,正在逐一检查设备和业务运行情况时,意外发生了.一台年代久远的HP PC ...

  7. oracle 11g 数据库恢复技术 ---02 控制文件

    oracle 11g 数据库恢复技术 ---02 控制文件 SYS@ orcl >show parameter control_file NAME TYPE VALUE ------------ ...

  8. Oracle 备份、恢复单表或多表数据步骤

    Oracle 备份.恢复单表或多表数据步骤,适用于 Oracle 8.9.10.        *备份单表或多表数据: exp user/password@server file=filefullpa ...

  9. oracle自动冷备份脚本

    根据自己网上的资料和自己的需求,写的oracle冷备份脚本. 整体思路: 1.停止服务 2.文件拷贝 3.启动服务 保存以为文件为BAT格式,点击可以用下. rem ----------------- ...

随机推荐

  1. Redis命令行之Zset

    一.Redis之Zset简介 1. 有序集合Zset是String类型的有序集合. 2. Zset中每个元素都会关联一个double类型的分数值,redis通过分数值来为集合中所有成员进行从小到大排序 ...

  2. golang测试框架--smartystreets/goconvey

    视频教程和配套博客:goconvey - 课时 1:优雅的单元测试 Go 语言虽然自带单元测试功能,在 GoConvey 诞生之前也出现了许多第三方辅助库.但没有一个辅助库能够像 GoConvey 这 ...

  3. Linux 环境下思源黑体字体与 Java 之间的兼容性问题的解决(补充说明)

    在前一篇随笔中,我讲了一下有关 Linux 环境下思源黑体与 Java 之间的兼容性问题,后来经过测试发现,默认安装的思源黑体字体同时包含简体字体和繁体字体,并且其对应的语言编码也是不同的.尝试着把繁 ...

  4. python练习之-计算器

    学习以堆栈模式编写-计算器 堆栈特点:先进后出, 如下: #!/opt/python3/bin/python3 # Author: yong import re def is_symbol(eleme ...

  5. 数据结构之区间K大数

    求区间的问题有很多类,虽然前人有很多讲解了: 但是我在这里在普及一下,算是自己的一种复习吧. 1.静态询问一个区间的的第k大数,比如询问[l,r] k大数.虽然主席树可以处理,但是这类问题应该是划分树 ...

  6. argument to nsmutablearray method addobject cannot be nil 警告

    You cannot add nil to an NSMutableArray, and you will raise an exception if you try to. There's NSNu ...

  7. Dubbo和Spring集成Demo

    Zookeeper安装和启动 http://mirrors.hust.edu.cn/apache/zookeeper/下载,我的版本是 3.4.5. 解压到 D:\zookeeper-3.4.5 配置 ...

  8. 按字节寻址and按字编址

    按字节寻址,存储空间的最小编址单位是字节,按字编址,存储空间的最小编址单位是字,最小编址单位的选择,和存储容量.地址总线宽度都有关联 .同样的存储容量, 粒度小了,地址长度就需要更长 .就是根据不同的 ...

  9. 【转载】C#扫盲之:静态成员、静态方法、静态类、实例成员及区别

    文章目录 1.静态成员.实例成员 2.静态类 3.类的静态成员和非静态成员区别 --------------------------------------分割线------------------- ...

  10. FPGA 功耗结构设计

    1 相对于ASIC.FPGA是耗电器件,不适合超低功耗设计技术. 2 在CMOS技术中电路的动态功耗与门和金属引线的充放电有关,电容消耗电流的一般方程为 I=V* C*f V 是电压.对于FPGA来说 ...