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

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

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

目录
相关文章
|
6月前
|
SQL 数据库 数据安全/隐私保护
误删数据怎么办?
误删数据怎么办?
|
4月前
|
存储 安全 固态存储
删除的文件还能回来吗?当然可以!教你如何恢复
误删文件不必慌,恢复机会仍存在!删除的文件常被标记而非立即清除,故在新数据覆盖前,文件恢复是可能的。SSD例外,因其TRIM功能即时擦除。恢复步骤:检查回收站,利用系统恢复功能,或专业软件如DiskGenius扫描硬盘。及时行动,避免数据覆盖至关重要。预防最佳:定期备份,谨慎操作,启用安全防护,确保数据安全无忧。记得,预防优于事后恢复!🚀✨ (239 characters)
删除的文件还能回来吗?当然可以!教你如何恢复
|
5月前
|
SQL 算法 数据库
sql数据库表内容误删怎么恢复
当SQL数据库表的内容误删时,可以尝试以下方法来恢复数据: 首先,最佳的解决方案是使用数据库备份来恢复数据。这是一种重要的防备措施,可在数据意外删除时快速恢复。 1. **使用备份恢复**
C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
169 0
C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
|
关系型数据库 MySQL Linux
mysql数据库误删数据文件怎么处理?
MySQL数据库运行的时候误删了数据文件时的处理办法
951 0
如何恢复磁盘中被删除的数据
如何恢复磁盘中被删除的数据
573 0
如何恢复磁盘中被删除的数据
|
SQL Oracle 关系型数据库
Oracle 短时间内误删数据,如何快速找回?(UNDO)
首先,这个短时间内,通常是值 undo 段没有被覆盖,undo 保留的时间为多长呢? 1、需要看 undo_retention 的设置,默认为 900s,也就是 15 分钟。 2、需要看数据库的业务繁忙程度,如果1天切一个归档那种,3天前删的说不定都能用 UNDO 找回来。
|
Oracle 关系型数据库
|
安全
回收站恢复刚刚清理的文件
从回收站删除是非常常见的资料丢失现象。回收站恢复刚刚清理的文件下面简单介绍一种快速且安全恢复的方法。
838 0
|
数据库
即使删了全库,保证半小时恢复
近期一篇《就这样把根目录删了!!!》引发了广泛的讨论,《如何防止根目录被删》汇总了7种防删方案。还有同学评论中反馈“不小心把库删了”,如何快速恢复删掉的数据库,是今天要讨论的话题。
829 0