DM8官网文档链接:查看表空间文件失效检查
关于查看表空间文件失效检查部分,缺少一定流程。于是自己尝试了下这个步骤。

新建表空间ts_recover

CREATE TABLESPACE TS_RECOVER
DATAFILE
'/dm/data/DAMENG/ts_recover01.dbf' SIZE 128;

select GROUP_ID,PATH,STATUS$,RW_STATUS,LAST_CKPT_TIME,MODIFY_TIME from v$datafile where PATH like '%ts_recover%';

创建后查询下表空间数据文件的状态。
在这里插入图片描述

建一个测试表,并插入数据,确认数据存在。

CREATE TABLE T_RECOVER
(
    ID INT,
    NAME VARCHAR(50)
)
STORAGE(ON TS_RECOVER);

INSERT INTO T_RECOVER
SELECT LEVEL,
       'TEST'
FROM dual CONNECT BY LEVEL<=10000;

COMMIT;

在这里插入图片描述

第一步:删除文件(建议备份)

rm /dm/data/DAMENG/ts_recover01.dbf

删除前后对比,可以发现STATUS$字段已经从1转到0,代表该表空间文件已经脱机了。并且查询表数据也报错。

在这里插入图片描述
第二步、准备恢复

CALL SP_TABLESPACE_PREPARE_RECOVER('TS_RECOVER');

在这里插入图片描述
第三步、Linux 恢复文件

#先查出pid
ps -ef | grep dmserver
#把pid填入,找到删除的文件标记号
ls -l /proc/<pid>/fd | grep deleted
#把文件标记号和pid分别填入xx和<pid>,拷贝回去
cp /proc/<pid>/fd/xx /dm/data/DAMENG/ts_recover01.dbf

在这里插入图片描述

第四步、执行恢复

CALL SP_TABLESPACE_RECOVER('TS_RECOVER');

恢复后可以看到,表空间文件STATUS$变成1代表online状态了。
在这里插入图片描述

社区地址:https://eco.dameng.com

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐