【Oracle专栏】扩容导致数据文件 dbf 丢失,实操
Oracle相关文档,希望互相学习,共同进步
风123456789~-CSDN博客
1.背景
同事检查扩容情况,发现客户扩容后数据盘后,盘中原有文件丢失,再检查发现数据库没有启动。通过检查发现数据盘中丢失的是oracle的 dbf 表空间文件。数据库无法启动。
检查情况:1)没有rman备份 2)dbf文件丢失 3)数据库无法启动
总体解决思路:想办法把数据库启动起来,重新导入dmp文件
或者 最终如果还不行,重装 导入
2. 检查
2.1 检查状态
检查数据库状态:sql查询 或 show pdbs
-- 查看实例状态
SELECT status FROM v$instance;-- 查看数据库的启动状态
SELECT open_mode FROM v$database;
结果截图:
数据库启动状态
结果分析:发现数据库是mount状态。
mount状态:仅当前实例的控制文件被打开,数据文件未打开,在这个模式下可以进行如下操作:重命名数据文件、添加取消或重命名重做日志文件、设置归档模式、设置闪回、执行完整的数据库恢复操作等。
2.2 问题排查
1)尝试启动
命令:alter database open;
结果截图:
分析:
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 18 - see DBWR trace file
ORA-01110: data file 18: '/vdb1/oracle/ny_data_001.dbf
2)问题排查
发现/vdb1 文件为空,没有文件了
3)其他
因为数据库没有open,无法生产awr报告:
-- 生成AWR报告
@$ORACLE_HOME/rdbms/admin/awrrpt.sql;
-- 生成ADDM报告
@$ORACLE_HOME/rdbms/admin/addm.sql;
2.3 准备恢复
1)查看环境变量 家目录
echo $ORACLE_HOME
结果:/data/u01/app/oracle/product/19.3.0/dbhome_1
2)查看alert日志
cd $ORACLE_BASE/diag/rdbms/<db_name>/<oracle_sid>/trace/alert_<oracle_sid>.log
select file#,name,status from v$datafile;
3) 查看是否开启rman
命令:rman target /
rman > report schema
rman target / Recovery Manager: Release 19.0.0.0.0 - Production on Mon May 12 15:00:00 2025
Version 19.22.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.connected to target database: ORCL (DBID=1622948453, not open) RMAN> report schema; using target database control file instead of recovery catalog
Report of database schema for database with db_unique_name ORCL List of Permanent Datafiles