记录一起误删数据文件的临时救急处理

简介: 记录一起误删数据文件的临时救急处理

某项目扩展表空间后增加了一个数据文件,出现数据库无法连接的情况,项目人员联系主机硬件厂家,对方发了几个图片说空间不足了,项目人员于是说按照对方说法在主机删除了对应数据文件,这次更无法启动数据库了,,,,,真是无知者无畏,对方敢让删数据文件,项目人员也赶删,实在是无语至极!
这个表空间已有53个数据文件,这次按序号增加的是54号数据文件,之后又在os层面执行了rm操作,且重启了主机,恢复这个文件是基本没有希望了。
查看数据库日志,如下:

Fri Jan 21 16:46:00 2022
ALTER TABLESPACE UNIREPORT ADD DATAFILE '/tybb1db/UNIREPORT54' SIZE 30G
Fri Jan 21 16:49:01 2022
Completed: ALTER TABLESPACE UNIREPORT ADD DATAFILE '/tybb1db/UNIREPORT54' SIZE 30G
Fri Jan 21 16:49:30 2022
ALTER TABLESPACE UNIREPORT ADD DATAFILE '/tybb1db/UNIREPORT55' SIZE 30G

可见在数据库看来,已经正常添加了这个30G的数据文件,只是此后无法进行连接了。
于是删除了这个数据文件,就无法启动数据库了,如下:

Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Picked latch-free SCN scheme 3
Fri Jan 21 18:03:21 2022
Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST
Autotune of undo retention is turned on.
IMODE=BR
ILAT =250
LICENSE_MAX_USERS = 0
SYS auditing is disabled

Fri Jan 21 18:09:04 2022
Starting background process SMCO
Fri Jan 21 18:09:04 2022
SMCO started with pid=24, OS id=3816
Fri Jan 21 18:10:00 2022
Checker run found 1 new persistent data failures
Fri Jan 21 18:12:33 2022
Starting ORACLE instance (normal)
Fri Jan 21 18:13:26 2022
Errors in file /home/oracle/oracle11g/diag/rdbms/orcl/orcl/trace/orcl_m000_3962.trc:
ORA-01116: error in opening database file 75
ORA-01110: data file 75: '/tybb1db/UNIREPORT54'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Fri Jan 21 18:17:04 2022
Starting ORACLE instance (normal)
Fri Jan 21 18:23:27 2022
Errors in file /home/oracle/oracle11g/diag/rdbms/orcl/orcl/trace/orcl_m000_4353.trc:
ORA-01116: error in opening database file 75
ORA-01110: data file 75: '/tybb1db/UNIREPORT54'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Fri Jan 21 18:33:27 2022
Errors in file /home/oracle/oracle11g/diag/rdbms/orcl/orcl/trace/orcl_m000_5198.trc:
ORA-01116: error in opening database file 75
ORA-01110: data file 75: '/tybb1db/UNIREPORT54'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

接电话后,经过了解,知悉项目每天的自动异地备份是晚间执行的,数据泵导出了主要数据,这一点还是按要求做了,值得肯定。有了这个就心中有底,不至于出现极端无法恢复系统的情况。
登录系统,确认该库是非归档模式,部署在虚机上,单节点单实例。
直接启动到mount模式,offline drop这个数据文件,然后直接open库,如下:

startup mount
alter database datafile '/tybb1db/UNIREPORT54' offline drop;
alter database open;

但此时在数据库的字典数据里,还是可见这个数据文件的,由于急于恢复业务,暂时没法直接删除这个文件,如下:

ALTER TABLESPACE UNIREPORT DROP DATAFILE '/tybb1db/UNIREPORT54';
*
ERROR at line 1:
ORA-03264: cannot drop offline datafile of locally managed tablespace

此时可以正常的读写库,如果之前没有这个54号文件写数据,理论上是不会报错的,除非需要用到这个54号文件。
如果非得要删除这个54号数据文件,只能online之后,再执行tablespace层面的删除操作,只好先这样吧。

目录
相关文章
|
7月前
|
SQL 数据库 数据安全/隐私保护
误删数据怎么办?
误删数据怎么办?
|
4月前
|
存储 缓存 安全
C盘满了怎么清理垃圾而不误删
电脑使用时间久了,很多用户都会遇到C盘空间不足的问题。C盘存储系统文件和一些重要程序,一旦空间过满,不仅会影响系统运行速度,还可能导致电脑崩溃。所以,及时清理C盘垃圾是很有用的。但在清理过程中,我们要小心谨慎,以免误删重要文件。接下来,我将为大家介绍如何在不误删重要文件的前提下,清理C盘垃圾,释放空间。
C盘满了怎么清理垃圾而不误删
|
6月前
|
SQL 算法 数据库
sql数据库表内容误删怎么恢复
当SQL数据库表的内容误删时,可以尝试以下方法来恢复数据: 首先,最佳的解决方案是使用数据库备份来恢复数据。这是一种重要的防备措施,可在数据意外删除时快速恢复。 1. **使用备份恢复**
C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
175 0
C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
|
关系型数据库 MySQL Linux
mysql数据库误删数据文件怎么处理?
MySQL数据库运行的时候误删了数据文件时的处理办法
960 0
如何恢复磁盘中被删除的数据
如何恢复磁盘中被删除的数据
588 0
如何恢复磁盘中被删除的数据
|
安全
回收站恢复刚刚清理的文件
从回收站删除是非常常见的资料丢失现象。回收站恢复刚刚清理的文件下面简单介绍一种快速且安全恢复的方法。
846 0
|
SQL 数据库
数据库页已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。
错误提示: 消息 829,级别 21,状态 1,第 1 行 数据库 ID 15,页 (1:21826) 已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。 引起原因: RestorePending一般是在进行页恢复的过程中出现的,就是在进行了restore操作之后但还没有进行recovery操作之前页的状态。
2525 0
|
监控 数据库 数据库管理
仅仅1首歌的时间,找回误删数据
1首歌的时间能干什么?可以等个红绿灯,也可以走个神,你还可以找回误删的数据。
1441 0
下一篇
DataWorks