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

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

环境: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. 【BZOJ3514】Codechef MARCH14 GERALD07加强版(LCT)

    题意:N个点M条边的无向图,q次询问保留图中编号在[l,r]的边的时候图中的联通块个数. 询问加密,强制在线 n,m,q<=200000 题意:RYZ作业 以下转载自hzwer http://h ...

  2. vi 和vim 的区别以及用法

    具体用法参考:http://blog.csdn.net/xuesnowce/article/details/53117352 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所 ...

  3. 标准C程序设计七---11

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  4. 强大的stringstream

    [本文来自]http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/ ...

  5. jQuery插件封装系列(一)—— 金额录入框

    基于jQuery原型封装数值录入框,禁止录入.粘贴非数值字符 (function ($) { // 数值输入框 $.fn.numbox = function (options) { var type ...

  6. centos6安装概述

    1.1.选择安装类型:[Install or upgrade an existing system]安装或升级现有系统 1.2.介质校验:[Skip]跳过介质校验,校验时间较长 1.3.语言选择:[E ...

  7. Linux下Shell脚本运行程序不输出日志到终端

    使用: 脚本路径/脚本名 >/dev/>& 说明: 可以简单的理解/dev/null是Linux下的回收站 >默认是把标准输出重定向 2>&1是把出错输出也定向 ...

  8. PostgreSQL触发器的使用

    原文: https://www.yiibai.com/postgresql/postgresql-trigger.html -------------------------------------- ...

  9. Python常用的模块

    模块,模块就是封装了特殊功能的代码. 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.自定义模块 2.模块的导入 python有大量的模块可以使用,再使用之前我们只需要导入模块就可以 ...

  10. 【转载】VS工具使用——代码图

    代码图:     心想,反正也调不出来,就试试这个东西吧,一打开,就认识到自己发现了一个新大陆:这个代码图可以让我们对一个工程文件有大体的了解,即函数的调用关系等.它是一个VS2013自带工具生成函数 ...