记录一起误删数据文件的临时救急处理
处理 记录 临时 一起 数据文件 误删 救急
2023-06-13 09:13:52 时间
某项目扩展表空间后增加了一个数据文件,出现数据库无法连接的情况,项目人员联系主机硬件厂家,对方发了几个图片说空间不足了,项目人员于是说按照对方说法在主机删除了对应数据文件,这次更无法启动数据库了,,,,,真是无知者无畏,对方敢让删数据文件,项目人员也赶删,实在是无语至极!
这个表空间已有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层面的删除操作,只好先这样吧。
相关文章
- 记录我删库没跑路的处理方式
- 记录一次生产环境处理危机
- WKWebView接入PDF.js过程记录处理总结
- Spark处理数据倾斜过程记录
- 【错误记录】Android Studio 编译时 Kotlin 代码编译报错 ( 升级支持库时处理 @NonNull 参数 )
- 【错误记录】Google Play 上架报错 ( 您上传的 APK 没有经过 Zipalign 处理,请对 APK 运行 Zipalign 工具,然后重新上传。)
- ORA-01551: extended rollback segment, pinned blocks released ORACLE 报错 故障修复 远程处理
- ORA-19656: cannot backup, copy, or delete online log string ORACLE 报错 故障修复 远程处理
- ORA-31203: DBMS_LDAP: PL/SQL – Init Failed. ORACLE 报错 故障修复 远程处理
- MySQL Error number: MY-011165; Symbol: ER_SEMISYNC_FAILED_TO_START_ACK_RECEIVER_THD; SQLSTATE: HY000 报错 故障修复 远程处理
- MySQL Error number: MY-011201; Symbol: ER_AUDIT_LOG_ONLY_INCLUDE_LIST_USED; SQLSTATE: HY000 报错 故障修复 远程处理
- ORA-06003: NETASY: port write failure ORACLE 报错 故障修复 远程处理
- ORA-13029: Invalid SRID in the SDO_GEOMETRY object ORACLE 报错 故障修复 远程处理
- ORA-13207: incorrect use of the [string] operator ORACLE 报错 故障修复 远程处理
- ORA-14175: a subpartition maintenance operation may not be combined with other operations ORACLE 报错 故障修复 远程处理
- MySQL Error number: MY-013351; Symbol: ER_LDAP_MAPPING_GETTING_NEXT_MAPPING; SQLSTATE: HY000 报错 故障修复 远程处理
- 记录MySQL处理重复记录的最佳方法(mysql查询重复的)
- MySQL:记录不存在,如何处理?(mysql记录不存在)