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 ...
随机推荐
- JavaScript之insertBefore()和自定义insertAfter()的用法。
在JS图片库的第五版开发完后http://www.cnblogs.com/GreenLeaves/p/5691797.html#js_Five_Version我们发现一个问题,就是假设在图片列表之后还 ...
- NSURLConnect 的简单实用(iOS8淘汰)
Demo_1 NSRULConnection NSRULConnection 苹果公司在ios8已经抛弃了,但是我还是要讲一下,因为这和后面的NSSession有着密切的联系 下面开始使用步骤: 1. ...
- iOS隐藏tabBar的方法
两种方法用来隐藏tabBar 1.在本页面隐藏 #pragma mark - 隐藏tabBar - (void)viewWillAppear:(BOOL)animated{ self.tabBarCo ...
- PHP学习遇到的问题
使用php ob_start()模板生成html 内容无法撑开 生成后主要的内容 <body><warp><main> 生成后这个几个节点总是固定大小,不能被内容撑 ...
- Java学习之基本数据类型
基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型.java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化. 1. Java ...
- nginx+php的配置
作了N多次php环境的搭建,网上的方法还真是多,但是实际操作起来总有一些大大小小的出入,很多错误经常让我纠结不已.久病成医,渐渐地我自己就总结出了一些经验.自我感觉良好. 这种方法并非以前所流行的ap ...
- Android 逆向工程之步骤
PS:本系列文章中所涉及到的技术.数据和接口地址,仅供学习交流,务必不可做坏事或者是用于商业用途!否则后果自负! 来源:http://blog.csdn.net/zhaokaiqiang1992 逆向 ...
- VS中,NUnit适合测试者尽心开发自动化测试,而Unit适合开发者开发单元测试。
1.整合Visual Studio和NUnit 在Visual Studio 2010中,通过安装NUnit插件,可以不使用外部客户端,直接运行测试. 当然,貌似在最新版本的VS2012中,安装过NU ...
- Umbraco学习1------安装
最近在做一个公益项目,考虑到成本和性价比,最终决定还是选用Umbraco作为CMS平台进行开发. 顺便也借机将Umbraco的使用整理成系列,便于以后的记忆. Umbraco的所有信息,基本都可以在h ...
- GLView基本分析
GLView是cocos2d-x基于OpenGL ES的调用封装UI库. OpenGL本身是跨平台的计算机图形实现API,在每一个平台的详细实现是不一样.所以每次使用之前先要初始化,去设置平台相关的信 ...