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

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

某项目扩展表空间后增加了一个数据文件,出现数据库无法连接的情况,项目人员联系主机硬件厂家,对方发了几个图片说空间不足了,项目人员于是说按照对方说法在主机删除了对应数据文件,这次更无法启动数据库了,,,,,真是无知者无畏,对方敢让删数据文件,项目人员也赶删,实在是无语至极!
这个表空间已有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层面的删除操作,只好先这样吧。

目录
相关文章
|
3月前
|
SQL 数据库 数据安全/隐私保护
误删数据怎么办?
误删数据怎么办?
|
12月前
|
SQL 安全 关系型数据库
需要binlog的场景下,“暴力”干掉历史binlog文件,尽情释放磁盘空间
需要binlog的场景下,“暴力”干掉历史binlog文件,尽情释放磁盘空间
|
12月前
|
SQL 安全 关系型数据库
正确、安全的手动删除历史binlog,尽情释放磁盘空间。
正确、安全的手动删除历史binlog,尽情释放磁盘空间。
269 0
C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
127 0
C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
|
关系型数据库 MySQL Linux
mysql数据库误删数据文件怎么处理?
MySQL数据库运行的时候误删了数据文件时的处理办法
737 0
如何恢复磁盘中被删除的数据
如何恢复磁盘中被删除的数据
525 0
如何恢复磁盘中被删除的数据
|
存储 运维 关系型数据库
十年难得一遇!从数据误删到全量恢复的惊险记录
线上的数据库服务我们有完善的备份策略和恢复预案,数据即使被误删除了也是能够恢复的,误删除的数据量恢复只是时间问题。但各位同学自己部署的测试环境或者是在自己电脑中的开发环境的数据库就没有同级别的资源保障了。如果恰好你又把一些不能丢失的数据放到了这种环境中,那么建议要做定期备份,有备才能无患。
|
安全
回收站恢复刚刚清理的文件
从回收站删除是非常常见的资料丢失现象。回收站恢复刚刚清理的文件下面简单介绍一种快速且安全恢复的方法。
798 0
|
数据库
即使删了全库,保证半小时恢复
近期一篇《就这样把根目录删了!!!》引发了广泛的讨论,《如何防止根目录被删》汇总了7种防删方案。还有同学评论中反馈“不小心把库删了”,如何快速恢复删掉的数据库,是今天要讨论的话题。
792 0
|
SQL 数据库
数据库页已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。
错误提示: 消息 829,级别 21,状态 1,第 1 行 数据库 ID 15,页 (1:21826) 已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。 引起原因: RestorePending一般是在进行页恢复的过程中出现的,就是在进行了restore操作之后但还没有进行recovery操作之前页的状态。
2412 0