ORACLE模拟一个数据文件坏块并使用RMAN备份来恢复
1.创建一个实验用的表空间并在此表空间上创建表
create tablespace blocktest datafile '/u01/oradata/bys1/blocktest.dbf' size 1m;
col name for a40
select file#,name from v$datafile;
FILE# NAME
---------- ----------------------------------------
1 /u01/oradata/bys1/system01.dbf
2 /u01/oradata/bys1/sysaux01.dbf
3 /u01/oradata/bys1/undotbs01.dbf
4 /u01/oradata/bys1/users01.dbf
5 /u01/oradata/bys1/example01.dbf
6 /u01/oradata/bys1/blocktest.dbf
BYS@bys1>create table test9 tablespace blocktest as select * from scott.emp;
Table created.
BYS@bys1>select count(*) from test9;
COUNT(*)
----------
14
2.使用RMAN对数据库进行备份,这里为了快速实验我只备份了准备制造坏块的数据文件。
[oracle@bys001 ~]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Fri Sep 13 13:28:36 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: BYS1 (DBID=3957527513)
RMAN> backup datafile 6;
Starting backup at 13-SEP-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/oradata/bys1/blocktest.dbf
channel ORA_DISK_1: starting piece 1 at 13-SEP-13
channel ORA_DISK_1: finished piece 1 at 13-SEP-13
piece handle=/u01/flash_recovery_area/BYS1/backupset/2013_09_13/o1_mf_nnndf_TAG20130913T150457_935g8s7w_.bkp tag=TAG20130913T150457 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 13-SEP-13
RMAN> list backupset 7;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
7 Full 1.02M DISK 00:00:00 13-SEP-13
BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20130913T150457
Piece Name: /u01/flash_recovery_area/BYS1/backupset/2013_09_13/o1_mf_nnndf_TAG20130913T150457_935g8s7w_.bkp
List of Datafiles in backup set 7
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
6 Full 1910363 13-SEP-13 /u01/oradata/bys1/blocktest.dbf
3.模拟产生一个坏块:我这里使用了VI来删除数据文件中一些内容方法
[oracle@bys001 bys1]$ vi blocktest.dbf 打开后都是乱码,随便删除点中间的数据就可以,有时候 需要多次删除才会有坏块。我第一次实验一下就制造出坏块,后来都是通过多次才行。然后进入数据库查询建立在blocktest.表空间上的TEST9表,报错并给出了坏块的提示:文件号是6,坏块是10:
[oracle@bys001 bys1]$ sqlplus bys/bys
BYS@bys1>select * from test9;
select * from test9
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 6, block # 10)
ORA-01110: data file 6: '/u01/oradata/bys1/blocktest.dbf'
4.进入RMAN,修复坏块
《《《可选:--我未做
RMAN> backup validate datafile 6; 这条命令是对文件做一次校验,也可以发现坏块。
然后从SQLPLUS中查询:select * from v$database_block_corruption;
直接使用RMAN指定恢复的文件及BLOCK号》》》
执行以下 命令来修复坏块:
RMAN> blockrecover datafile 6 block 10 from backupset;
RMAN> exit
6.在SQLPLUS中查询表
BYS@bys1>select count(*) from test9;
COUNT(*)
----------
14
ORACLE模拟一个数据文件坏块并使用RMAN备份来恢复的更多相关文章
- 浅谈Oracle中物理结构(数据文件等。。。)与逻辑结构(表空间等。。。。。)
初始Oracle时很难理解其中的物理结构和逻辑结构,不明白内存中和硬盘中文件的区别和联系,我也是初学Oracle,这里就简单的谈谈我我看法. 首先,你需要明白的一点是:数据库的物理结构是由数据库的操作 ...
- oracle数据库单个数据文件的大小限制
之前没有仔细想过这个问题,因为总是不会用到,也没有犯过类似错误. 顺便提一下学习方法吧. 卤肉的学习方法是:常用知识点,熟悉理论并反复做实验,深入理解:不常用的知识点,相关内容都了解大概,遇到问题时想 ...
- ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法
ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块 --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...
- Oracle 10g DG 数据文件迁移
背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来. 环境:Oracle 10.2.0.5 DG 单机 首先 ...
- oracle 11g dbf数据文件从C盘迁移到D盘
服务器系统为 windows 2008 R2 64位,由于C盘空间将满,要将C盘的oracle的DBF数据文件迁移到D盘下,步骤如下: 1.输入cmd,启动 cmd.exe窗口 2.输入 sqlplu ...
- oracle使用rman备份集恢复方式创建ADG
一.背景 系统: 主库:rhel 6.4 64bit 备库:rhel 6.4 64bit 内存:2G [oracle@dgdb1 ~]$ free -m total used free share ...
- ORACLE 11G没有备份文件參数文件在异机通过rman备份恢复找回被误删的数据
背景: 同事误删除线上数据.所以须要从备份中找回数据恢复. 真实屋漏偏逢连夜雨.船迟又遇打头风.前两天备份的磁盘坏块,如今仅仅有rman全备的.bak文件,没有控制文件和參数文件,所 ...
- Oracle current redo.log出现坏块后的不完全恢复案例一则
1异常出现 8月30日下午2时左右,接同事电话,说数据库异常宕机了,现在启动不了. 2初步分析 我让现场把alert.log发过来,先看看是什么问题. 关于ORA-00353和ORA-0 ...
- Linux环境下利用句柄恢复Oracle误删除的数据文件
在误删除Oracle的数据文件后,如果未关闭数据库,文件句柄还没有释放,且被删除的数据文件占用的磁盘块未被复写,则可以利用句柄的方式来恢复数据文件.下面模拟恢复过程. (一)环境 OS版本:redha ...
随机推荐
- <%=id%>是什么意思
<%=% > 这里可以绑定后台的一个PUBLIC变量 <% % > 如果没有等号 可以在里面写C#语句
- Oracle 关于V$OPEN_CURSOR
参考链接:http://www.askmaclean.com/archives/about-dynamic-view-open_cursor.html#wrap 在之前的一次讨论中,有同行指出V$OP ...
- I - Doing Homework again
I - Doing Homework again Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- ROS的文件系统
这篇博客介绍一下ROS的文件系统的基本概念,用户可以直接在官方网站:http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem去查看官方手册. ...
- 使用VisualStudio发布ASP.NET网站
1.右击网站点击“发布网站” 2.选择或导入发布配置文件.→新建配置文件. 3.输入名称test.→点击确定. 4.发布方法选择文件系统. 5.选择目标位置.→点击下一步 6.文件发布选项选择三个选项 ...
- Labview学习之远程控制VI
Labview学习之远程控制VI 从LabVIEW 6.1开始,LabVIEW集成了Remote Panels技术,允许用户直接在客户端计算机上打开并操作位于服务器端计算机上的VI的前面 ...
- 定义一个runtime的Annotation
import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(value ...
- Unity3D Android手机开发环境配置
Unity3D Android手机开发环境配置 Date:2014-01-01 07:09 1.配置eclipse环境:首先在官网下载安装包:http://developer.android.com/ ...
- Linux中的盘符问题
在windows 中像 C.D.E.F这些都可以当盘符,就是说对应了我们所看到的C盘,D盘,E盘,F盘.然而是不是只能加26个硬盘了呢? 盘符到硬盘也只是一个对映关系,我们也是可以建立从一个文件夹到一 ...
- 转:CSS Overflow 属性
原文:CSS Overflow 属性译自:The CSS Overflow Property版权所有,转载请注明出处,多谢!! 根据CSS的盒模型概念,页面中的每个元素,都是一个矩形的盒子.这些盒子的 ...