datafile online_status 状态是 recover ,怎么办?

dba_data_files 检查数据文件,发现ONLINE_STATUS的值是recover,该怎么办?

select tablespace_name,file_name,autoextensible,
online_status,bytes from dba_data_files;

在这里插入图片描述
为什么数据文件的ONLINE_STATUS是RECOVER?通常是由于执行了 alter database datafile 3 offline drop导致,估计是因为添加数据文件时写错了名字或者是底层操作系统执行了删除,数据库重启打不开了,但是这个命令并不是真正的删除某个数据文件,而是把一个数据文件置于离线状态,并且需要恢复的目的(recover的含义就已经说明了意图)才用到。 数据文件的相关信息还会存在数据字典和控制文件中。

处于recover状态的,如果确认的确不要了,上面没有业务数据(判断方法往后看),那就导出整个表空间的数据,删除表空间重建,然后再导入。或者将表空间上的其他对象move到另外一个表空间上,再删除这个表空间。

总之,对数据文件的删除,应该通过表空间层面的命令来进行,例如:

ALTER TABLESPACE example DROP DATAFILE '+DG1/exam3.dbf';

如果是归档模式下,而且发生此情况不久(1天以内),可以尝试用以下命令恢复正常:

alter database recover datafile 3; 
alter database datafile 3 online;

从头梳理一下相关知识点:
1、看看alter database命令的语法:

在这里插入图片描述
在这里插入图片描述
标准命令应该是:
在这里插入图片描述
offline或drop的作用是:
在这里插入图片描述

2、再看一下删除datafile的限制:
在这里插入图片描述
3、再看一下dba_data_files 的ONLINE_STATUS字段的几种状态:
在这里插入图片描述
4、删除表空间的注意事项:
在这里插入图片描述
在这里插入图片描述
命令语法:

DROP TABLESPACE users INCLUDING CONTENTS;

在这里插入图片描述

DROP TABLESPACE users INCLUDING CONTENTS AND DATAFILES;

5、确定数据文件是否为空

SELECT distinct b.owner, b.segment_name
FROM dba_data_files a,
     dba_extents b
WHERE a.file_id = b.file_id
AND a.tablespace_name ='&tablespace_name'
AND a.file_name ='&datafile_name';

6、确认表空间中是否有回收站内容

SELECT original_name, type, ts_name, can_purge
FROM dba_recyclebin
WHERE ts_name='&tablespace_name'

7、处于recover状态会有什么影响?
1)此文件中的信息不可访问,如果有的话
2)重启实例不会起不来,告警日志会有异常提示
3)rman备份需要加skip,例如 backup database skip inaccessible;
4)看着难受

结束。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: xfs_recover是一个用于修复XFS文件系统的工具。使用方法如下: 1. 以root用户身份登录系统 2. 将硬盘挂载到/mnt目录下 3. 运行xfs_repair -n /mnt/硬盘分区 4. 根据提示输入y确认修复或n取消修复。 注意:在运行xfs_repair之前,请确保硬盘分区没有被挂载,并且在修复过程中不要对硬盘分区进行操作。 ### 回答2: xfs_recover是XFS文件系统的一个命令,用于恢复XFS文件系统中由于异常情况导致的损坏或不一致的数据。下面是使用xfs_recover的步骤: 1. 首先,确保系统上已经安装了XFS工具包,否则需要先安装。 2. 打开终端窗口,并以管理员身份登录。 3. 输入以下命令以查看需要恢复的文件系统的状态: ```shell xfs_db -x /dev/xxx ``` 这里的`xxx`是需要恢复的文件系统的路径,比如`/dev/sda1`。 4. 在xfs_db命令提示下,输入以下命令来关闭文件系统,以便进行恢复操作: ```shell f ``` 5. 关闭文件系统后,可以使用xfs_recover进行恢复操作。输入以下命令: ```shell xfs_recover /dev/xxx ``` 这里的`xxx`是需要恢复的文件系统的路径。 6. 系统会开始扫描文件系统,并尝试恢复损坏或不一致的数据。这个过程可能需要一些时间,具体时间取决于文件系统的大小和数据损坏的程度。 7. 当恢复过程完成后,您应该会看到一条消息显示恢复操作已经成功完成。 8. 最后,重新挂载文件系统以使其可访问: ```shell mount -o rw /dev/xxx /mnt/xxx ``` 这里的`xxx`是需要恢复的文件系统的路径,`/mnt/xxx`是文件系统重新挂载的目标路径。 请注意,在进行恢复操作之前,请务必备份文件系统中的重要数据,以防止数据丢失。此外,如果您对使用xfs_recover不确定或不熟悉,请咨询专业人员的建议。 ### 回答3: xfs_recover是一个用于恢复XFS文件系统的命令行工具。它用于修复文件系统损坏、不一致或丢失的数据,并在可能的情况下尽可能地恢复文件系统的正常状态。 使用xfs_recover需要在root用户下执行以下步骤: 1. 首先,确认文件系统是否已经挂载。如果已挂载,则需要卸载文件系统。可以使用umount命令来卸载文件系统。 例如:umount /dev/sda1 2. 使用以下命令执行文件系统恢复操作: xfs_recover /dev/sda1 这里的/dev/sda1是要恢复的文件系统所在的设备。 3. 在恢复过程中,xfs_recover会扫描文件系统的元数据,找到损坏的区域并尝试修复它们。恢复过程可能需要一段时间,取决于文件系统的大小和损坏的程度。在恢复过程中,xfs_recover会输出一些日志信息,以告知用户当前的恢复进度。 4. 完成恢复后,可以重新挂载文件系统,并查看其状态是否恢复正常。可以使用mount命令来重新挂载文件系统。 例如:mount /dev/sda1 /mnt 需要注意的是,xfs_recover可以修复大多数常见的文件系统损坏问题,但并不能保证100%的恢复成功。在执行之前,建议先备份重要的数据。 总结起来,xfs_recover是一个用于修复损坏的XFS文件系统的命令行工具,通过简单的几个步骤,可以尝试恢复文件系统的正常状态

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值