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

[经验分享] oracle数据文件被误删除后的灾难处理方法

[复制链接]

尚未签到

发表于 2016-8-4 11:24:17 | 显示全部楼层 |阅读模式
  010-06-18 17:47
oracle数据文件被误删除后的灾难处理方法
key:oracle数据文件(datafile)被误删除后没有恢复的办法,只能把该数据文件offline后drop掉,并删除整个表空间。
steps:
当Oracle数据文件被误删除之后的处理办法!!
1、关闭数据库:
?? sqlplus "/as sysdba";
?? sqlplus>shutdown abort;
2、装载数据库
?? sqlplus>startup mount;
3、删除无效的数据库文件
?? sqlplus>alter database datafile '/home/oracle/survey/survey.dbf' offline drop
?? sqlplus>alter database datafile '/home/oracle/survey/surveytemp.dbf' offline drop
4、打开数据库
  sqlplus>alter database open;
5、删除无效的表空间
?? sqlplus> drop tablespace surevy including contents;
?? sqlplus> drop tablespace surevytemp including contents;
??
  ---dtl----
  表空间 GTI40_DATA01 数据文件GTI40_DATA01.dbf被我删除了
我再运行drop tablespace qwer
会报错
  
ORA-01116: 打开数据库文件48时出错
ORA-01110: 数据文件 48: '/data/GTI40_DATA01.dbf'
ORA-27041: 无法打开文件
Linux Error: 2: No such file or directory
Additional information: 3
  我怎么才能删除这个表空间
现在我无法在建立这个空间(在线等急!!!!!!!!)
  
简单的问题搞这么复杂?
按下面步骤做即可:
1.shutdown immediate
2.startup mount
3.alter database datafile 'xxx' offline drop;
4.alter database open
5.drop tablespace xxxx including contents and datafiles;
  先说明一下alter database datafile ... offline drop:
  在非归档模式下,可以使用... offline drop,在归档模式下,使用... offline. 这个命令的意思并不是从表空间将这个数据文件彻底删除,而是说将这个数据文件“冻结”住:它的scn不在变化,不会再向它写入任何数据;但是原有存在这个文件中对象和数据还可以继续使用。因此在使用这个命令后,通过修改控制文件将它删除,数据库在启动时就会报文件丢失的错误,并且会在数据字典中产生一个MISGXXXXX的纪录。因此,以一个数据文件是无法被直接从数据库中删除掉的。
  如果需要减少表空间的数据文件,可以采用以下办法:
  export除表空间的内容:exp ... tablespaces=xxx;
  使用include content子句删除表空间:drop tablespace xxx include content;
  重见表空间,使之不包括需要去除掉的数据文件;
  import表空间的所有数据对象。
  re: 彻底将一个数据文件从表空间中删除 [回复]
呵呵,在10g R2的drop empty datafile之前,事实上是无法对单个数据文件进行删除的,除非你更改数据字典或者将表空间删除。如果按你上面的步骤操作,你查dba_data_files里面肯定会有那个数据文件的记录,只是标识为D:ORACLEORA92DATABASEMISSING00005这类的文件,事实上是由于你将控制文件中该数据文件的信息删除掉了,而数据字典里面还有该文件的信息,现在对应不上,因此标识为这种奇怪的文件名,表示该数据文件需要恢复的。
  
当Oracle数据文件被误删除之后的处理办法!!
1、关闭数据库:
?? sqlplus "/as sysdba";
?? sqlplus>shutdown abort;
2、装载数据库
?? sqlplus>startup mount;
3、删除无效的数据库文件
?? sqlplus>alter database datafile '/home/oracle/survey/survey.dbf' offline drop
?? sqlplus>alter database datafile '/home/oracle/survey/surveytemp.dbf' offline drop
4、打开数据库
  sqlplus>alter database open;
5、删除无效的表空间
?? sqlplus> drop tablespace surevy including contents;
?? sqlplus> drop tablespace surevytemp including contents;
??
??
good:
oracle数据文件被误删除后的灾难处理方法- -
Tag: oracle??? datafile??? 数据文件??? 误删除??? 灾难??????????????????????????????????????????
环境:Red Hat Linux 7.2 SMP
数据库:Oracle 8.1.7
  起因,一同事建立了一个表空间并建立一张表后发现表空间未用到直接删除了那个数据文件.其操作如下:
create tablespace r_csh_20051001 datafile '/webdata/dbdata/ry/csh20051001.dat' size 50M autoextend on next 500M default storage (initial 10m NEXT 10m MINEXTENTS 1 PCTINCREASE 0);
create table r_csh(
????? UsedDate?? char(26) default '',
????? CardNumber char(26) default '',
????? UserNumber char(16) default '',
????? Credit???? number(5) default 0,
????? UserArea?? number(6) default 0,
????? CardArea?? number(6) default 0,
????? ValiDdate char(26) default ''
);
  rm /webdata/dbdata/ry/csh20051001.dat
经过这一操作后,数据库出现连接失败,发现数据库已经停止了.
查看oracle的log显示:
  Errors in file /oracle/admin/webdb/bdump/ckpt_31638.trc:
ORA-01110: data file 63: '/webdata/dbdata/ry/csh20051001.dat'
ORA-01115: IO error reading block from file 63 (block # 1)
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode
ORA-01116: error in opening database file 63
ORA-01110: data file 63: '/webdata/dbdata/ry/csh20051001.dat'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
Fri Oct 21 15:31:47 2005
CKPT: terminating instance due to error 1242
Instance terminated by CKPT, pid = 31638
Fri Oct 21 15:55:09 2005
  想要把oracle重新启动,发现也启动不了:
  SQL> shutdown immediate;
SQL> startup;
ORACLE instance started.
  Total System Global Area?? 40104096 bytes
Fixed Size??????????????????? 73888 bytes
Variable Size????????????? 23080960 bytes
Database Buffers?????????? 16777216 bytes
Redo Buffers???????????????? 172032 bytes
Database mounted.
ORA-01122: database file 63 failed verification check
ORA-01110: data file 63: '/webdata/dbdata/ry/csh20051001.dat'
ORA-01251: Unknown File Header Version read for file number 63
  分析问题:
因为数据文件在没有被offline的情况下实物理删除了,导致oracle的数据不一致,因此启动失败.
  解决方法:
lsnrctl stop
sqlplus internal
SQL> shutdown abort
SQL> startup mount
SQL> alter database datafile '/webdata/dbdata/ry/csh20051001.dat' offline drop;
SQL> alter database open;
SQL> drop tablespace r_csh_20051001;
lsnrctl start
  其中省略了屏幕输出内容.
  小结:oracle数据文件(datafile)被误删除后没有恢复的办法,只能把该数据文件offline后drop掉
  这是我们的实际操作记载!

运维网声明 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-252701-1-1.html 上篇帖子: ORACLE 安装时的密码忘记了的处理方式 下篇帖子: oracle 10g 新特性 大文件表空间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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