暂无图片
如何删除recover状态的数据文件,归档和备份已经误删了
我来答
分享
ora_hub
2022-05-26
如何删除recover状态的数据文件,归档和备份已经误删了

一个表空间里面有10几个datafile, 其中3个变成recover状态了。 

尝试recover datafile 都不行。归档和备份已经删除了。怎么才能把这几个文件删掉。

这3个文件是别人新建的,应该没有存数据。


我来答
添加附件
收藏
分享
问题补充
9条回答
默认
最新
Root__Liu

11g的话,先确认asm磁盘空间够不够,在使用rman copy的方法,把数据文件恢复到asm里面。
简单过程如下:

--rman backup
backup as copy datafile 27 format '+datadg';
backup as copy datafile 28 format '+datadg';
backup as copy datafile 29 format '+datadg';

--offline数据文件
alter database datafile 27 offline;
alter database datafile 28 offline;
alter database datafile 29 offline;

--rman copy
switch datafile 27 to copy;
switch datafile 28 to copy;
switch datafile 29 to copy;

--rman 恢复
recover datafile 27;
recover datafile 28;
recover datafile 29;

--sqlplus online datafile
alter database datafile 27 online;
alter database datafile 28 onlien;
alter database datafile 29 onlien;
复制

12C的话,在线move就行。

 alter database move datafile '。。。' to '+datadg';
复制

再次提醒,,,,加asm表空间一定不能忘记+号

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
ora_hub
题主
2022-05-26
谢了,谢了 我赶紧试试。。
ora_hub
题主
2022-05-26
这几个文件 不知道他怎么加的,有71G大小。。。ram copy的话应该没空间放了。 asm空间本来就不够了,我可能先尝试加ASM磁盘了。
Root__Liu

先检查下,物理层面数据文件是不是被删掉了。

要删除的话,可以这么删除
ALTER DATABASE DATAFILE ‘’ OFFLINE DROP;

暂无图片 评论
暂无图片 有用 0
打赏 0
ora_hub
题主
2022-05-26
物理文件在,这个命令可以执行成功 ,就是查看v$datafile 这几个文件还是recover的状态
ora_hub

有个疑问,数据库我看了 没有开启归档模式,为啥还需要这个归档文件。。。

暂无图片 评论
暂无图片 有用 0
打赏 0
ora_hub


已经offline drop 了,还在呢

暂无图片 评论
暂无图片 有用 0
打赏 0
Root__Liu

图片不清晰看不清楚。

为什么数据文件的ONLINE_STATUS是RECOVER?通常是由于执行了 alter database datafile 1 offline drop导致,估计是因为添加数据文件时写错了名字或者是底层操作系统执行了删除,但是这个命令并不是真正的删除某个数据文件,而是把一个数据文件置于离线状态,并且需要恢复的目的。

我理解现在是数据文件已经是recover状态了,你online的时候提示让recover,但实际上归档也已经删掉了,所以不能从归档里面恢复过来数据。这个时候如果确定数据不需要恢复的话,可以考虑从它在的表空间删除掉。
ALTER TABLESPACE test DROP DATAFILE ‘’;

当然,最保险的做法,那就是导出表空间的数据,删除表空间(drop tablespace xxx including contents and datafiles),重建表空间在导入数据。或者move到其他表空间重建后在move回去。

暂无图片 评论
暂无图片 有用 0
打赏 0
ora_hub
题主
2022-05-26
本来是磁盘空间满了。他们加数据文件加在本地磁盘了,不是在ASM里面,这个yahuan好像还不是共享磁盘,所以加完就报数据文件不能访问了。 ALTER TABLESPACE test DROP DATAFILE ‘’; 这个我也尝试了 都不行
ora_hub


本来是磁盘空间满了。他们加数据文件加在本地磁盘了,不是在ASM里面,这个yahuan好像还不是共享磁盘,所以加完就报数据文件不能访问了。

ALTER TABLESPACE test DROP DATAFILE ‘’; 这个我也尝试了 都不行

暂无图片 评论
暂无图片 有用 0
打赏 0
Root__Liu
2022-05-26
你这个。。。。。属于故障了。
Root__Liu

是哪个版本,不同版本有不同的处理方法

暂无图片 评论
暂无图片 有用 0
打赏 0
ora_hub
题主
2022-05-26
linux6.3 , oracle 11.2.0.4 的rac环境
ora_hub
题主
2022-05-26
这个对asm加个磁盘有影响吗,现在没空间,也没法move到别的表空间。
Root__Liu

别赶紧试,,,,先研究下理解下原理,在找点经验看看,考虑下风险,如果空间不够先解决空间的问题,跟客户说下情况,最好申请个时间做。

暂无图片 评论
暂无图片 有用 0
打赏 0
ora_hub
题主
2022-05-26
嗯嗯 搜了一下,rac数据文件误加到本地,更改到asm的资料看下。 谢了!
ora_hub
题主
2022-05-26
好的 我研究下 rac误添加数据文件到本地,更改到asm的方法。谢谢
Root__Liu

这个情况,看你这几个数据文件写的那么整齐,应该是人为指定加到本地的,asm识别不到,但是控制文件里面有记录,所以是recover状态。

暂无图片 评论
暂无图片 有用 0
打赏 0
ora_hub
题主
2022-05-26
控制文件里 rename一下吧。我先研究看看吧。
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle not exists和not in等价转换
回答 2
已采纳
只有主查询和子查询关联字段都是not null的情况下, 二者才可以等价转换。 这种情况二者在性能上也是一样的(不包括一些复杂的写法)
table delete后,如何在线释放空间?有好的方法没?oracle9i环境
回答 3
已采纳
1,新建一个表,内容跟之前的一样,然后drop掉原来的表,再把新建的表给重命名;导出导入也可以2,shrink或者truncate可以试一下,不确定能不能释放空间和降低HWM
Oracle中commit的响应时间会随着事务的大小而改变吗?
回答 2
已采纳
通常情况下,commit是一个非常快的操作,其响应时间与事务大小无关。为什么commit的响应时间不会随着事务的大小而改变呢?这是因为在数据库中执行commit之前,困难的工作都已经做了,执行了如下操
有sqlite 转oracle的工具吗?
回答 1
已采纳
试试NavicatPremium
Oracle RAC的序列会出现冲突吗?
回答 2
不会冲突,但是如果没设置ORDER的话,可能会先出现数字大的再出现数据小的情况,原因和楼上摸摸鱼说的一样
Oracle 如果一个表的日期字段是nvarchar2类型的,格式是YYYYMMDD,实现按月自动建分区,可以实现吗?
回答 1
应该是不可以按月,可以按天。按月的话可以考虑建一个虚拟列来实现,参考下面:COLUMN6VIR number(6)GENERATEDALWAYSAS(SUBSTRB(COLUMN6,1,6)
Oracle中的表有8000多W左右行数, 建索引是不是只能选在线方式?
回答 2
已采纳
online会比较好一点。不然可能会出现nowait
awr出现大量** SQL Text Not Available **
回答 2
在Oracle数据库中,出现大量“SQLTextNotAvailable”的情况,通常是由于以下原因之一:共享池不足:共享池中的内存不足以存储所有的SQL文本和执行计划。尽管你提到CPU使用率较低,但
请教各位大神,最近业务反馈卡顿,可疑时间段的等待事件log file sync和enq: TM - contention
回答 4
看下AWR报告里面的topsql
老铁们,请教大家个问题,用当前用户执行noaudit的时候,报此策略未发现?
回答 1
这个审计策略定义了吗,如果是12c以上版本的多租户环境确认一下容器