导致对表空间offline、删除表分区都报以下错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01157: 无法标识/锁定数据文件 291 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 291: '/opt/oracle/product/11.2.0/dbs/WLAN_ALARM_AGGR1601.DAT'
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01157: 无法标识/锁定数据文件 291 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 291: '/opt/oracle/product/11.2.0/dbs/WLAN_ALARM_AGGR1606.DAT'
以下是处理过程:
1、表空间offline
alter tablespace WLAN_ALARM_AGGR1601 offline; #由于WLAN_ALARM_AGGR1601.DAT数据文件创建在RAC1的本地硬盘上,需要到RAC1实例上执行
alter tablespace WLAN_ALARM_AGGR1606 offline; #由于WLAN_ALARM_AGGR1606.DAT数据文件创建在RAC2的本地硬盘上,需要到RAC2实例上执行
2、root用户执行:
[root@racdb1 grid]#cp /opt/oracle/product/11.2.0/dbs/WLAN_ALARM_AGGR1601.DAT /home/grid/WLAN_ALARM_AGGR1601.DAT
[root@racdb1 grid]#chown grid.asmadmin WLAN_ALARM_AGGR1601.DAT
3、grid用户执行:
[root@racdb1 grid]# su - grid
[grid@racdb1 ~]$ asmcmd
ASMCMD>cd DATA/WLAN/
ASMCMD>cp /home/grid/WLAN_ALARM_AGGR1601.DAT ./
copying /home/grid/WLAN_ALARM_AGGR1601.DAT -> +DATA/WLAN/WLAN_ALARM_AGGR1601.DAT
4、rename数据文件
SQL> alter database rename file '/opt/oracle/product/11.2.0/dbs/WLAN_ALARM_AGGR1601.DAT' to '+DATA/WLAN/WLAN_ALARM_AGGR1601.DAT';
Database altered.
5、online
SQL>alter tablespace WLAN_ALARM_AGGR1601 online;
6、验证数据文件状态
SQL> select name,status from v$datafile;
7、/opt/oracle/product/11.2.0/dbs/WLAN_ALARM_AGGR1606.DAT文件的迁移方法同上,只不过需要连接到RAC2节点上执行。
8、select * from v$datafile进行验证,datafiles都已经迁移到了+DATA ASM存储上