Oracle 学习之RMAN(十三)恢复实战--数据块修复
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,在很多情况下,数据库只是某个数据文件的些许数据块发生损坏。这种情况,我们当然可是使用数据库恢复或者数据文件恢复的方式来解决问题。但是有点高射炮打蚊子的感觉。幸好RMAN提供了块级别的恢复。下面我们来演
千家信息网最后更新 2025年11月07日Oracle 学习之RMAN(十三)恢复实战--数据块修复
在很多情况下,数据库只是某个数据文件的些许数据块发生损坏。这种情况,我们当然可是使用数据库恢复或者数据文件恢复的方式来解决问题。但是有点高射炮打蚊子的感觉。幸好RMAN提供了块级别的恢复。下面我们来演示一下。
1. 创建一个表空间,大小小一点。
SQL> conn / as sysdbaConnected.SQL> create tablespace tbs_blkerr datafile '/u01/app/oracle/oradata/devdb/blkerr01.dbf' size 128K;Tablespace created.
2. 在这个表空间上创建一个表,并且装满数据。
SQL> create table emp_blk tablespace tbs_blkerr as select * from scott.emp;Table created.SQL> insert into emp_blk select * from scott.emp;14 rows created.SQL> /14 rows created.。。。。SQL> insert into emp_blk select * from scott.emp;insert into emp_blk select * from scott.emp*ERROR at line 1:ORA-01653: unable to extend table SYS.EMP_BLK by 8 in tablespace TBS_BLKERRSQL> commit;Commit complete.SQL> select count(*) from emp_blk; COUNT(*)---------- 686SQL>
3. 备份该表空间或者数据文件。
RMAN> backup datafile '/u01/app/oracle/oradata/devdb/blkerr01.dbf';Starting backup at 2015/07/09 10:30:11using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00007 name=/u01/app/oracle/oradata/devdb/blkerr01.dbfchannel ORA_DISK_1: starting piece 1 at 2015/07/09 10:30:11channel ORA_DISK_1: finished piece 1 at 2015/07/09 10:30:12piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_nnndf_TAG20150709T103011_bsvq5mw9_.bkp tag=TAG20150709T103011 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/09 10:30:12
4. 使用vi编辑数据文件blkerr01.dbf,对文件尾部做稍微的修改
SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 839282688 bytesFixed Size 2233000 bytesVariable Size 553651544 bytesDatabase Buffers 281018368 bytesRedo Buffers 2379776 bytesDatabase mounted.ORA-01157: cannot identify/lock data file 7 - see DBWR trace fileORA-01110: data file 7: '/u01/app/oracle/oradata/devdb/blkerr01.dbf'RMAN> restore datafile 7;Starting restore at 2015/07/09 10:36:25using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=20 device type=DISKchannel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/devdb/blkerr01.dbfchannel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_nnndf_TAG20150709T103011_bsvq5mw9_.bkpchannel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_nnndf_TAG20150709T103011_bsvq5mw9_.bkp tag=TAG20150709T103011channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:01Finished restore at 2015/07/09 10:36:27RMAN> recover datafile 7;Starting recover at 2015/07/09 10:36:40using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:00Finished recover at 2015/07/09 10:36:41
此次修改破坏了文件的头部,发生了意外。(也可能是编辑datafile时,没有关闭数据库)我们先恢复数据文件。再次编辑文件。
此实验始终没有做成功,后续有时间再研究。
恢复的方法如下:
RMAN TARGET / BLOCKRECOVER DATAFILE 12 BLOCK 12;
数据
文件
数据库
空间
情况
意外
再次
只是
备份
大小
头部
尾部
感觉
方式
方法
时间
级别
蚊子
问题
高射炮
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
rtmp拉流会增加服务器压力吗
网络安全90后演讲
服务器管理网口浪潮
中医案例数据库
设置主码和外码数据库
济宁电商软件开发外包公司有哪些
数据库漏洞扫描技术
自动生成数据库表关系工具
江阴智能化软件开发创造辉煌
如何进入网络安全局
创建数据库软件
数据库归档法是sql的问题吗
服务器虚拟化解决方案模板
2021泰山杯网络安全
向日葵电脑版无法连接服务器
自己的数据库
福娃网络技术WF解码
群视频连接服务器失败
苏州戴尔服务器数据分析
方舟端游怎么自己免费创建服务器
多媒体数据库技术ppt
金铲铲之战是外网的服务器吗
三维安防管理平台系统数据库设计
白马网络技术工作室
网络技术的迅速发展
服务器插上u盘后就启动不起来
数据库加字段会影响服务运行吗
如何在电脑查阅图书数据库
51星变服务器维护
手机网络服务器