11g rac ORA-01157问题处理

年假还没休完,就接到一个工作。某客户数据库异常,无法读取数据,大概了解了下原因,早上就坐车来到了生命之环,确实是比较有气势,天气也不错,心情也很好。

一、环境
11g rac
rhel 6.8

二、报错信息
sql> select file_name from dba_data_files;
ERROR:
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6:
'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/DATAfsczracdatafilefinance.DBF'

三、处理过程
花了几分钟,清理了一下思路,写好脚本就开始整。

1、认归档已打开
sql> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            +DATA/arch
Oldest online log sequence     20
Next log sequence to archive   22
Current log sequence           22
sql> 
sql> 

2、offline 表空间
sql> alter tablespace FINANCE offline;

Tablespace altered.

3、cp 数据文件
ASMCMD [+data/FSCZRAC/datafile] > cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/DATAfsczracdatafilefinance.DBF  +data/fsczrac/datafile/DATAfsczracdatafilefinance.DBF
copying /u01/app/oracle/product/11.2.0/dbhome_1/dbs/DATAfsczracdatafilefinance.DBF -> +data/fsczrac/datafile/DATAfsczracdatafilefinance.DBF
ASMCMD [+data/FSCZRAC/datafile] > 

4、修改控制文件中的数据文件路径
sql> alter database rename file '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/DATAfsczracdatafilefinance.DBF' to '+data/fsczrac/datafile/DATAfsczracdatafilefinance.DBF';
Database altered.

5、恢复表空间
sql> recover tablespace finance;
Media recovery complete.

6、表空间online
sql> alter tablespace finance online;
Tablespace altered.

7、验证
sql> col file_name for a60
sql> select file_name,file_id,online_status from dba_data_files;

FILE_NAME                                                       FILE_ID ONLINE_
------------------------------------------------------------ ---------- -------
+DATA/fsczrac/datafile/users.259.967475641                            4 ONLINE
+DATA/fsczrac/datafile/undotbs1.258.967475641                         3 ONLINE
+DATA/fsczrac/datafile/sysaux.257.967475641                           2 ONLINE
+DATA/fsczrac/datafile/system.256.967475641                           1 SYstem
+DATA/fsczrac/datafile/undotbs2.269.967475831                         5 ONLINE
+DATA/fsczrac/datafile/datafsczracdatafilefinance.dbf                 6 ONLINE

6 rows selected.

sql>

四、小结案例是真实案例,之前也遇到过很多次,一般开发的测试环境都是单机环境,生产变为rac,创建表空间按照单机的方式肯定是有问题的啊。这个问题其实还可以扩展为非归档模式下的数据文件修改路径,使用cp方式和rman方式都可以。大家可以自己做测试。

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...