Orale数据文件加错位置,你直接rm引发的故障

news/2025/3/11 9:17:42/

数据库可能面临硬件故障、人为错误、恶意攻击、自然灾害等多种潜在风险,那么今天这个故障就是由于业务人员加错数据文件的位置,然后直接从物理层面rm -f了,导致了生产的故障!

以下是针对Oracle数据库物理删除数据文件后的快速修复处理方案,结合实战场景与核心操作步骤

1.紧急处理

禁止重启数据库:若数据文件被删除但数据库仍处于OPEN状态,立即停止所有可能触发数据写入的操作(如DDL、DML),避免数据块覆写。

确认文件状态:
SELECT file#, name, status FROM 
v$datafile WHERE name = '[被删除文件路径]';若状态为ONLINE,
文件句柄可能仍存在于内存中,可通过进程恢复。

2.快速恢复流程

场景1:数据库未关闭,文件句柄存活

1.定位进程文件描述符
查找DBWR进程(如ora_dbw0_[SID])的PID:
ps -ef | grep dbw0
进入进程文件目录,
查找被删除文件的描述符编号(如/proc/3318/fd):
ls -l /proc/[PID]/fd | grep [被删除文件名]
复制文件描述符到原路径:
cp /proc/[PID]/fd/[描述符编号] /原路径/文件名.dbf2.恢复文件权限
chown oracle:oinstall /原路径/文件名.dbf3.数据库层面修复
ALTER DATABASE DATAFILE '[文件路径]' OFFLINE;
RECOVER DATAFILE '[文件路径]';
ALTER DATABASE DATAFILE '[文件路径]' ONLINE;

场景2:数据库关闭关文件句柄丢失

1.RMAN全量恢复
RMAN> STARTUP MOUNT;
RMAN> RESTORE DATAFILE [文件编号];
RMAN> RECOVER DATAFILE [文件编号];
RMAN> ALTER DATABASE OPEN;2.增量备份恢复
RMAN> RECOVER DATAFILE [文件编号] 
UNTIL TIME 'YYYY-MM-DD HH24:MI:SS';

场景3 无备份的极端情况

尝试从归档日志重建数据文件,需ALTER DATABASE CREATE DATAFILE命令配合完整归档链。

3.正确的操作步骤

当我们加错数据文件的位置时,一般会导致备份的失败,所以从alert日志中看到有如下报错
ERROR at line 1:ORA-01157: cannot identify/lock data file 34 - see DBWR trace file

大多数发生在ASM磁盘的文件给加到了本地,正确的操作步骤如下:

sql>alter database datafile 34 offline;
rman> backup as copy 
datafile 34 format '+data';
rman> switch datafile 34 to copy;
sql>recover datafile 34;
sql>alter database datafile 34 online;

4.典型报错

ORA-01157: cannot identify/lock data file
检查文件权限与路径是否正确,使用chown修正所有权。

ORA-27041: unable to open file
确认文件是否被彻底删除,尝试从备份或/proc恢复

总结

通过上述方案,可在10分钟内恢复90%以上的物理删除事故,结合预防措施可将风险降低95%以上。建议定期进行“删除数据文件”灾难演练,确保团队熟悉应急流程。


http://www.ppmy.cn/news/1578304.html

相关文章

升级到碳纤维齿轮是否值得?

引言:当齿轮开始“减肥” 在F1赛车的变速箱里,一个齿轮的重量减轻100克,就能让圈速提升0.1秒; 在无人机旋翼传动系统中,轻量化齿轮可延长续航时间15%; 甚至在高端机械腕表中,碳纤维齿轮的引入…

优选算法系列(1. 双指针_上)

目录 双指针 一:移动零(easy) 题目链接:移动零 解法: 代码: 二:复写零(easy) 题目链接:复写零 ​编辑 解法: 代码: 三:快乐…

利用阿里云Atlas地区选择器与Plotly.js实现数据可视化与交互

在数据科学与可视化领域,交互式图表和地图应用越来越成为数据分析和展示的重要手段。本文将介绍如何结合阿里云Atlas地区选择器与Plotly.js,创建动态交互式的数据可视化应用。 一、阿里云Atlas地区选择器简介 阿里云Atlas是阿里云的一款数据可视化产品…

jenkins+ant+jmeter生成的测试报告空白

Jenkins能正常构建成功,但是打开Jenkins上的测试报告,则显示空白 在网上找了很多文章,结果跟别人对比测试报告的配置,发现自己跟别人写的不一样 所以跟着别人改,改成一样的再试试 结果,好家伙&#xff0…

游戏引擎学习第143天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾并规划今天的内容 目前,我们正在进行声音混合的开发。我们已经写好了声音混合器,并且已经实现了一些功能,比如声音流播放和音量插值。过去一周我们做了很多工作,进展非常快。不…

vue3 + xlsx 实现导入导出表格,导出动态获取表头和数据

封装 xlsx.ts 文件 npm i xlsx element-plusimport * as XLSX from "xlsx"; import { ElMessageBox, ElMessage } from "element-plus";/*** 导出表格数据为 Excel 文件,自动匹配 el-table 或 vxe-table 表头和数据字段* element-plus 2.7.6 版…

解锁DeepSpeek-R1大模型微调:从训练到部署,打造定制化AI会话系统

目录 1. 前言 2.大模型微调概念简述 2.1. 按学习范式分类 2.2. 按参数更新范围分类 2.3. 大模型微调框架简介 3. DeepSpeek R1大模型微调实战 3.1.LLaMA-Factory基础环境安装 3.1大模型下载 3.2. 大模型训练 3.3. 大模型部署 3.4. 微调大模型融合基于SpirngBootVue2…

基于PyTorch的深度学习——机器学习1

监督学习是最常见的一种机器学习类型,其任务的特点就是给定学习目标,这个学习目标又称标签、标注或实际值等,整个学习过程就是围绕如何使预测与目标更接近而来的。近些年,随着深度学习的发展,分类除传统的二分类、多分…