设为首页 收藏本站
查看: 604|回复: 0

[经验分享] ORACLE 删除数据文件模拟灾难恢复

[复制链接]

尚未签到

发表于 2015-12-19 07:42:59 | 显示全部楼层 |阅读模式
    今天做了一个实验,先创建表空间及数据文件,然后在操作系统下删除该表空间的数据文件(前提是该表空间已经备份了,方便恢复)。
STEP1: 创建表空间 ,数据文件, 用户并赋权:

  • SQL> create tablespace TBS1 datafile \'/u01/app/oradata/ORCL/df1.dbf\' size 5M autoextend on next 2M maxsize 100M;  

  • SQL> create user test identified by test default tablespace TBS1;  
  • SQL> GRANT DBA TO TEST WITH ADMIN OPTION;
STEP2: 创建表并插入数据

  • SQL> conn TEST/TEST;  

  • SQL> create table t1(id int, name varchar2(20));  
  • SQL> begin  
  • 2 for i in 1..200000 loop  
  • 3 insert into t1 values(i,\'AAA\'||i);  
  • 4 end loop;  
  • 5 end;  
  • 6 /
  
  
STEP3: 用RMAN备份数据(非归档模式不能用RMAN备份数据的)
              RMAN> backup tablespace TBS1 format  '/home/oracle/db_backup/TBS1_20150121:1037.bak';
STEP4: 删除新建表空间下的数据文件
              [oracle@REDHAT6 ORCL]$ mv df1.dbf df2.dbf.bak
SETP5: 关闭数据库,重新启动数据,问题来了

  • SQL> shutdown immediate;  

  • SQL> startup  
  •   

  • ORACLE instance started.  
  • Total System Global Area  889389056 bytes  
  • Fixed Size 2233480 bytes  
  • Variable Size 494930808 bytes  
  • Database Buffers 385875968 bytes  
  • Redo Buffers     6348800 bytes  
  • Database mounted.  
  • ORA-01157: cannot>/lock data file 6 - see DBWR trace file  
  • ORA-01110: data file 6: \'/u01/app/oradata/ORCL/df1.dbf\'
  
  
下面来解决上面的问题:
step1: 开启数据库处于mount状态, 使文件 6 脱机(6指的是上面删除的数据文件df1.dbf),并开启数据库

  

  • SQL> select status from v$instance;  

  • STATUS  
  • ------------  
  • MOUNTED  
  •   
  • SQL> alter database datafile 6 offline;  
  •   
  • SQL> alter database open;  
  • Database>.  
  •   
  • SQL> select status from v$instance;  
  • STATUS  
  • ------------  
  • OPEN
STEP2: 查看数据文件及表空建状态  
  
              SQL> SELECT FILE_ID, FILE_NAME,STATUS, ONLINE_STATUS FROM DBA_DATA_FILES;
               DSC0000.jpg

  
             SQL> SELECT TABLESPACE_NAME,STATUS FROM DBA_TABLESPACES;
              DSC0001.jpg
STEP3: 恢复备份数据
              RMAN> list backup of tablespace TBS1;
                 DSC0002.jpg
              RMAN> restore tablespace TBS1;
                   DSC0003.jpg
                由于是测试环境,没有修改数据(即没有脏块),所以没有   recover tablespace TBS1;
STEP4: 数据文件联机

  • SQL> alter database datafile 6 online;
  
  
OK 到此结束,数据文件恢复完成!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-153139-1-1.html 上篇帖子: ORACLE SQL一条语句同时插入多个表 下篇帖子: 学习Oracle推荐值得你看的书籍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表